PostgreSQL

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ
Được viết bởi Minh Hoàng

Series chia sẻ về PostgreSQL – Cơ sở dữ liệu mã nguồn mở tiên tiến nhất thế giới.

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.

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (1)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (2)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (3)

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.

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (4)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (5)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (6)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (7)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (8)

9. Liệt kê các table, view, sequence đã tạo

Chúng ta sử dụng lệnh \z

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (12)

10. Liệt kê user và role của user

Chúng ta sử dụng lệnh \du

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (9)

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,…

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (10)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (11)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (13)

14. Bật thời gian thực hiện truy vấn

Sử dụng lệnh \timing

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (14)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (15)

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.

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (16)

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ả.

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (17)

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.

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (18)

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.

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (19)

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

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (20)

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.

17 lệnh psql hữu ích mà bạn không muốn bỏ lỡ (21)

Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!

Giới thiệu

Minh Hoàng

Xin chào, tôi là Hoàng Ngọc Minh, hiện đang làm BrSE, tại công ty Toyota, Nhật Bản. Những gì tôi viết trên blog này là những trải nghiệm thực tế tôi đã đúc rút ra được trong cuộc sống, quá trình học tập và làm việc. Các bài viết được biên tập một cách chi tiết, linh hoạt để giúp bạn đọc có thể tiếp cận một cách dễ dàng nhất. Hi vọng nó sẽ có ích hoặc mang lại một góc nhìn khác cho bạn[...]

Translate »