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', '男'))

 

posted on 2023-04-13 11:56  木去  阅读(57)  评论(0)    收藏  举报