postgresql數(shù)據(jù)庫(kù)基本操作及命令詳解
1. 連接 PostgreSQL 數(shù)據(jù)庫(kù)
首先,使用 psql 命令行工具連接到數(shù)據(jù)庫(kù)。如果是本地連接,命令格式如下:
psql -U postgres -d <數(shù)據(jù)庫(kù)名稱> -h <主機(jī)地址>
其中:
-U postgres:表示以postgres用戶身份登錄。-d <數(shù)據(jù)庫(kù)名稱>:指定要連接的數(shù)據(jù)庫(kù)。-h <主機(jī)地址>:指定數(shù)據(jù)庫(kù)服務(wù)器的主機(jī)地址(如果是本地,localhost或127.0.0.1)。
如果沒(méi)有指定數(shù)據(jù)庫(kù),psql 會(huì)默認(rèn)連接到 postgres 數(shù)據(jù)庫(kù)。
2. 創(chuàng)建數(shù)據(jù)庫(kù)
創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)可以使用以下 SQL 語(yǔ)句:
CREATE DATABASE <數(shù)據(jù)庫(kù)名稱>;
例如:
CREATE DATABASE testdb;
3. 查看當(dāng)前數(shù)據(jù)庫(kù)
使用 \c 或 \connect 命令查看或切換當(dāng)前連接的數(shù)據(jù)庫(kù):
\c <數(shù)據(jù)庫(kù)名稱>
例如,切換到 testdb 數(shù)據(jù)庫(kù):
\c testdb
4. 查看所有數(shù)據(jù)庫(kù)
要查看當(dāng)前 PostgreSQL 服務(wù)器中所有數(shù)據(jù)庫(kù),可以使用以下命令:
\l
或者:
\list
5. 查看當(dāng)前數(shù)據(jù)庫(kù)中的所有表
使用以下命令查看當(dāng)前數(shù)據(jù)庫(kù)中所有表:
\dt
6. 創(chuàng)建表
創(chuàng)建表時(shí),定義表的字段及其類型。例如:
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
age INT
);上面的語(yǔ)句創(chuàng)建了一個(gè)名為 students 的表,其中包含 id、name 和 age 字段。
7. 查看表結(jié)構(gòu)
查看表的結(jié)構(gòu),可以使用 \d 命令后接表名:
\d students
這將顯示 students 表的結(jié)構(gòu)和字段類型。
8. 插入數(shù)據(jù)(增)
插入數(shù)據(jù)時(shí)使用 INSERT INTO 語(yǔ)句。假設(shè)我們要向 students 表中插入一條記錄:
INSERT INTO students (name, age) VALUES ('Alice', 20);如果你要插入多條記錄,可以使用以下語(yǔ)法:
INSERT INTO students (name, age) VALUES
('Bob', 22),
('Charlie', 23),
('David', 21);9. 查詢數(shù)據(jù)(查)
查詢數(shù)據(jù)時(shí)使用 SELECT 語(yǔ)句。要查詢表中的所有記錄:
SELECT * FROM students;
查詢指定條件的數(shù)據(jù):
SELECT * FROM students WHERE age > 21;
查詢特定字段:
SELECT name, age FROM students;
10. 更新數(shù)據(jù)(改)
更新數(shù)據(jù)時(shí)使用 UPDATE 語(yǔ)句。比如,將 Alice 的年齡改為 21:
UPDATE students SET age = 21 WHERE name = 'Alice';
更新多條記錄:
UPDATE students SET age = age + 1 WHERE age < 25;
11. 刪除數(shù)據(jù)(刪)
刪除數(shù)據(jù)時(shí)使用 DELETE 語(yǔ)句。比如刪除 name 為 Bob 的記錄:
DELETE FROM students WHERE name = 'Bob';
如果你想刪除所有數(shù)據(jù)(但保留表結(jié)構(gòu)):
DELETE FROM students;
如果你希望徹底刪除表結(jié)構(gòu)及其數(shù)據(jù),可以使用 DROP TABLE:
DROP TABLE students;
12. 查看當(dāng)前連接的會(huì)話
查看當(dāng)前連接的會(huì)話信息:
\conninfo
這將顯示當(dāng)前連接的數(shù)據(jù)庫(kù)、用戶名、主機(jī)等信息。
13. 查看數(shù)據(jù)庫(kù)的狀態(tài)
查看數(shù)據(jù)庫(kù)的狀態(tài)或運(yùn)行信息,使用以下命令:
SELECT pg_stat_activity;
這將顯示當(dāng)前連接到數(shù)據(jù)庫(kù)的會(huì)話信息,包括每個(gè)連接的狀態(tài)、查詢等。
14. 查看表的大小
查看某個(gè)表所占用的存儲(chǔ)空間大?。?/p>
SELECT pg_size_pretty(pg_total_relation_size('students'));如果你要查看所有表的大小,可以使用:
SELECT table_name, pg_size_pretty(pg_total_relation_size(table_name)) FROM information_schema.tables WHERE table_schema = 'public';
15. 查看數(shù)據(jù)庫(kù)的大小
查看數(shù)據(jù)庫(kù)本身的大?。?/p>
SELECT pg_size_pretty(pg_database_size('testdb'));你可以替換 testdb 為任何你要查詢的數(shù)據(jù)庫(kù)名稱。
16. 查看索引
查看某個(gè)表的索引:
\di
或者:
SELECT * FROM pg_indexes WHERE tablename = 'students';
17. 創(chuàng)建索引
為了提高查詢效率,可以在表中創(chuàng)建索引。例如,為 students 表的 name 列創(chuàng)建索引:
CREATE INDEX idx_name ON students (name);
18. 備份數(shù)據(jù)庫(kù)
使用 pg_dump 命令進(jìn)行數(shù)據(jù)庫(kù)備份。備份到一個(gè)文件:(進(jìn)入數(shù)據(jù)庫(kù))
pg_dump -U postgres -d testdb -f backup.sql
19. 恢復(fù)數(shù)據(jù)庫(kù)
使用 psql 恢復(fù)備份的數(shù)據(jù):
psql -U postgres -d testdb -f backup.sql
20. 退出 PostgreSQL
退出 psql 連接:
\q
到此這篇關(guān)于postgresql數(shù)據(jù)庫(kù)基本操作及命令詳解的文章就介紹到這了,更多相關(guān)postgresql數(shù)據(jù)庫(kù)操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- PostgreSQL數(shù)據(jù)庫(kù)時(shí)間類型相加減操作
- 使用psql操作PostgreSQL數(shù)據(jù)庫(kù)命令詳解
- PostgreSQL數(shù)據(jù)庫(kù)的基本查詢操作
- PostgreSQL數(shù)據(jù)庫(kù)視圖及子查詢使用操作
- Qt5連接并操作PostgreSQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例
- Postgresql數(shù)據(jù)庫(kù)之創(chuàng)建和修改序列的操作
- PostgreSQL向數(shù)據(jù)庫(kù)表中添加行數(shù)據(jù)的操作
- postgresql數(shù)據(jù)庫(kù)連接數(shù)和狀態(tài)查詢操作
相關(guān)文章
常用?PostgreSQL?預(yù)防數(shù)據(jù)丟失解決方案
這篇文章主要介紹了常用?PostgreSQL?預(yù)防數(shù)據(jù)丟失方案,本篇主要介紹關(guān)于?DDL?和?DML?操作,如何預(yù)防數(shù)據(jù)丟失的方案,需要的朋友可以參考下2022-01-01
Postgresql開(kāi)啟SQL執(zhí)行語(yǔ)句收集過(guò)程
本文介紹如何修改PostgreSQL的配置文件來(lái)啟用SQL執(zhí)行語(yǔ)句的日志記錄,包括打開(kāi)配置文件、修改日志相關(guān)設(shè)置以及查看日志文件的方法,關(guān)鍵步驟包括刪除注釋符號(hào)、設(shè)定日志存儲(chǔ)路徑和文件名、選擇記錄的SQL語(yǔ)句類型,此操作有助于數(shù)據(jù)庫(kù)管理和問(wèn)題調(diào)試2024-10-10
淺析postgresql 數(shù)據(jù)庫(kù) TimescaleDB 修改分區(qū)時(shí)間范圍
這篇文章主要介紹了淺析postgresql 數(shù)據(jù)庫(kù) TimescaleDB 修改分區(qū)時(shí)間范圍,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Postgresql 實(shí)現(xiàn)查詢一個(gè)表/所有表的所有列名
這篇文章主要介紹了Postgresql 實(shí)現(xiàn)查詢一個(gè)表/所有表的所有列名,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
PostgreSQL數(shù)據(jù)庫(kù)視圖及子查詢使用操作
這篇文章主要為大家介紹了PostgreSQL數(shù)據(jù)庫(kù)視圖及子查詢的使用操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
如何查看PostgreSQL數(shù)據(jù)庫(kù)中所有表
這篇文章主要介紹了如何查看PostgreSQL數(shù)據(jù)庫(kù)中所有表問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
如何解決PostgreSQL執(zhí)行語(yǔ)句長(zhǎng)時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行的問(wèn)題
某日開(kāi)發(fā)同事上報(bào)一sql性能問(wèn)題,一條查詢好似一直跑不出結(jié)果,查詢了n小時(shí),還未返回結(jié)果,這篇文章主要給大家介紹了關(guān)于如何解決PostgreSQL執(zhí)行語(yǔ)句長(zhǎng)時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行問(wèn)題的相關(guān)資料,需要的朋友可以參考下2024-02-02
Postgresql的select優(yōu)化操作(快了200倍)
這篇文章主要介紹了Postgresql的select優(yōu)化操作(快了200倍),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01

