码迷,mamicode.com
首页 > 编程语言 > 详细

Python Day12

时间:2017-06-25 12:05:26      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:数据库更新   mysql   date   读取   res   执行   更新   abs   tuple   

二、python与mysql交互  

pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。
 
下载安装
1 pip3 install pymysql

 

2.1.执行原生sql语句

1 import pymysql
2 conn = pymysql.connect(host=192.168.48.20, port=3306, user=root, passwd=123, db=test)  # 创建连接
3 cursor = conn.cursor()  # 创建游标
4 # num = cursor.execute("create table student (name CHAR(20),age INT(3),date DATE )")  # 创建表不需要提交可以生效
5 num = cursor.execute("insert into student value(‘hua‘,25,‘1992-05-22‘)")  # 执行sql返回受影响的条目数
6 print(num)
7 conn.commit()  # pymysql默认开启了事务,进行数据库更新需要提交
8 cursor.close()  # 关闭游标
9 conn.close()  # 关闭连接

 

2.2.批量执行sql
实际是循环调用execute
1 import pymysql
2 conn = pymysql.connect(host=192.168.48.20, port=3306, user=root, passwd=123, db=test)  # 创建连接
3 cursor = conn.cursor()  # 创建游标
4 # 一次性执行操作多条,参数为print(num)#打印条结果条目
5 num = cursor.executemany("insert into student values(%s,%s,%s)", [(jack, 22, 1993-01-11), (tara, 18, 1998-03-04)])
6 conn.commit()  # pymysql默认开启了事务,进行数据库更新需要提交
7 new_id = cursor.lastrowid  # 如果是自增id,该方法可以获取到插入完成以后的IDprint(new_id)
8 cursor.close()  # 关闭游标
9 conn.close()  # 关闭连接

 

2.3.查询操作:fetch

 1 import pymysql
 2 conn = pymysql.connect(host=192.168.48.20, port=3306, user=root, passwd=123, db=test)  # 创建连接
 3 cursor = conn.cursor()  # 创建游标
 4 cursor = conn.cursor()
 5 cursor.execute("select * from student")
 6 # 获取第一行数据
 7 row_1 = cursor.fetchone()
 8 print(row_1)
 9 # 获取前n行数据
10 row_2 = cursor.fetchmany(3)
11 print(row_2)
12 # 获取所有数据
13 # row_3=cursor.fetchall()
14 cursor.scroll(0, mode=absolute)  # 将游标重新移至开始处
15 row_new = cursor.fetchone()
16 print(row_new)
17 cursor.close()  # 关闭游标
18 conn.close()  # 关闭连接
TIPS:使用fetchone获取数据如同读取文件一样,如果读一行游标会下移一行

可以使用cursor.scroll(num,mode)来移动游标位置,如:

  • cursor.scroll(1,mode=‘relative‘)  # 相对当前位置移动
  • cursor.scroll(2,mode=‘absolute‘) # 相对绝对位置移动
 
2.4.设置fetch获取数据类型
默认使用fetch查询结果是tuple,我们还可以设置获取的数据返回时dict
 1 import pymysql
 2 
 3 conn = pymysql.connect(host=192.168.48.20,port=3306,user=root,passwd=123,db=test)
 4 # 游标设置为字典类型
 5 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 设置游标类型为字典
 6 r = cursor.execute("select * from student")
 7 res = cursor.fetchone()
 8 print(res)
 9 cursor.close()
10 conn.close()
11 结果:
12 {name: bg, age: 22, date: datetime.date(1993, 5, 22)}

 

Python Day12

标签:数据库更新   mysql   date   读取   res   执行   更新   abs   tuple   

原文地址:http://www.cnblogs.com/breakering/p/7076287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!