Python程序操作MySQL数据库
安装pymysql第三方包:
sudo pip3 install pymysql
说明:
-
安装命令使用 sudo pip3 install 第三方包名 卸载命令使用 sudo pip3 uninstall 第三方包
-
可以使用: pip3 show pymysql 命令查看第三方 包的信息 pip3 list
查看使用 -
pip命令安装的第三方包列表
pymysql的使用:
- 导入 pymysql 包
import pymysql
创建
- 连接对象
调用pymysql模块中的connect()函数来创建连接对象,代码如下:
conn=connect(参数列表)
- 参数host:连接的mysql主机,如果本机是’localhost’
- 参数port:连接的mysql主机的端⼝,默认是3306
- 参数user:连接的⽤⼾名
- 参数password:连接的密码
- 参数database:数据库的名称
- 参数charset:通信采⽤的编码⽅式,推荐使⽤utf8
连接对象操作说明:
- 关闭连接 conn.close()
- 提交数据 conn.commit()
- 撤销数据 conn.rollback()
- 获取游标对象
获取游标对象的目标就是要执行sql语句,完成对数据库的增、删、改、查操作。代码如下:
调⽤连接对象的cursor()⽅法获取游标对象
cur =conn.cursor()
游标操作说明:
- 使用游标执行SQL语句: execute(operation [parameters ]) 执行SQL语句,返回受影响的行数,主
要用于执行insert、update、delete、select等语句 - 获取查询结果集中的一条数据:cur.fetchone()返回一个元组, 如 (1,‘张三’)
- 获取查询结果集中的所有数据: cur.fetchall()返回一个元组,如((1,‘张三’),(2,‘李四’))
- 关闭游标: cur.close(),表示和数据库操作完成
- pymysql完成数据的查询操作
import pymysql
# 创建连接对象
conn = pymysql.connect(host='localhost', port=3306, user='root', password='mysq
l',database='python', charset='utf8')
# 获取游标对象
cursor = conn.cursor()
# 查询 SQL 语句
sql = "select * from students;"
# 执⾏ SQL 语句 返回值就是 SQL 语句在执⾏过程中影响的⾏数
row_count = cursor.execute(sql)
print("SQL 语句执⾏影响的⾏数%d" % row_count)
# 取出结果集中⼀⾏数据, 例如:(1, '张三')
# print(cursor.fetchone())
# 取出结果集中的所有数据, 例如:((1, '张三'), (2, '李四'), (3, '王五'))
for line in cursor.fetchall():
print(line)
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
- pymysql完成对数据的增删改
import pymysql
# 创建连接对象
conn = pymysql.connect(host='localhost', port=3306, user='root', password='mysq
l',database='python', charset='utf8')
# 获取游标对象
cursor = conn.cursor()
try:
# 添加 SQL 语句
# sql = "insert into students(name) values('刘璐'), ('王美丽');"
# 删除 SQ L语句
# sql = "delete from students where id = 5;"
# 修改 SQL 语句
sql = "update students set name = '王铁蛋' where id = 6;"
# 执⾏ SQL 语句
row_count = cursor.execute(sql)
print("SQL 语句执⾏影响的⾏数%d" % row_count)
# 提交数据到数据库
conn.commit()
except Exception as e:
# 回滚数据, 即撤销刚刚的SQL语句操作
conn.rollback()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
说明:
- conn.commit() 表示将修改操作提交到数据库
- conn.rollback() 表示回滚数据