python 操作数据库
一. 安装模块
python中支持操作MySQL的模块很多 其中最常见的当属'pymysql'
pip3 install pymysql
二. 基本使用
1. 导入模块
import pymysql
2. 链接服务端
conn = pymysql.connect(
host='127.0.0.1', # MySQL服务端的IP地址
port=3306, # MySQL默认PORT地址(端口号)
user='***', # 用户名
password='***', # 密码 也可以简写 passwd
database='jp04_3', # 库名称 也可以简写 db
charset='utf8' # 字符编码 千万不要加杠utf-8
)
3. 产生获取命令的游标对象
cursor = conn.cursor(
cursor=pymysql.cursors.DictCursor
)
4. 编写SQL语句
sql1 = 'show tables;'
sql1 = 'select * from teacher;' # SQL语句会被高亮显示 不用惊慌
sql1 = 'select * from score;' # SQL语句会被高亮显示 不用惊慌
5. 执行SQL语句
affect_rows = cursor.execute(sql1)
print(affect_rows) # 执行SQL语句之后受影响的行数
6. 获取结果
res = cursor.fetchall()
print(res)
7. 关闭
cursor.close()
conn.close()
三. SQL注入问题 (想办法过滤掉特殊符号)
sql = "select * from userinfo where name=%s and password=%s;"
1. cursor.execute(sql, args=[name, password])
2. cursor.execute(sql, (name, password))
execute方法补充(了解)
批量插入数据
sql = 'insert into userinfo(name,password) values(%s,%s)'
cursor.executemany(sql,[('tom',123),('lavin',321),('pony',333)])
四. 二次确认
"""
数据的增删改查四个操作是有轻重之分的
查 不会影响真正的数据 重要程度最低
增、改、删 都会影响真正的数据 重要程度较高
pymysql针对增、改、删三个操作 都设置了二次确认 如果不确认则不会真正影响数据库
"""
方式1:代码直接编写
affect_row = cursor.execute(sql)
conn.commit() # 手动二次确认
方式2:配置固定参数
conn = pymysql.connect(
autocommit=True # 自动二次确认
)