使用原生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