日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
聊聊Python數據處理全家桶(PgSQL篇)

 [[416887]]

本文轉載自微信公眾號「AirPython」,作者星安果。轉載本文請聯(lián)系AirPython公眾號。

丹徒網站建設公司創(chuàng)新互聯(lián),丹徒網站設計制作,有大型網站制作公司豐富經驗。已為丹徒成百上千家提供企業(yè)網站建設服務。企業(yè)網站搭建\外貿網站建設要多少錢,請找那個售后服務好的丹徒做網站的公司定做!

1. 前言

PgSQL,全稱為 PostgreSQL,是一款免費開源的關系型數據庫

相比最流行的 Mysql 數據庫,PgSQL 在可靠性、數據完整性、擴展性方面具有絕對的優(yōu)勢

本篇文章將聊聊如何使用 Python 操作 PgSQL 數據庫

2. PgSQL 使用

Python 操作 PgSQL,需要先安裝依賴包「 psycopg2 」

 
 
 
  1. # 安裝依賴包 
  2. pip3 install psycopg2 

接下來,就可以使用 Python 來操作數據庫了

2-1 數據庫連接及游標對象

使用 psycopg2 中的「 connect() 」方法連接數據庫,創(chuàng)建數據庫連接對象及游標對象

 
 
 
  1. import psycopg2 
  2.  
  3. # 獲得連接對象 
  4. # database:數據庫名稱 
  5. # user:用戶名 
  6. # password:密碼 
  7. # host:數據庫ip地址 
  8. # port:端口號,默認為5432 
  9. conn = psycopg2.connect(database="db_name", user="postgres", password="pwd", host="127.0.0.1", port="5432") 
  10.  
  11. # 獲取游標對象 
  12. cursor = conn.cursor() 

獲取游標對象后,就可以執(zhí)行 SQL,進而操作數據庫了

2-2 插入數據

首先,編寫插入數據的 SQL 語句及參數( 可選 )

 
 
 
  1. # 構建SQL語句 
  2. # 方式一:直帶參數 
  3.  sql = "INSERT INTO student (name,age) \ 
  4.                         VALUES (%s, '%s')" % \ 
  5.           ('xag',23) 
  6.  
  7. # 方式二:參數分離 
  8. sql = """INSERT INTO student (name,age) VALUES (%s, %s)""" 
  9. # 參數 
  10. params = ('xag',23) 

然后,使用游標對象執(zhí)行 SQL

 
 
 
  1. # 執(zhí)行sql 
  2. # 注意:params可選,根據上面的參數方式來選擇設置 
  3. cursor.execute(sql,[params]) 

接著,使用連接對象提交事務

 
 
 
  1. # 事務提交 
  2. onn.commit() 

最后,釋放游標對象及數據庫連接對象

 
 
 
  1. # 釋放游標對象及數據庫連接對象 
  2. cursor.close() 
  3. conn.close() 

2-3 查詢數據

游標對象的 fetchone()、fetchmany(size)、fetchall() 這 3個函數即可以實現(xiàn)單條數據查詢、多條數據查詢、全部數據查詢

 
 
 
  1. # 獲取一條記錄 
  2. one_data = cursor.fetchone() 
  3. print(one_data) 
  4.  
  5. # 獲取2條記錄 
  6. many_data = cursor.fetchmany(2) 
  7. print(many_data) 
  8.  
  9. # 獲取全部數據 
  10. all_data = cursor.fetchall() 
  11. print(all_data) 

需要注意的是,條件查詢與上面的插入操作類似,條件語句可以將參數分離出來

 
 
 
  1. # 條件查詢 SQL語句 
  2. sql = """SELECT * FROM student where id = %s;""" 
  3.  
  4. # 對應參數,參數結尾以逗號結尾 
  5. params = (1,) 
  6.  
  7. # 執(zhí)行SQL 
  8. cursor.execute(sql, params) 
  9.  
  10. # 獲取所有數據 
  11. datas = cursor.fetchall() 
  12. print(datas) 

2-4 更新數據

更新操作和上面操作一樣,唯一不同的是,執(zhí)行完 SQL 后,需要使用連接對象提交事務,才能將數據真實更新到數據庫中

 
 
 
  1. def update_one(conn, cursor): 
  2.     """更新操作""" 
  3.     # 更新語句 
  4.     sql = """update student set name = %s where id = %s  """ 
  5.     params = ('AirPython', 1,) 
  6.  
  7.     # 執(zhí)行語句 
  8.     cursor.execute(sql, params) 
  9.  
  10.     # 事務提交 
  11.     conn.commit() 
  12.  
  13.     # 關閉數據庫連接 
  14.     cursor.close() 
  15.     conn.close() 

2-5 刪除數據

刪除數據同更新數據操作類似

 
 
 
  1. def delete_one(conn, cursor): 
  2.     """刪除操作""" 
  3.     # 語句及參數 
  4.     sql = """delete from  student where id = %s  """ 
  5.     params = (1,) 
  6.  
  7.     # 執(zhí)行語句 
  8.     cursor.execute(sql, params) 
  9.  
  10.     # 事物提交 
  11.     conn.commit() 
  12.  
  13.     # 關閉數據庫連接 
  14.     cursor.close() 
  15.     conn.close() 

3. 最后

通過上面操作,可以發(fā)現(xiàn) Python 操作 PgSQl 與 Mysql 類似,但是在原生 SQL 編寫上兩者還是有很多差異性

更多關于 PgSQL 的操作可以參考下面鏈接:

https://www.postgresql.org/docs/14/index.html


分享文章:聊聊Python數據處理全家桶(PgSQL篇)
新聞來源:http://m.5511xx.com/article/cdphede.html