Khóa học
PostgreSQL là một trong những Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) được chấp nhận rộng rãi nhất hiện nay. Cài đặt mặc định của PostgreSQL đi kèm với dấu nhắc psql, là giao diện giống như terminal của PostgreSQL. Còn pgAdmin cung cấp giao diện đồ họa để thao tác với cơ sở dữ liệu trong PostgreSQL. Với psql, ngoài việc thực thi các truy vấn SQL, bạn còn có thêm nhiều chức năng khác và một số trong đó bạn sẽ được học trong hướng dẫn này.
Bạn sẽ bắt đầu bằng cách học cách lấy danh sách các cơ sở dữ liệu đang nằm trên một máy chủ PostgreSQL và dần dần tiến tới những nội dung trung cấp hơn. Bắt đầu thôi.
Lưu ý: Hướng dẫn này giả định rằng bạn đã quen thuộc với SQL (ngôn ngữ chung để tương tác với RDBMS) và PostgreSQL. Bạn có thể ôn lại những kiến thức cơ bản qua các tài nguyên sau:
Bắt đầu từ những điều cơ bản
Bạn có thể muốn có sẵn một cơ sở dữ liệu được chuẩn bị tốt để theo dõi hướng dẫn này. Bạn có thể dùng tệp sao lưu này và khôi phục nó vào máy chủ PostgreSQL của bạn. Nếu muốn biết cách thực hiện, bạn có thể đọc bài viết này.
Nếu bạn đang thắc mắc psql là gì; trích đoạn từ trang chính thức của PostgreSQL mô tả psql rất rõ ràng như sau -
psql là một giao diện đầu cuối (terminal) cho PostgreSQL. Nó cho phép bạn nhập truy vấn một cách tương tác, gửi chúng tới PostgreSQL và xem kết quả truy vấn. Ngoài ra, đầu vào có thể đến từ tệp hoặc từ đối số dòng lệnh. Bên cạnh đó, psql cung cấp một số meta-command và nhiều tính năng giống shell để hỗ trợ viết script và tự động hóa nhiều tác vụ khác nhau.
Như đã đề cập, trong hướng dẫn này bạn sẽ học mười lệnh psql hữu ích nhất. Trước khi tiếp tục, hãy đảm bảo bạn đã cài đặt PostgreSQL (tốt nhất là phiên bản >= 9.4). Bài viết này sẽ giúp bạn cài đặt PostgreSQL.
Bước tiếp theo là truy cập vào dấu nhắc sau:

Trên Windows, bạn chỉ cần gõ psql trong Thanh Tìm kiếm của Start Menu và có thể mở nó. Đây được gọi là shell psql, nơi cung cấp dấu nhắc psql. Như bạn thấy, dấu nhắc hiện đang trỏ tới cơ sở dữ liệu mặc định postgres. Hãy xem liệu có cơ sở dữ liệu nào khác tồn tại trong máy chủ PostgreSQL cục bộ này không.
1. Liệt kê các cơ sở dữ liệu hiện có
Bạn có thể dùng lệnh \l để lấy danh sách tất cả các cơ sở dữ liệu hiện có.

Như bạn thấy, tôi có các cơ sở dữ liệu sau -
- datacamp_tutorials
- postgres
Bạn có thể bỏ qua các mục còn lại. Giờ hãy xem danh sách các bảng hiện có trong cơ sở dữ liệu hiện tại.
2. Liệt kê các bảng hiện có trong cơ sở dữ liệu hiện tại
\dt sẽ làm việc này cho bạn -
![]()
Nhưng đáng tiếc là cơ sở dữ liệu postgres chưa có bảng nào được tạo (trong tài liệu quản trị cơ sở dữ liệu, bảng thường được gọi là quan hệ). Hãy chuyển sang một cơ sở dữ liệu khác và xem liệu nó có bảng nào không.
3. Chuyển sang cơ sở dữ liệu khác
Cú pháp để làm việc này: \c <database_name>. Giả sử bạn muốn chuyển sang cơ sở dữ liệu tên là datacamp_tutorials, bạn có thể làm như sau -
`\c datacamp_tutorials`

