操作数据库、Redis

1.操作数据库
#1、连上数据库 ip 账号密码 端口号 数据库
#2、执行sql
#3、获取到结果
import pymysql
coon = pymysql.connect(host='111.22.3.49',user='je',password='123456',
port=3306,db='je',charset='utf8',autocommit=True)
cur = coon.cursor() #建立游标(类似于文件指针)
cur.execute('select * from nhy;') #执行sql语句,它只是帮你执行sql语句,不会给你返回数据
sql = 'insert into nhy (name,pwd) value ("xiaobai","1234567");'
cur.execute(sql)
cur.execute('select * from nhy where name="xiaobai";')
print(cur.fetchall()) #获取查询到的所有结果(返回结果为二维元组)
print(cur.fetchone()) #只获取一条
print(cur.fetchmany(2)) #指定获取几条
cur.close() #游标关闭
coon.close() #连接关闭
注:
autocommit = True 定义该参数,会自动提交,不加的话需手动添加coon.commit()

定义数据库连接函数:
def my_db(ip,user,passwd,db,sql,port=3306,charset='utf8'):
coon = pymysql.connect(host=ip,user=user,
password=passwd,db=db,
port=port,charset=charset,autocommit=True)
cur = coon.cursor()
sql=sql.strip()
cur.execute(sql)
sql_start = sql[:6].lower() #取sql的开头,转成小写
if sql_start.startswith('select') or sql_start.startswith('show'):
data = cur.fetchall()
else:
data = 'ok'
cur.close()
coon.close()
return data

2.操作redis
数据库分为:
  1)传统的关系型数据库
mysql、oracle、sql server、sqllie、db2
id name passwd cratetime stu
特点:
a 数据存在磁盘上
b 使用sql语句来操作数据
c 表与表之间有关系

2)非关系型数据库 nosql
由键值对组成:{'name':'xxx',''}
mongodb 数据存在磁盘上的
redis 数据都是存在内存里面

连接redis
import redis
r = redis.Redis(host='123.24.3.45',port=6379,password='123',db=10)
增删改查:(操作String类型)
 
# r.set('nhy_info','age 18 sex nan sdfsdfsdfsd') #增加、修改数据
# res = r.get('nhy_info_hhh') #获取数据,获取不到就返回None(返回bytes类型的数据
# r.delete('nhy_info') #指定一个key删除他,key不存在的话
# print( res.decode() ) #编码,就变成了字符串

其他的方法
# print(r.keys('*info')) #获取到所有的key(*info,把info结尾的过滤)
# print(r.exists('dashu_name')) #判断这个key是否存在
# r.flushdb()#可以清空当前数据库里面所有的key
# r.expire('session_crm',600)#指定key的失效时间
# print(r.ttl('session_crm'))#用来这个key的失效时间
# print(r.type('session_crm'))#看key的类型
 

猜你喜欢

转载自www.cnblogs.com/URNOTBENBEN/p/9286295.html