PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách liệt kê Cơ sở dữ liệu và Bảng trong PostgreSQL bằng psql

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 , template1postgres . template0template1 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=#

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:sử dụng một cột được tính toán trong cùng một truy vấn

  2. Làm cách nào để tôi có thể nhập dữ liệu từ ASCII (ISO / IEC 8859-1) vào cơ sở dữ liệu Rails / PGSQL của mình?

  3. Sử dụng nhiều mục tiêu xung đột trong mệnh đề ON CONFLICT

  4. 4 cách để tìm hàng có chứa ký tự chữ hoa trong PostgreSQL

  5. Nhận danh sách ngày trong một phạm vi trong PostgreSQL