首页 > 代码库 > python -- 操作数据库

python -- 操作数据库

1.操作mysql

  python3操作mysql,需要导入第三方模块【pymysql】,使用【pip install pymysql】即可安装,python2中需要导入MySQLdb模块,

  以python3为例予以说明:

 1 import pymysql
 2 ip=192.168.10.65
 3 port=3306
 4 passwd=root
 5 user=root
 6 db=test
 7 
 8 #建立数据库连接
 9 conn = pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db
10                        ,charset=utf8)
11 #建立游标
12 cur= conn.cursor(cursor=pymysql.cursors.DictCursor)
13 sql = insert into nhy(id,name,sex) VALUE (5,"pjb","女");
14 sql2 = select * from nhy;
15 #执行sql
16 cur.execute(sql2)
17 #获取所有数据
18 print(cur.fetchall())
19 #获取一行数据
20 print(cur.fetchone())
21 #以绝对位置获取数据
22 cur.scroll(5,mode=absolute)
23 #以相对位置获取数据
24 cur.scroll(5,mode=relative)
25 #提交,insert、delete、update必须提交才能生效
26 conn.commit()
27 #关闭游标
28 cur.close()
29 #关闭连接
30 conn.close()

  以下是一个操作mysql数据库的函数,记录下,方便以后使用时直接取用

 1 import pymysql
 2 
 3 def op_mysql(host,user,passwd,db,sql,port=3306,charset=utf8):
 4     conn = pymysql.connect(
 5         host=host,user=user,passwd=passwd,port=port,db=db,charset=charset
 6     )
 7     cur = conn.cursor(pymysql.cursors.DictCursor)    #以字典形式获取数据
 8     cur.execute(sql)
 9     if sql.startswith(select):
10         res = cur.fetchall()
11     else:
12         conn.commit()
13         res = 88
14     cur.close()
15     conn.close()
16     return res

2. 操作redis

  redis是属于nosql数据库,即非关系型数据库,数据都存放于内存中,能够很快速的读写

  python3操作redis数据库, 需要安装【redis】模块,使用【pip install redis】安装即可

 1 import redis
 2 ip = 192.168.10.19
 3 port = 6379
 4 db = 15
 5 passwd = 123456
 6 #连接redis
 7 r = redis.Redis(host=ip,port=port,db=db,password=passwd)
 8 
 9 # set 是新增字符串类型,若新增的数据存在,则更新值
10 r.set(name,[1,2,3,4])
11 #可以设置key的失效时间
12 r.setex(a,111,30)
13 #批量设置值
14 r.mset(k1=v1,k2=v2)
15 
16 #get查询k的值,若key不存在就返回None
17 name = r.get(name)
18 print(r.get(name))
19 # redis里面获取到的数据都是bytes类型的,需要是用.decode方法给它转成字符串才能继续操作
20 print(name.decode())
21 #批量获取key
22 print(r.mget(k1,k2))
23 
24 #删除某个key
25 r.delete(name)
26 # 批量删除
27 r.delete(k1, k2)
28 
29 #操作哈希类型
30 r.hset(hname, key, value)#set 哈希类型的值
31 r.hsetnx(hname,key2,value23)#给name为hname设置key和value,和上面的不同的是key不存在的时候才会set
32 r.hmset(hname,{k1:v1,k2:v2})#批量设置哈希类型的key和value
33 r.hget(name, key)#获取哈希类型的值
34 print(r.hgetall(hname))#获取这个name里所有的key和value
35 r.hdel(hname,key)#删除哈希类型的name里面指定的值
36 print(r.keys())#获取所有的key
37 
38 #新建文件夹
39 r.set(user:niuhanyang,haha)    #文件夹名user
40 r.hset(session:byz_sys,chendonggua,12345)     #文件夹名session

   以下是使用set方式的一个简单的函数,记录下,方便以后使用时直接取用

 1 import redis
 2 def op_redis(host,passwd,k,v=False,time=30,db=15,port=6379):
 3     r = redis.Redis(host=host,password=passwd,db=db,port=port)
 4     if v:
 5         r.setex(k,v,time)
 6         res = 88
 7     else:
 8         res = r.get(k)
 9         if res:
10             res = res.decode()
11         else:
12             res = ""
13     return res

 

python -- 操作数据库