我們在寫**的時候,經常會運算元據庫,增刪改查,資料庫有很多態別,關係型資料庫和非關聯式資料庫,這裡咱們介紹一下python怎麼操作mysql、redis和mongodb。
一、python操作mysql資料庫python3中操作mysql資料需要安裝乙個第三方模組,pymysql,使用pip install pymysql安裝即可,在python2中是mysqldb模組,在python3中沒有mysqldb模組了,所以使用pymysql。12
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
2728
2930
3132
3334
3536
3738
3940
4142
43importpymysql
# 建立連線,指定資料庫的ip位址,賬號、密碼、埠號、要操作的資料庫、字符集
conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123456',db='data',charset='utf8')
# 建立游標
cursor=conn.cursor()
# 執行sql,並返**影響行數
effect_row=cursor.execute("update students set name = 'niuhy' where id = 1;")
# 執行sql,並返回受影響行數
#effect_row = cursor.execute("update students set name = 'niuhy' where id = %s;", (1,))
# 執行sql,並返回受影響行數
effect_row=cursor.executemany("insert into students (name,age) values (%s,%s); ",[("andashu",18),("12345",20)])
#執行select語句
cursor.execute("select * from students;")
#獲取查詢結果的第一條資料,返回的是乙個元組
row_1=cursor.fetchone()
# 獲取前n行資料
row_2=cursor.fetchmany(3)
# 獲取所有資料
row_3=cursor.fetchall()
# 提交,不然無法儲存新建或者修改的資料
conn.commit()
# 獲取最新自增id
new_id=cursor.lastrowid
print(new_id)
# 關閉游標
cursor.close()
# 關閉連線
conn.close()
上面的操作,獲取到的返回結果都是元組,如果想獲取到的結果是乙個字典型別的話,可以使用下面這樣的操作
importpymysql
# 建立連線,指定資料庫的ip位址,賬號、密碼、埠號、要操作的資料庫、字符集
conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123456',db='data',charset='utf8')
# 建立游標
cursor=conn.cursor()
cursor=coon.cursor(cursor=pymysql.cursors.dictcursor)#需要指定游標的型別,字典型別
# 執行sql
cursor.execute("select * from user;")
#獲取返回結果,這個時候返回結果是乙個字典
res=cursor.fetchone()#返回一條資料,如果結果是多條的話
print(res)
res2=cursor.fetchall()#所有的資料一起返回
二、操作redisredis是乙個nosql型別的資料庫,資料都存在記憶體中,有很快的讀寫速度,python操作redis使用redis模組,pip安裝即可12
3456
78910
1112
1314
1516
1718
1920
21importredis
r=redis.redis(host='127.0.0.1',port=6379,db=0)#指定連線redis的埠和ip以及哪個資料庫
r.set('name','value')#set string型別的值
r.setnx('name2','value')#設定的name的值,如果name不存在的時候才會設定
r.setex('name3','value',3)#設定的name的值,和超時時間,過了時間key就會自動失效
r.mset(k1='v1',k2='v2')#批量設定值
r.get('name')#獲取值
print(r.mget('k1','k2'))#批量獲取key
r.delete('name')#刪除值
r.delete('k1','k2')#批量刪除
#*****=下面是操作雜湊型別的
r.hset('hname','key','value')#set 雜湊型別的值
r.hset('hname','key1','value2')#set 雜湊型別的值
r.hsetnx('hname','key2','value23')#給name為hname設定key和value,和上面的不同的是key不存在的時候
#才會set
r.hmset('hname',)#批量設定雜湊型別的key和value
r.hget('name','key')#獲取雜湊型別的值
print(r.hgetall('hname'))#獲取這個name裡所有的key和value
r.hdel('hname','key')#刪除雜湊型別的name裡面指定的值
print(r.keys())#獲取所有的key
python運算元據庫
資料庫的操作在現在的python裡面已經變得十分的好用,有了一套api標準.下面的就是講講如何的去使用這套框架定義.此框架包含以下部分 connect parameters.其中的引數格式如下 dsn 資料來源名稱 user 使用者名稱 可選 password 密碼 可選 host 主機名 可選 d...
python 運算元據庫
目的 通過excel定義檢查指標項,然後通過python讀取指標,通過oracle sqlplus工具去執行獲取具體巡檢結果。unicode utf 8 coding utf 8 import os import sys import xlrd import paramiko reload sys ...
python運算元據庫
python運算元據庫都是通過資料庫驅動取操作的。現在主要有兩張,一種是通過pymysql,還有一種是通過sqlalchemy。在這裡可能還會有人說還有mysqldb模組也可以操作。確實是的,但是mysqldb對python3已經不支援了,所以這裡我就不討論了。第一種pymysql pymysql幫...