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        # 自动二次确认
)

posted @ 2023-05-12 21:09  codegjj  阅读(104)  评论(0编辑  收藏  举报