python操作数据库的过程:
创建连接—获取游标—执行命令—关闭游标—关闭连接
python访问mysql 要用pymysql库
pymysql需要安装:pip install pymysql
安装完之后导入pymysql,创建连接
连接数据库的参数按照实际情况添加,端口号默认是3306,我的有冲突,改成了3307
# 导入pymysql
import pymysql
# 定义一个函数
# 这个函数用来创建连接(连接数据库用)
def mysql_db():
# 连接数据库肯定需要一些参数
conn = pymysql.connect(
host="127.0.0.1",
port=3307,
database="lebo",
charset="utf8",
user="root",
passwd="root"
)
if __name__ == '__main__':
mysql_db()
关于游标,执行SQL,查询数据
游标需要创建游标还要关闭游标,为了防止忘关游标,所以用with
# 打开数据库可能会有风险,所以添加异常捕捉
try:
with conn.cursor() as cursor:
# 准备SQL语句
sql = "select * from user"
# 执行SQL语句
cursor.execute(sql)
# 执行完SQL语句后的返回结果都是保存在cursor中
# 所以要从cursor中获取全部数据
datas = cursor.fetchall()
print("获取的数据:
", datas)
except Exception as e:
print("数据库操作异常:
", e)
finally:
# 不管成功还是失败,都要关闭数据库连接
conn.close()
cursor中获取数据的fetchall,fetchone,fetchmany
fetchall:获取当前SQL语句能查出来的全部数据
fetchone:每次获取一条数据。但是获取到这条数据后,指针会往后移一行数据
fetchmany:直接告诉它想要多少条数据
插入一条数据
重点一个是commit,一个是rollback。有提交的地方一定要有回滚。回滚到上次提交的地方
try:
with conn.cursor() as cursor:
# 准备SQL语句
value = "12,'鲁肃'"
sql = f"insert into