首页 > 代码库 > Python 操作mysql

Python 操作mysql

pymysql

需要安装pymysql模块才能在python中使用MySQL

安装

pip3 install pymysql

若安装失败,需要升级pip版本

python -m pip install --upgrade pip

使用

1.执行mysql

 1 import pymysql
 2   
 3 # 创建连接
 4 conn = pymysql.connect(host=127.0.0.1, port=3306, user=root, passwd=123, db=t1)
 5 # 创建游标
 6 cursor = conn.cursor()
 7   
 8 # 执行SQL,并返回收影响行数  effect_row可打印
 9 effect_row = cursor.execute("update hosts set host = 1.1.1.2")
10   
11 # 执行SQL,并返回受影响行数
12 # effect_row = cursor.execute("update hosts set host = 1.1.1.2 where nid > %s", (1,))
13   
14 # 执行SQL,并返回受影响行数
15 # effect_row = cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
16   
17   
18 # 提交,不然无法保存新建或者修改的数据
19 conn.commit()
20   
21 # 关闭游标
22 cursor.close()
23 # 关闭连接
24 conn.close()

2.获取新创建数据自增ID

增加多条数据用 executemany()     传的数据应为列表/元组中的元组,如[(),(),()]

自增ID: cursor.lastrowid

 1 import pymysql
 2   
 3 conn = pymysql.connect(host=127.0.0.1, port=3306, user=root, passwd=123, db=t1)
 4 cursor = conn.cursor()
 5 cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
 6 conn.commit()
 7 cursor.close()
 8 conn.close()
 9   
10 # 获取最新自增ID
11 new_id = cursor.lastrowid

3.获取查询数据

 1 import pymysql
 2   
 3 conn = pymysql.connect(host=127.0.0.1, port=3306, user=root, passwd=123, db=t1)
 4 cursor = conn.cursor()
 5 cursor.execute("select * from hosts")
 6   
 7 # 获取第一行数据
 8 row_1 = cursor.fetchone()
 9   
10 # 获取前n行数据
11 # row_2 = cursor.fetchmany(3)
12 # 获取所有数据
13 # row_3 = cursor.fetchall()
14   
15 conn.commit()
16 cursor.close()
17 conn.close()

注意:在fetch数据时按照顺序进行,可以使用cursor.scroll(num, mode)来移动游标位置

  • cursor.scroll(1,mode=‘relative‘)  # 相对当前位置移动
  • cursor.scroll(2,mode=‘absolute‘) # 相对绝对位置移动

4. fench数据类型

默认获取的数据是元组类型,要想字典类型则要把游标设置为字典类型

 1 import pymysql
 2   
 3 conn = pymysql.connect(host=127.0.0.1, port=3306, user=root, passwd=123, db=t1)
 4   
 5 # 游标设置为字典类型
 6 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
 7 r = cursor.execute("call p1()")
 8   
 9 result = cursor.fetchone()
10   
11 conn.commit()
12 cursor.close()
13 conn.close()

 

Python 操作mysql