MySQL连接和基本操作
1.MySQL直接连接
首先要安装pymysql :pip install pysysql
直接连接方式如下:
# 导入pymysql import pymysql # 创建连接 conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', database='test')
2.基本操作
创建游标
对MySQL数据库进行操作,要先创建游标。
游标是Python和MySQL数据库交互的对象,只有创建游标后,才能在Python中通过游标执行SQL命令。
# 创建游标 cursor = conn.cursor()
对数据库的操作可以用execute()方法。
假设数据库中有表:table_a,该表有a, b, c三个字段。
(1)插入数据
插入数据可以用execute()方法或executemany()方法,executemany()方法可以插入多条数据。
# 使用完整的sql sql1 = 'insert into table_a (a, b, c) values ("李四", 28, "男")' # 执行完整的sql插入语句 cursor.execute(sql1) # 带占位的sql sql2 = 'insert into table_a (a, b, c) values (%s, %s, %s)' # 占位的值用元组表示,替换sql中的占位 param = ('张三', 22, '女') # 执行带占位的sql cursor.execute(sql2, param) # 如果插入多条数据,可以用元组列表表示要插入的数据,一个元组表示一条记录 params = [('张五', 22, '女'), ('张六', 22, '女')] # executemany可以插入多条数据 cursor.executemany(sql2, params) # 插入数据的sql执行完成要commit conn.commit()
(2)修改数据
# 修改数据的sql sql3 = 'update table_a set c="男" where a in("张六", "张五")' # 执行sql cursor.execute(sql3) # 修改完后提交 conn.commit()
(3)删除数据
# 删除数据的sql sql4 = 'delete from table_a where a="张六"' # 执行sql cursor.execute(sql4) # 提交 conn.commit()
(4)查询数据
table_a表中a字段值为“李四”的记录只有1条
# 本条sql执行结果只有1条记录 sql5 = 'select * from table_a where a="李四"' cursor.execute(sql5) # 获取1条记录 res1 = cursor.fetchone() # 查询结果是一个元组,元组中元素是查询的字段,即使只查询1个字段,返回的也是1个元素的元组 # fetchall是获取所有查询结果,由于只有1条记录,前面fetchone()已经获取了1条,此时再执行fetchall()获取不到结果 res2 = cursor.fetchall() print(res1) # ('李四', '28', '男') print(res2) # ()
# 查询table_a表中所有记录 sql6 = 'select * from table_a' cursor.execute(sql6) # 获取1条查询到的记录 res3 = cursor.fetchone() # 获取所有记录,上面语句已经获取了1条,本条语句获取剩下所有的数据 # 多条记录也是用元组表示,元组的元素还是元组(1个元组表示1条记录) res4 = cursor.fetchall() print(res3) # ('张三', '22', '女') print(res4) # (('张五', '22', '男'), ('李四', '28', '男'))
浙公网安备 33010602011771号