Khi nói đến quản trị cơ sở dữ liệu Postgres, có rất nhiều công cụ của bên thứ ba như SQL Workbench / J hoặc pgAdmin III. Tuy nhiên, bản thân Postgres đi kèm với một công cụ dòng lệnh mạnh mẽ được gọi là psql
điều này rất tốt cho những người quen thuộc với thiết bị đầu cuối hoặc đang tìm kiếm các tác vụ quản trị tập lệnh. Một trong những nhiệm vụ phổ biến nhất mà người quản trị cơ sở dữ liệu thực hiện chỉ đơn giản là làm quen với môi trường. Điều này liên quan đến việc hỏi những câu hỏi như "Cơ sở dữ liệu nào nằm trên máy chủ này?" hoặc “Những bảng nào được lưu trữ trong một cơ sở dữ liệu cụ thể trên máy chủ này?”. Trong hướng dẫn này, chúng ta sẽ học cách trả lời những câu hỏi quan trọng này từ dòng lệnh bằng cách sử dụng psql
.
Meta-Commands
Ngoài việc có thể gửi các truy vấn SQL thô tới máy chủ thông qua psql
bạn cũng có thể tận dụng psql
lệnh meta để lấy thông tin từ máy chủ. Lệnh meta là các lệnh được đánh giá bởi psql
và thường được dịch sang SQL được phát hành dựa trên các bảng hệ thống trên máy chủ, giúp tiết kiệm thời gian cho quản trị viên khi thực hiện các tác vụ thông thường. Chúng được biểu thị bằng một dấu gạch chéo ngược và sau đó là lệnh và các đối số của nó. Chúng ta sẽ xem một số ví dụ về điều này bên dưới.
Cơ sở dữ liệu danh sách
Một quy trình máy chủ Postgres duy nhất có thể quản lý nhiều cơ sở dữ liệu cùng một lúc. Mỗi cơ sở dữ liệu được lưu trữ dưới dạng một tập hợp tệp riêng biệt trong thư mục riêng của nó trong thư mục dữ liệu của máy chủ. Để xem tất cả các cơ sở dữ liệu đã xác định trên máy chủ, bạn có thể sử dụng \list
lệnh meta hoặc phím tắt của nó \l
.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
sales | ubuntu | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
Chuyển đổi cơ sở dữ liệu
Hầu hết các máy chủ Postgres có ba cơ sở dữ liệu được xác định theo mặc định:template0
, template1
và postgres
. template0
và template1
là cơ sở dữ liệu khung được hoặc có thể được sử dụng bởi CREATE DATABASE
yêu cầu. postgres
là cơ sở dữ liệu mặc định mà bạn sẽ kết nối trước khi tạo bất kỳ cơ sở dữ liệu nào khác. Khi bạn đã tạo một cơ sở dữ liệu khác, bạn sẽ muốn chuyển sang cơ sở dữ liệu đó để tạo bảng và chèn dữ liệu. Thông thường, khi làm việc với các máy chủ quản lý nhiều cơ sở dữ liệu, bạn sẽ thấy cần phải chuyển đổi giữa các cơ sở dữ liệu thường xuyên. Điều này có thể được thực hiện với \connect
lệnh meta hoặc phím tắt của nó \c
.
postgres=# \c sales
You are now connected to database "sales" as user "ubuntu".
sales=#
Bảng danh sách
Khi bạn đã kết nối với cơ sở dữ liệu, bạn sẽ muốn kiểm tra bảng nào đã được tạo ở đó. Điều này có thể được thực hiện với \dt
lệnh meta. Tuy nhiên, nếu không có bảng nào, bạn sẽ không nhận được kết quả nào.
sales=# \dt
No relations found.
sales=#
Sau khi tạo một bảng, nó sẽ được trả lại trong danh sách dạng bảng gồm các bảng đã tạo.
sales=# CREATE TABLE leads (id INTEGER PRIMARY KEY, name VARCHAR);
CREATE TABLE
sales=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------+-------+--------
public | leads | table | ubuntu
(1 row)
sales=#