使用原生sql语句进行对数据库操作,可完成数据库表的建立和删除,及数据表内容的增删改查操作等。其可操作性很强,如可以直接使用“show databases”、“show tables”等语句进行表格之外的部分操作。
centos7远程操作数据库时需要关闭防火墙,否则会连接不上
安装:
pip3 install pymysql
数据查询:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import pymysql #建立数据库连接 conn = pymysql.connect(host = "192.168.1.175" ,port = 3306 ,user = "root2" ,passwd = "proot2" ,db = "dongdb" ) #得到数据库操作游标 cur = conn.cursor() #查询数据 resdata = cur.execute( "select * from tb_dong" ) print ( "总条数为:" ,resdata) #一行一行输出数据,以元组形式 print ( "取出第一条数据:" ,cur.fetchone()) print ( "取出第二条数据:" ,cur.fetchone()[ 3 ]) #输出剩下的所有数据,以元组嵌套形式 print ( "取出剩下的数据:" ,cur.fetchall()) print ( "------ 完成操作 -------" ) #关闭连接 conn.close() |
数据插入:
也可以使用 execute() 进行操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import pymysql #建立数据库连接 conn = pymysql.connect(host = "192.168.1.175" ,port = 3306 ,user = "root2" ,passwd = "proot2" ,db = "dongdb" ) #得到数据库操作游标 cur = conn.cursor() #插入数据 datax = [ ( "dxd1" , "m" , "东小东1" ), ( "dxd2" , "f" , "东小东2" ) ] #返回影响行数 rescoun = cur.executemany( "insert into tb_dong(namex,sex,otherxxx) values(%s,%s,%s)" ,datax) print (rescoun) #进行数据修改,必须提交事物 conn.commit() print ( "------ 完成操作 -------" ) #关闭数据库连接 conn.close() |
数据修改:
1
2
3
4
5
|
#返回影响行数,如果值未进行任何修改则返回0 rescoun = cur.execute( "update tb_dong set namex='%s',sex='%s' where id>%d" % ( "dongdong" , "f" , 16 )) print (rescoun) #进行数据修改,必须提交事物 conn.commit() |
数据删除:
1
2
3
|
#返回影响行数 rescoun = cur.execute( "delete from tb_dong where id>%d" % ( 16 )) conn.commit() #提交事物 |
部分封装:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
import pymysql #建立数据库连接 conn = pymysql.connect(host = "192.168.1.175" ,port = 3306 ,user = "root2" ,passwd = "proot2" ,db = "dongdb" ) #得到数据库操作游标 cur = conn.cursor() #删除 def dongdel(tablex,idx): try : rescoun = cur.execute( "delete from %s where id=%d" % (tablex,idx)) conn.commit() #提交事物 return rescoun except exception as e: print ( "删除出现错误" , e) return e #插入 def donginsert(tablex,listx): try : rescoun = cur.executemany( "insert into " + tablex + "(namex,sex,otherxxx) values(%s,%s,%s)" ,listx) conn.commit() return rescoun except exception as e: print ( "插入出现错误" ,e) return e #查询,参数为表名和id值 def dongselect(tablex,idx = 0 ): try : if idx = = 0 : resdata = cur.execute( "select * from %s" % tablex) else : resdata = cur.execute( "select * from %s where id=%d" % (tablex,idx)) return resdata except exception as e: print ( "查询出现错误" ,e) return e #修改 def dongupdate(tablex,idx,namex): try : rescoun = cur.execute( "update %s set namex='%s' where id=%d" % (tablex,namex,idx)) conn.commit() return rescoun except exception as e: print ( "更新出现错误" , e) return e #删除数据 resdel = dongdel( "tb_dong" , 6 ) print ( "删除的条数为:" ,resdel) #插入数据 datax = [ ( "dongxiaodong" , "m" , "东小东1" ) ] resinsert = donginsert( "tb_dong" ,datax) print ( "插入的条数为:" ,resinsert) #修改数据 resupdate = dongupdate( "tb_dong" , 7 , "dongxiaodong7" ) print ( "修改的条数为:" ,resupdate) #查询数据 resselect = dongselect( "tb_dong" , 0 ) print ( "查询的总条数为:" ,resselect) print ( "全部数据为:" ,cur.fetchall()) #关闭数据库连接 conn.close() |
总结
以上所述是小编给大家介绍的详解python的数据库操作(pymysql),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
原文链接:http://www.cnblogs.com/dongxiaodong/p/10495573.html