python之操作資料庫
阿新 • • 發佈:2018-10-31
一、操作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() #接收返回的說有資料 #獲取最新的自增IDnew_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)