pymysql模块

1)插入数据

  通过pymysql向远程数据库同时插入多条数据并打印插入数据条数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:lcj
import  pymysql
#连接数据库
conn  =  pymysql.connect(host = '192.168.1.152' ,port =  3306 ,user  =  'root' ,passwd = '123123' ,db = 'test' #db:库名
#创建游标
cur  =  conn.cursor()
#插入一条数据
# reCount = cur.excute('insert into lcj(name,age) vaules(%s,%s)',('ff',18))
#向test库中的lcj表插入
# ret = cur.executemany("insert into lcj(name,tel)values(%s,%s)", [("kk",13212344321),("kw",13245678906)])
#同时向数据库lcj表中插入多条数据
ret  =  cur.executemany( "insert into lcj values(%s,%s,%s,%s,%s)" , [( 41 , "xiaoluo41" , 'man' , 24 , 13212344332 ),
                                                               ( 42 , "xiaoluo42" , 'gril' , 21 , 13245678948 ),
                                                               ( 43 , "xiaoluo43" , 'gril' , 22 , 13245678949 ),
                                                                  ( 44 , "xiaoluo44" , 'main' , 24 , 13543245648 )])
#提交
conn.commit()
#关闭指针对象
cur.close()
#关闭连接对象
conn.close()
#打印结果
print (ret)

   2)查询数据

  在Pycharm控制台输出lcj表中数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:lcj
import  pymysql
#连接数据库
conn  =  pymysql.connect(host = '192.168.1.152' ,port =  3306 ,user  =  'root' ,passwd = '123123' ,db = 'test' #db:库名
#创建游标
cur  =  conn.cursor()
#查询lcj表中存在的数据
cur.execute( "select * from lcj" )
#fetchall:获取lcj表中所有的数据
ret1  =  cur.fetchall()
print (ret1)
print ( "----------------------" )
#获取lcj表中前三行数据
ret2  =  cur.fetchmany( 3 )
print (ret2)
print ( "------------------------------" )
#获取lcj表中第一行数据
ret3 =  cur.fetchone()
print (ret3)
#同时向数据库lcj表中插入多条数据
# ret = cur.executemany("insert into lcj values(%s,%s,%s,%s,%s)", [(41,"xiaoluo41",'man',24,13212344332),
#                                                             (42,"xiaoluo42",'gril',21,13245678948),
#                                                             (43,"xiaoluo43",'gril',22,13245678949),
#                                                                (44,"xiaoluo44",'main',24,13543245648)])
#提交
conn.commit()
#关闭指针对象
cur.close()
#关闭连接对象
conn.close()

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

  • cursor.scroll(1,mode='relative')  # 相对当前位置移动【1:表示向下移动一行,-1:表示向上移动一行
  • cursor.scroll(2,mode='absolute') # 相对绝对位置移动 【1:表示向上移动一行,-1:表示向下移动一行

  3)删除数据  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:lcj
import  pymysql
#连接数据库
conn  =  pymysql.connect(host = '192.168.1.152' ,port =  3306 ,user  =  'root' ,passwd = '123123' ,db = 'test' #db:库名
#创建游标
cur  =  conn.cursor()
#删除cj表中数据
cur.execute( "delete * from lcj" )
#提交
conn.commit()
#关闭指针对象
cur.close()
#关闭连接对象
conn.close()

   4)修改表中的数据  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:lcj
import  pymysql
#连接数据库
conn  =  pymysql.connect(host = '192.168.1.152' ,port =  3306 ,user  =  'root' ,passwd = '123123' ,db = 'test' #db:库名
#创建游标
cur  =  conn.cursor()
#将lcj表中id=3的name 修改为lcjj
cur.execute( "UPDATE lcj set name = 'lcjj' WHERE id = 3" )   #逼表中所有的操作都可以再此进行操作
#提交
conn.commit()
#关闭指针对象
cur.close()
#关闭连接对象
conn.close()

   5)fetch数据类型

  关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即:  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:lcj
import  pymysql
#连接数据库
conn  =  pymysql.connect(host = '192.168.1.152' ,port =  3306 ,user  =  'root' ,passwd = '123123' ,db = 'test' #db:库名
#设置游标类型,默认游标类型为元祖形式
#将游标类型设置为字典形式
cur  =  conn.cursor(cursor = pymysql.cursors.DictCursor)
cur.execute( "select * from lcj" )   #逼表中所有的操作都可以再此进行操作
#将lcj表中所有数据以字典形式输出
ret  =  cur.fetchall()
print (ret)    #[{'age': 18, 'tel': '13520617734', 'name': 'xiaoluo', 'id': 1, 'sex': '?'},
#提交
conn.commit()
#关闭指针对象
cur.close()
#关闭连接对象
conn.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值