python運算元據庫

2022-08-12 09:57:17 字數 3095 閱讀 6671

我們在寫**的時候,經常會運算元據庫,增刪改查,資料庫有很多態別,關係型資料庫和非關聯式資料庫,這裡咱們介紹一下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幫...