python之操作数据库
Posted Balllyh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之操作数据库相关的知识,希望对你有一定的参考价值。
一、操作mysql
首先,python3操作mysql.需要安装第三方模块pymysql,在python2中则使用的是pysqldb。这里使用pymysql.
直接使用pip install pymysql或python3 setup.py install安装。
1.1连接mysql
import pymysql #数据库连接信息 host=\'127.0.0.1\' user=\'db\' password=\'123456\' #密码只能是字符串 db=\'db\' port=3306#端口号只能写int类型 charset=\'utf8\'#只能写utf8,不能写utf-8 conn = pymysql.connect(host=host,password=psassword, user=user,db=db,port=port, charset=charset,autocommit=True )#建立连接 #autocommit=True往数据库写数据时,需要commit下,这个参数表示自动提交。 cur=conn.cursor#创建游标 sql=\'select * from app_users limit 5;\' cur.execute(sql)#只是执行sql语句,并不返回执行sql的结果 print(cur.fetchall())#执行上述mysql语句,把结果放到cur,通过fetchall将执行sql后的结果取出来,默认返回的是二维元组 print(cur.description())#获取这个表里所有字段的属性信息 cur.close()#关闭游标 conn.close()#关闭连接
#创建游标,操作设置为字典类型,返回结果为字典格式!不写默认是元组格式! cur=conn.cursor(cursor=pymysql.cursors.DictCursor) #接收数据有三种方式: res = cursor.fetchone() #接收返回的第一行数据 ret = cursor.fetchmany(n) #接收返回的前n行数据,数组格式 req = cursor.fetchall() #接收返回的所有数据,数组格式 #获取最新的自增ID new_id=cursor.lastrowid print(new_id) conn.rollback()#回滚当前游标的所有操作
1.2创建数据库表
import pymysql host=\'127.0.0.1\' user=\'jxz\' password=\'123456\' #密码只能是字符串 db=\'jxz\' port=3306#端口号只能写int类型 charset=\'utf8\'#只能写utf8,不能写utf-8 conn = pymysql.connect(host=host,password=password, user=user,db=db,port=port, charset=charset,autocommit=True )#建立连接 #autocommit=True往数据库写数据时,需要commit下,这个表示自动提交。 cur= conn.cursor() #建立游标 sql=\'create table LYH (username char(20),age int,sex char(20))\' cur.execute(sql) print(cur.fetchall()) cur.close() conn.close()
1.3插入数据
import pymysql host=\'127.0.0.1\' user=\'jxz\' password=\'123456\' #密码只能是字符串 db=\'jxz\' port=3306#端口号只能写int类型 charset=\'utf8\'#只能写utf8,不能写utf-8 conn = pymysql.connect(host=host,password=password, user=user,db=db,port=port, charset=charset,autocommit=True )#建立连接 #autocommit=True往数据库写数据时,需要commit下,这个表示自动提交。 cur= conn.cursor() #建立游标 sql=\'insert into LYH (username,age,sex) VALUES ("liuyihan",18,"女")\' cur.execute(sql) cur.close() conn.close()
二、操作redis
redis是一种nosql数据库,是一种高性能的key-value数据库。其特点有以下三个:
- 数据可持久化地保存在磁盘中,重启时可再次加载使用
- value可存储string,list,set,hash等数据结构
- 支持master-slave数据备份
通过redis desktop manager连接工具,也操作redis数据库。具体方法如图:
通过python操作redis,首先安装redis模块。
import redis import random ip=\'127.0.0.1\' password=\'******\' r=redis.Redis(host=ip,password=password,port=6379,db=1) #操作string类型的值 # res=r.get(\'liuyihan\') # print(res) # s=\'ss\' # print(s.encode())#将字符串变成bytes类型,二进制类型 # print(res.decode())#将二进制类型转变成字符串类型 # r.flushdb()#清空所有表 # r.set(\'lyh\',\'ftt\',50)#50指定key50S后失效 # r.delete(\'gta\')#删除指定的key # r.setex(\'lyh\',\'233\',40)#40是指定value40S后失效 # token:lyh#冒号前的表示文件夹 r.set(\'message:lyh\',\'excel,word\')#冒号:前的是文件夹,冒号:后的是key,‘excel,word\'是values # print(r.keys())#获取数据库中的所有key,返回一个列表
#hash类型,二层字典 # token={\'lyh\':{\'age\':\'18\',\'firm\':\'DJ\'}} r.hset(\'Message\',\'LYH\',"Shenzen") print(r.hget(\'jnz_stus\',\'cm\')) # res=r.hgetall(\'jnz_stus\') # print(res) # new={} # for key,value in enumrate(res): # new[key.decode()]=value.decode() # print(new)
以上是关于python之操作数据库的主要内容,如果未能解决你的问题,请参考以下文章