Python连接Mysql
1.安装对应的库
使用Python连接Mysql数据库需要安装相应的库
以管理员身份运行cmd,输入命令
pip install mysql.connector
安装完成后建立
test.py
写入
import mysql.connector
保存后运行
python test.py
用以测试模块库是否安装完成,如果不报错,说明安装完成
2.进行连接测试
编写connectTest.py
文件
文件内容:
import mysql.connector connect = mysql.connector.connect( host="127.0.0.1", # 数据库主机地址 user="root", # 数据库用户名 passwd="root", # 数据库密码 database="mysql" # 要连接的数据库 ) #关闭连接 connect.close()
运行文件python connectTest.py
如果没有报错提示说明连接成功,如果报错提示
说明连接失败,请检查账户、密码以及数据库是否正确,查看数据库是否开机
3.执行sql命令
3.1创建表
import mysql.connector connect = mysql.connector.connect( host="127.0.0.1", # 数据库主机地址 user="root", # 数据库用户名 passwd="root", # 数据库密码 database="test" # 要连接的数据库 ) #数据库建表指令 sql = """CREATE TABLE `test`.`testtable` ( `id` int NOT NULL, `name` varchar(255) NULL, `age` int NULL, `address` varchar(255) NULL, PRIMARY KEY (`id`) );""" #获取数据库操作游标 myCursor=connect.cursor() #执行sql语句 myCursor.execute(sql) #提交给数据库执行命令 connect.commit() connect.close()
执行后会创建一个名为testtabe的表
3.2插入数据
import mysql.connector connect = mysql.connector.connect( host="127.0.0.1", # 数据库主机地址 user="root", # 数据库用户名 passwd="root", # 数据库密码 database="test" # 要连接的数据库 ) # 数据库插入指令,待定字符无论是数值还是文字,都需要用%s sql = "INSERT INTO `test`.`testtable`(`id`, `name`, `age`, `address`) VALUES (%s,%s,%s,%s)" var = (1, 'windSnowLi', 20, '中国') # 获取数据库操作游标 myCursor = connect.cursor() try: # 执行sql语句 myCursor.execute(sql, var) # 提交给数据库执行命令 connect.commit() except : #回滚,以防出现错误 connect.rollback() connect.close()
随后检查数据库
3.3查询语句
import mysql.connector connect = mysql.connector.connect( host="127.0.0.1", # 数据库主机地址 user="root", # 数据库用户名 passwd="root", # 数据库密码 database="test" # 要连接的数据库 ) # 数据库查询指令 sql = "select * from testtable" # 获取数据库操作游标 myCursor = connect.cursor() try: # 执行sql语句 myCursor.execute(sql) results = myCursor.fetchall() print(results) except : print("查询失败") connect.close()
3.4更新数据
import mysql.connector connect = mysql.connector.connect( host="127.0.0.1", # 数据库主机地址 user="root", # 数据库用户名 passwd="root", # 数据库密码 database="test" # 要连接的数据库 ) # 数据库更新指令 sql = "UPDATE `test`.`testtable` SET `id` = 2, `name` = 'mirror', `age` = 19, `address` = '祖国' WHERE `id` = 1" # 获取数据库操作游标 myCursor = connect.cursor() try: # 执行sql语句 myCursor.execute(sql) # 提交给数据库执行命令 connect.commit() except : #回滚,以防出现错误 connect.rollback() connect.close()
3.5删除数据
import mysql.connector connect = mysql.connector.connect( host="127.0.0.1", # 数据库主机地址 user="root", # 数据库用户名 passwd="root", # 数据库密码 database="test" # 要连接的数据库 ) # 数据库删除指令 sql = "DELETE FROM `test`.`testtable` WHERE `id` = 1" # 获取数据库操作游标 myCursor = connect.cursor() try: # 执行sql语句 myCursor.execute(sql) # 提交给数据库执行命令 connect.commit() except : #回滚,以防出现错误 connect.rollback() connect.close()
4.说明
sql语句中如果有待定字符,则都可以通过
sql = "INSERT INTO `test`.`testtable`(`id`, `name`, `age`, `address`) VALUES (%s,%s,%s,%s)" var = (1, 'windSnowLi', 20, '中国')
这种方式拼接,不过执行时需要
myCursor.execute(sql, var)
将参数也同步传入