1. 連接 PostgreSQL 數據庫
首先,使用 psql
命令行工具連接到數據庫。如果是本地連接,命令格式如下:
psql -U postgres -d <數據庫名稱> -h <主機地址>
其中:
-U postgres
:表示以postgres
用戶身份登錄。-d <數據庫名稱>
:指定要連接的數據庫。-h <主機地址>
:指定數據庫服務器的主機地址(如果是本地,localhost
或127.0.0.1
)。
如果沒有指定數據庫,psql
會默認連接到 postgres
數據庫。
2. 創建數據庫
創建一個新的數據庫可以使用以下 SQL 語句:
CREATE DATABASE <數據庫名稱>;
例如:
CREATE DATABASE testdb;
3. 查看當前數據庫
使用 \c
或 \connect
命令查看或切換當前連接的數據庫:
\c <數據庫名稱>
例如,切換到 testdb
數據庫:
\c testdb
4. 查看所有數據庫
要查看當前 PostgreSQL 服務器中所有數據庫,可以使用以下命令:
\l
或者:
\list
5. 查看當前數據庫中的所有表
使用以下命令查看當前數據庫中所有表:
\dt
6. 創建表
創建表時,定義表的字段及其類型。例如:
CREATE TABLE students (id SERIAL PRIMARY KEY,name VARCHAR(100),age INT
);
上面的語句創建了一個名為 students
的表,其中包含 id
、name
和 age
字段。
7. 查看表結構
查看表的結構,可以使用 \d
命令后接表名:
\d students
這將顯示 students
表的結構和字段類型。
8. 插入數據(增)
插入數據時使用 INSERT INTO
語句。假設我們要向 students
表中插入一條記錄:
INSERT INTO students (name, age) VALUES ('Alice', 20);
如果你要插入多條記錄,可以使用以下語法:
INSERT INTO students (name, age) VALUES
('Bob', 22),
('Charlie', 23),
('David', 21);
9. 查詢數據(查)
查詢數據時使用 SELECT
語句。要查詢表中的所有記錄:
SELECT * FROM students;
查詢指定條件的數據:
SELECT * FROM students WHERE age > 21;
查詢特定字段:
SELECT name, age FROM students;
10. 更新數據(改)
更新數據時使用 UPDATE
語句。比如,將 Alice
的年齡改為 21:
UPDATE students SET age = 21 WHERE name = 'Alice';
更新多條記錄:
UPDATE students SET age = age + 1 WHERE age < 25;
11. 刪除數據(刪)
刪除數據時使用 DELETE
語句。比如刪除 name
為 Bob
的記錄:
DELETE FROM students WHERE name = 'Bob';
如果你想刪除所有數據(但保留表結構):
DELETE FROM students;
如果你希望徹底刪除表結構及其數據,可以使用 DROP TABLE
:
DROP TABLE students;
12. 查看當前連接的會話
查看當前連接的會話信息:
\conninfo
這將顯示當前連接的數據庫、用戶名、主機等信息。
13. 查看數據庫的狀態
查看數據庫的狀態或運行信息,使用以下命令:
SELECT pg_stat_activity;
這將顯示當前連接到數據庫的會話信息,包括每個連接的狀態、查詢等。
14. 查看表的大小
查看某個表所占用的存儲空間大小:
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. 查看數據庫的大小
查看數據庫本身的大小:
SELECT pg_size_pretty(pg_database_size('testdb'));
你可以替換 testdb
為任何你要查詢的數據庫名稱。
16. 查看索引
查看某個表的索引:
\di
或者:
SELECT * FROM pg_indexes WHERE tablename = 'students';
17. 創建索引
為了提高查詢效率,可以在表中創建索引。例如,為 students
表的 name
列創建索引:
CREATE INDEX idx_name ON students (name);
18. 備份數據庫
使用 pg_dump
命令進行數據庫備份。備份到一個文件:(進入數據庫)
pg_dump -U postgres -d testdb -f backup.sql
19. 恢復數據庫
使用 psql
恢復備份的數據:
psql -U postgres -d testdb -f backup.sql
20. 退出 PostgreSQL
退出 psql
連接:
\q