pymysql:python操作mysql
安装
>: pip3 install pymysql
增删改查
# 选取操作的模块 pymysql # pymysql连接数据库的必要参数:主机、端口、用户名、密码、数据库 # 注:pymysql不能提供创建数据库的服务,数据库要提前创建 import pymysql # 1)建立数据库连接对象 conn # 2)通过 conn 创建操作sql的 游标对象 # 3)编写sql交给 cursor 执行 # 4)如果是查询,通过 cursor对象 获取结果 # 5)操作完毕,端口操作与连接 # 1)建立数据库连接对象 conn conn = pymysql.connect(user='root', passwd='root', database='oldboy') # conn = pymysql.connect(user='root', passwd='root', database='oldboy', autocommit=True) # 2)通过 conn 创建操作sql的 游标对象 # 注:游标不设置参数,查询的结果就是数据元组,数据没有标识性 # 设置pymysql.cursors.DictCursor,查询的结果是字典,key是表的字段 cursor = conn.cursor(pymysql.cursors.DictCursor) # 3)编写sql交给 cursor 执行
创建表
# 创建表 sql1 = 'create table t1(id int, x int, y int)' cursor.execute(sql1)
增
sql2 = 'insert into t1 values(%s, %s, %s)' # 增1 cursor.execute(sql2, (1, 10, 100)) cursor.execute(sql2, (2, 20, 200)) # 重点:在创建conn对象时,不设置autocommit,默认开启事务,增删改操作不会直接映射到数据库中, # 需要执行 conn.commit() 动作 conn.commit() # 增多 cursor.executemany(sql2, [(3, 30, 300), (4, 40, 400)]) conn.commit()
删
sql3 = 'delete from t1 where id=%s' cursor.execute(sql3, 4) conn.commit()
改
sql4 = 'update t1 set y=666 where id=2' cursor.execute(sql4) conn.commit()
查
sql5 = 'select * from t1' row = cursor.execute(sql5) # 返回值是受影响的行 print(row) # 4)如果是查询,通过 cursor对象 获取结果 # fetchone() 偏移一条取出,fetchmany(n) 偏移n条取出,fetchall() 偏移剩余全部 r1 = cursor.fetchone() print(r1) r2 = cursor.fetchone() print(r2) r3 = cursor.fetchmany(1) print(r3) r4 = cursor.fetchall() print(r4)
# 5)操作完毕,端口操作与连接 cursor.close() conn.close()