Bây giờ, hãy xem nó có bảng nào với lệnh \dt không -

Như bạn thấy, cơ sở dữ liệu datacamp_tutorials có bốn bảng sau -
- countries
- route_table
- station_code
- train_table
Giả sử bạn muốn xem chi tiết cấu trúc của một bảng cụ thể. Điều này thường được gọi là mô tả một bảng. Hãy xem cách thực hiện.
4. Mô tả một bảng cụ thể
Cú pháp chung là \d <table_name>. Giả sử bạn đang ở trong cơ sở dữ liệu datacamp_tutorials và muốn mô tả bảng tên countries. Lệnh sẽ là \d countries -

Như bạn thấy, \d countries cung cấp nhiều thông tin hữu ích về bảng như tên cột, kiểu dữ liệu, các bộ sửa đổi của cột, v.v. Bạn có thể muốn biết phiên bản hiện tại của công cụ PostgreSQL của mình, có thể để phục vụ tài liệu. Hãy xem cách thực hiện.
5. Biết phiên bản của PostgreSQL
SELECT version(); cho phép bạn làm điều này -

Giờ giả sử bạn quên mất lệnh cuối cùng đã thực thi trên shell psql giữa chừng và đó là một lệnh quan trọng. Không vấn đề gì! Bạn có thể truy xuất nó dễ dàng.
6. Xem lệnh đã thực thi trước đó
\g dùng để làm việc này -

Như bạn thấy, \g tự động thực thi lại lệnh trước đó. Có thể bạn tò mò hơn và muốn xem danh sách tất cả các lệnh psql có sẵn cho phiên bản PostgreSQL bạn đang chạy. Hãy xem ngay sau đây.
7. Liệt kê tất cả các lệnh hiện có
Bạn có thể lấy danh sách tất cả lệnh psql với \? -

Bạn có thể quan tâm đến việc biết cú pháp của các mệnh đề cơ sở dữ liệu khác nhau như SELECT, ALTER, DROP, v.v. Bạn có thể làm điều này ngay trong dấu nhắc psql.
8. Tìm hiểu cú pháp các câu lệnh PostgreSQL
Giả sử bạn muốn biết thêm về câu lệnh DROP. \h DROP TABLE có thể giúp bạn -

Giả sử bạn muốn phân tích thời gian thực thi của các truy vấn. Hãy xem cách làm điều này từ shell psql.
9. Biết thời gian thực thi của truy vấn
Để làm điều này, bạn sẽ phải dùng lệnh \timing. Giả sử bạn muốn phân tích thời gian thực thi của truy vấn sau -
select * from train_table limit 10;
Trước tiên bạn đưa lệnh \timing -
![]()
Sau khi bật tùy chọn timing, bạn có thể chạy truy vấn của mình -

Như bạn thấy, thời gian thực thi truy vấn là 0,786 ms. Thời gian thực thi có thể khác nhau giữa các máy. Bây giờ bạn sẽ xem lệnh psql cuối cùng, lệnh này mở lệnh/truy vấn đã thực thi trước đó trong một trình soạn thảo văn bản.
10. psql + trình soạn thảo văn bản
Nếu bạn thực thi lệnh \e, nó sẽ mở lệnh/truy vấn đã thực thi gần nhất trong một trình soạn thảo văn bản và cho phép bạn chỉnh sửa rồi chạy lại.

Như bạn thấy, lệnh e mở trình soạn thảo văn bản Notepad với truy vấn đã thực thi trước đó.
Kết luận
Trong hướng dẫn này, bạn đã học về mười lệnh psql hữu ích mà bạn có thể dùng trong các tác vụ liên quan đến cơ sở dữ liệu hằng ngày. Nếu muốn học thêm về SQL, bạn có thể thử các khóa học DataCamp sau -