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)
将参数也同步传入