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(),詳見上文第一點(diǎn)
- 創(chuàng)建游標(biāo):conn.cursor()
- 編寫建表語(yǔ)句,建表語(yǔ)句寫在三引號(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ǔ)句寫在雙引號(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ǔ)句寫在三引號(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ù)的過程詳解
- python 兩個(gè)數(shù)據(jù)庫(kù)postgresql對(duì)比
- Python 操作 PostgreSQL 數(shù)據(jù)庫(kù)示例【連接、增刪改查等】
- Python操作PostgreSql數(shù)據(jù)庫(kù)的方法(基本的增刪改查)
相關(guān)文章
詳解Python對(duì)某地區(qū)二手房房?jī)r(jià)數(shù)據(jù)分析
這篇文章主要為大家介紹了Python數(shù)據(jù)分析某地區(qū)二手房房?jī)r(jià),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12
Python中subprocess介紹及如何使用詳細(xì)講解
在實(shí)際開發(fā)過程中,我們經(jīng)常會(huì)遇到需要從Python腳本中調(diào)用外部程序或腳本的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于Python中subprocess介紹及如何使用詳細(xì)講解的相關(guān)資料,需要的朋友可以參考下2024-09-09
python利用百度AI實(shí)現(xiàn)文字識(shí)別功能
這篇文章主要為大家詳細(xì)介紹了python利用百度AI實(shí)現(xiàn)文字識(shí)別,主要涉及通用文字識(shí)別、網(wǎng)絡(luò)圖片文字識(shí)別、身份證識(shí)別等文字識(shí)別功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11

