Python操作PostgreSQL數(shù)據(jù)庫(kù)的基本方法(增刪改查)
前言
本文分享使用Python操作PostgreSQL數(shù)據(jù)庫(kù)的基本方法,包括數(shù)據(jù)庫(kù)連接、增、刪、改、查,供各位小伙伴參考。
一、連接PostgreSQL數(shù)據(jù)庫(kù)
操作MySQL數(shù)據(jù)庫(kù)主要使用psycopg2包,連接PostgreSQL數(shù)據(jù)庫(kù)的語(yǔ)法為connect(IP, 端口, 用戶名, 密碼, 數(shù)據(jù)庫(kù)名,編碼格式)。具體代碼如下:
import psycopg2 conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' )
二、增
(一)建表
以下語(yǔ)法中1、2、4、5為操作數(shù)據(jù)庫(kù)的通用語(yǔ)法,下文其他步驟也會(huì)使用。
- 創(chuàng)建mysql連接:pymysql.connect(),詳見(jiàn)上文第一點(diǎn)
- 創(chuàng)建游標(biāo):conn.cursor()
- 編寫(xiě)建表語(yǔ)句,建表語(yǔ)句寫(xiě)在三引號(hào)中:
(1)create_sql = “”“xxx”“”
(2)cursor.execute(create_sql) - 提交語(yǔ)句:conn.commit()
- 關(guān)閉mysql連接:conn.close()
import psycopg2 conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' ) cursor = conn.cursor() # 建表 create_sql = """ CREATE TABLE xxx.yyy( id int ,name varchar(10) ); """ cursor.execute(create_sql) print("create successfully") conn.commit() conn.close()
(二)插入數(shù)據(jù)
- 插入單條數(shù)據(jù)的語(yǔ)法和sql的插入類似,直接鍵值對(duì)插入,插入語(yǔ)句寫(xiě)在雙引號(hào)中。具體代碼如下:
import psycopg2 conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' ) cursor = conn.cursor() # 插入 insert_sql = "INSERT INTO xx.yyy (id, name) VALUES (%s, '%s')" % (1, '張三') cursor.execute(insert_sql) print("insert successfully") conn.commit() conn.close()
- 查詢插入數(shù)據(jù),適用于從數(shù)據(jù)庫(kù)其他表查詢關(guān)聯(lián)后插入數(shù)據(jù)到新表。插入語(yǔ)句寫(xiě)在三引號(hào)中。具體代碼如下:
import psycopg2 conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' ) cursor = conn.cursor() # 插入 insert_sql = """ DROP TABLE IF EXISTS xx.yyy; CREATE TABLE IF NOT EXISTS xx.yyy AS SELECT aa ,bb FROM xx.yyy """ cursor.execute(insert_sql) print("insert successfully") conn.commit() conn.close()
三、刪
(一)刪表
直接刪除表數(shù)據(jù)和表結(jié)構(gòu),其語(yǔ)法和SQL刪表語(yǔ)法一致。具體代碼如下:
import psycopg2 conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' ) cursor = conn.cursor() # 刪表 cursor.execute("DROP TABLE IF EXISTS xx.yyy") conn.commit() conn.close()
(二)刪除表數(shù)據(jù)
只刪除數(shù)據(jù),不刪除表結(jié)構(gòu)。其語(yǔ)法和SQL刪表數(shù)據(jù)語(yǔ)法一致。具體代碼如下:
import psycopg2 conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' ) cursor = conn.cursor() # 刪表數(shù)據(jù) cursor.execute("TRUCATE TABLE xx.yyy") conn.commit() conn.close()
三、改
(一)更新數(shù)據(jù)
將上文所建的yyy表中,“張三”改為“何老六”。具體代碼如下:
import psycopg2 conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' ) cursor = conn.cursor() cursor.execute("UPDATE xx.yyy SET name = '何老六' WHERE id = 1") conn.commit() conn.close()
(二)結(jié)果展示
四、查
(一)查詢數(shù)據(jù)庫(kù)表
直接使用pandas包查詢數(shù)據(jù)庫(kù)表,語(yǔ)法為read_sql(“select xxx from yyy”, con=數(shù)據(jù)庫(kù)連接)。
import psycopg2 import pandas as pd conn = psycopg2.connect( host='xxx', port='xxx', dbname='xxx', user='xxx', password='xxx' ) df = pd.read_sql("select * from xx.yyy limit 100;", con=conn) print(df)
總結(jié)
除了PostgreSQL數(shù)據(jù)庫(kù)外,業(yè)界常用的數(shù)據(jù)庫(kù)MySQL也可以使用Python進(jìn)行操作,具體情況可參考作者的另一篇博客Python操作MySQL數(shù)據(jù)庫(kù)。
到此這篇關(guān)于Python操作PostgreSQL數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Python操作PostgreSQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用python將mdb數(shù)據(jù)庫(kù)文件導(dǎo)入postgresql數(shù)據(jù)庫(kù)示例
- Python連接PostgreSQL數(shù)據(jù)庫(kù)的方法
- Python實(shí)現(xiàn)連接postgresql數(shù)據(jù)庫(kù)的方法分析
- python連接PostgreSQL數(shù)據(jù)庫(kù)的過(guò)程詳解
- python 兩個(gè)數(shù)據(jù)庫(kù)postgresql對(duì)比
- Python 操作 PostgreSQL 數(shù)據(jù)庫(kù)示例【連接、增刪改查等】
- Python操作PostgreSql數(shù)據(jù)庫(kù)的方法(基本的增刪改查)
相關(guān)文章
Pytorch中TensorBoard及torchsummary的使用詳解
這篇文章主要介紹了Pytorch中TensorBoard及torchsummary的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05Pycharm運(yùn)行時(shí)總是跳出Python?Console問(wèn)題
這篇文章主要介紹了Pycharm運(yùn)行時(shí)總是跳出Python?Console問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Python csv文件的讀寫(xiě)操作實(shí)例詳解
這篇文章主要介紹了Python csv文件的讀寫(xiě)操作實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11探索Python元類與class語(yǔ)句協(xié)議掌握類的控制權(quán)
這篇文章主要介紹了通過(guò)Python元類與class語(yǔ)句協(xié)議掌握類的控制權(quán)探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Django項(xiàng)目創(chuàng)建的圖文教程
本文主要介紹了Django項(xiàng)目創(chuàng)建的圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03使用Python繪制實(shí)時(shí)的動(dòng)態(tài)折線圖
這篇文章主要為大家詳細(xì)介紹了如何使用Python繪制實(shí)時(shí)的動(dòng)態(tài)折線圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11python Yaml、Json、Dict之間的轉(zhuǎn)化
這篇文章主要介紹了python Yaml 、Json 、Dict 之間的轉(zhuǎn)化的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-10-10