Bài viết này sẽ cung cấp một danh sách các lệnh psql phổ biến giúp bạn truy vấn dữ liệu từ máy chủ cơ sở dữ liệu PostgreSQL nhanh hơn và hiệu quả hơn.
- Kết nối với cơ sở dữ liệu PostgreSQL
- Chuyển kết nối sang cơ sở dữ liệu mới
- Liệt kê các database đã tạo
- Liệt kê các table đã tạo
- Xem cấu trúc của một bảng
- Liệt kê các schema đã tạo
- Liệt kê các function đã tạo
- Liệt kê các view đã tạo
- Liệt kê các table, view, sequence đã tạo
- Liệt kê user và role của user
- Thực hiện lại lệnh SELECT trước đó
- Hiển thị thông tin của kết nối hiện tại
- Nhận trợ giúp về các lệnh psql
- Bật thời gian thực hiện truy vấn
- Chỉnh sửa lệnh trong trình soạn thảo riêng
- Chuyển đổi tùy chọn đầu ra
- Thoát lệnh psql
1. Kết nối với cơ sở dữ liệu PostgreSQL
Lệnh sau kết nối đến database với một user cụ thể. Sau khi nhấn Enter PostgreSQL sẽ hỏi mật khẩu của user.
psql -U username [-d dbname] [-W]
Ví dụ sau kết nối với cơ sở dữ liệu dvdrental bằng user postgres
psql -U postgres dvdrental

Trường hợp không chỉ định tên database để kết nối thì mặc định sẽ kết nối đến database có cùng tên với user.
Thực thi lệnh psql -U postgres
sẽ kết nối đến cơ sở dữ liệu có tên là postgres có cùng tên với user postgres
Nếu bạn muốn kết nối với cơ sở dữ liệu trên một máy chủ khác, bạn thêm tùy chọn -h như sau:
psql -U user [-h host/IP Server] [-d database] [-W]
Trong trường hợp bạn muốn sử dụng chế độ SSL cho kết nối, chỉ cần chỉ định nó như được hiển thị trong lệnh sau:
psql -U user [-h host/IP Server] "dbname=db sslmode=require"
2. Chuyển kết nối sang cơ sở dữ liệu mới
Khi bạn đã kết nối với cơ sở dữ liệu, bạn có thể chuyển kết nối sang cơ sở dữ liệu mới.
Kết nối trước đó sẽ bị đóng. Nếu bỏ qua tham số user, người dùng hiện tại là user sẽ kết nối đến sở dữ liệu mới.
\c dbname username
Đầu tiên, kết nối đến database postgres bằng user postgres
psql -U postgres

Lệnh sau kết nối với cơ sở dữ liệu dvdrental theo user postgres
postgres=# \c dvdrental You are now connected to database "dvdrental" as user "postgres". dvdrental=#
3. Liệt kê các database đã tạo
Để liệt kê tất cả các cơ sở dữ liệu trong máy chủ cơ sở dữ liệu PostgreSQL hiện tại, bạn sử dụng lệnh \l

4. Liệt kê các table đã tạo
Để liệt kê tất cả các bảng trong cơ sở dữ liệu hiện tại, bạn sử dụng lệnh \dt
Lệnh \dt chỉ hiển thị các bảng của cơ sở dữ liệu hiện đang được kết nối.

5. Xem cấu trúc của một bảng
Để xem cấu trúc của một bảng như gồm những cột nào, loại dữ liệu của cột, các rằng buộc về khóa chính, khóa ngoại,… bạn sử dụng lệnh sau:
\d table_name
Ví dụ xem cấu trúc của bảng tblstudents của database sampledata

6. Liệt kê các schema đã tạo
Để liệt kê tất cả các schema (lược đồ) của cơ sở dữ liệu hiện đang được kết nối, bạn sử dụng lệnh \dn hoặc \dn+
Ví dụ xem tất cả các schema của database mydb

7. Liệt kê các function đã tạo
Để liệt kê các function đã tạo trong cơ sở dữ liệu hiện tại, bạn sử dụng lệnh \df
Ví dụ xem tất cả các function của database dvdrental

8. Liệt kê các view đã tạo
Để liệt kê các view đã tạo trong cơ sở dữ liệu hiện tại, bạn sử dụng lệnh \dv
Ví dụ xem tất cả các view của database dvdrental

9. Liệt kê các table, view, sequence đã tạo
Chúng ta sử dụng lệnh \z

10. Liệt kê user và role của user
Chúng ta sử dụng lệnh \du

11. Thực hiện lại lệnh SELECT trước đó
Khi bạn muốn thực thi lại lệnh SELECT đã thực thi gần nhất trước đó thì không cần gõ lại toàn lệnh SELECT đó, mà chỉ cần nhập lệnh \g để gọi lại thực hiện giúp tiết kiệm đáng kể thời gian.
Một số lệnh SELECT như: xem phiên bản hiện tại của máy chủ PostgreSQL SELECT version();
, hay lệnh truy vấn sql SELECT * FROM table_name
,…

12 Hiển thị thông tin của kết nối hiện tại
Chúng ta sử dụng lệnh \conninfo

Từ kết quả nhận được cho chúng ta biết thông tin của kết nối hiện tại database: postgres, user: postgres, IP server: localhost, port: 5432
13. Nhận trợ giúp về các lệnh psql
Để biết tất cả các lệnh psql có sẵn, bạn sử dụng lệnh \?
\?
Để nhận trợ giúp về câu lệnh PostgreSQL cụ thể, bạn sử dụng lệnh \h
Ví dụ: nếu bạn muốn biết thông tin chi tiết về câu lệnh ALTER TABLE, bạn sử dụng lệnh sau:
\h ALTER TABLE

14. Bật thời gian thực hiện truy vấn
Sử dụng lệnh \timing

Cũng sử dụng lệnh \timing để tắt thời gian thực hiện truy vấn.

15. Chỉnh sửa lệnh trong trình soạn thảo riêng
Rất thuận tiện nếu có thể gõ lệnh trong trình soạn thảo yêu thích mà không phải trong màn hình cmd nhàm chán, có chút bất tiện trong việc chỉnh sửa nội dung khi nhập sai.
Trong psql bạn có thể sử dụng lệnh \e để làm được điều này. Sau khi enter, psql sẽ mở trình soạn thảo văn bản được xác định bởi biến môi trường EDITOR và đặt lệnh gần đây nhất mà bạn đã nhập trong psql vào trình soạn thảo.

Sau khi bạn gõ lệnh trong trình soạn thảo, lưu nó và đóng trình soạn thảo, psql sẽ thực thi lệnh và trả về kết quả.

Nó cực kỳ hữu ích khi bạn chỉnh sửa một function hay một câu lệnh dài trong trình chỉnh sửa sẽ dễ dàng hơn rất nhiều.

16. Chuyển đổi tùy chọn đầu ra
psql hỗ trợ một số loại (types) định dạng (format) của kết quả trả về và cho phép bạn tùy chỉnh format này một cách nhanh chóng.
● Lệnh \a chuyển đổi format output thành aligned.

● Lệnh \H chuyển đổi format output thành HTML.

17. Thoát lệnh psql
Để thoát khỏi psql, bạn nhập lệnh \q hoặc exit, rồi nhấn enter.
