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

BẢNG MÔ TẢ PostgreSQL Tương đương

Một số DBMS như Oracle, MySQL và MariaDB có DESCRIBE lệnh trả về thông tin về bảng và dạng xem. Nó chuyển sang DESCRIBE table trong đó table là tên của bảng hoặc dạng xem và nó cũng có thể được theo sau bởi tên cột nếu bạn chỉ muốn thông tin về một cột cụ thể.

PostgreSQL không có DESCRIBE TABLE lệnh như vậy, nhưng có các lựa chọn thay thế.

\d Lệnh

Nếu bạn đang sử dụng psql , một cách nhanh chóng để trả lại thông tin bảng là sử dụng \d yêu cầu. Lệnh này hiển thị thông tin về bảng, dạng xem, dạng xem cụ thể hóa, chỉ mục, chuỗi hoặc bảng ngoại. Do đó, chúng tôi có thể sử dụng lệnh này làm DESCRIBE TABLE thay thế.

Cú pháp

Cú pháp như sau:

\d[S+] [ pattern ]

Đây, pattern có thể là tên của bảng (hoặc đối tượng khác) hoặc nó có thể là một biểu thức chính quy. Nếu \d được sử dụng mà không có pattern đối số, nó tương đương với \dtvmsE sẽ hiển thị danh sách tất cả các bảng, chế độ xem, chế độ xem cụ thể hóa, chuỗi và bảng ngoại có thể nhìn thấy.

Theo mặc định, chỉ các đối tượng do người dùng tạo mới được hiển thị, nhưng bạn có thể cung cấp một mẫu hoặc S sửa đổi để bao gồm các đối tượng hệ thống.

Ví dụ

Đây là một ví dụ về việc sử dụng \d để trả về thông tin về một bảng có tên actor :

\d public.actor

Kết quả:

                                             Table "public.actor"
+-------------+-----------------------------+-----------+----------+-----------------------------------------+
|   Column    |            Type             | Collation | Nullable |                 Default                 |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+
| actor_id    | integer                     |           | not null | nextval('actor_actor_id_seq'::regclass) |
| first_name  | character varying(45)       |           | not null |                                         |
| last_name   | character varying(45)       |           | not null |                                         |
| last_update | timestamp without time zone |           | not null | now()                                   |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+
Indexes:
    "actor_pkey" PRIMARY KEY, btree (actor_id)
    "idx_actor_last_name" btree (last_name)
Referenced by:
    TABLE "film_actor" CONSTRAINT "film_actor_actor_id_fkey" FOREIGN KEY (actor_id) REFERENCES actor(actor_id) ON UPDATE CASCADE ON DELETE RESTRICT
Triggers:
    last_updated BEFORE UPDATE ON actor FOR EACH ROW EXECUTE FUNCTION last_updated()

Lệnh này cũng trả về các chỉ mục, ràng buộc, quy tắc và trình kích hoạt được liên kết. Ngoài ra, đối với các bảng nước ngoài, máy chủ nước ngoài được liên kết được hiển thị.

Thông tin mở rộng

Chúng ta có thể thêm một dấu cộng (+ ) để tiết lộ thông tin mở rộng, bao gồm bất kỳ nhận xét nào được liên kết với các cột của bảng, sự hiện diện của OID trong bảng, định nghĩa chế độ xem nếu mối quan hệ là một chế độ xem và cài đặt nhận dạng bản sao không mặc định và tên phương thức truy cập nếu mối quan hệ có một phương thức truy cập.

Ví dụ:

\d+ public.actor

Kết quả:

                                                                 Table "public.actor"
+-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+
|   Column    |            Type             | Collation | Nullable |                 Default                 | Storage  | Stats target | Description |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+
| actor_id    | integer                     |           | not null | nextval('actor_actor_id_seq'::regclass) | plain    |              |             |
| first_name  | character varying(45)       |           | not null |                                         | extended |              |             |
| last_name   | character varying(45)       |           | not null |                                         | extended |              |             |
| last_update | timestamp without time zone |           | not null | now()                                   | plain    |              |             |
+-------------+-----------------------------+-----------+----------+-----------------------------------------+----------+--------------+-------------+
Indexes:
    "actor_pkey" PRIMARY KEY, btree (actor_id)
    "idx_actor_last_name" btree (last_name)
Referenced by:
    TABLE "film_actor" CONSTRAINT "film_actor_actor_id_fkey" FOREIGN KEY (actor_id) REFERENCES actor(actor_id) ON UPDATE CASCADE ON DELETE RESTRICT
Triggers:
    last_updated BEFORE UPDATE ON actor FOR EACH ROW EXECUTE FUNCTION last_updated()
Access method: heap

Chỉ trả lại các loại đối tượng cụ thể

Như đã đề cập, tôi f \d được sử dụng mà không có pattern đối số, nó tương đương với \dtvmsE sẽ hiển thị danh sách tất cả các bảng, chế độ xem, chế độ xem cụ thể hóa, chuỗi và bảng ngoại có thể nhìn thấy.

Chúng ta có thể nối thêm bất kỳ chữ cái nào trong số các chữ cái E , i , m , s , tv , tương ứng là viết tắt của bảng ngoại, chỉ mục, chế độ xem cụ thể hóa, trình tự, bảng và chế độ xem. Chúng tôi có thể chỉ định bất kỳ hoặc tất cả các chữ cái này, theo bất kỳ thứ tự nào, để có được danh sách các đối tượng thuộc loại này.

Đây là một ví dụ về việc nối thêm t để giới hạn dữ liệu chỉ trả về các bảng:

\dt actor

Kết quả:

          List of relations
+--------+-------+-------+----------+
| Schema | Name  | Type  |  Owner   |
+--------+-------+-------+----------+
| public | actor | table | postgres |
+--------+-------+-------+----------+

Các ký tự đại diện

Dưới đây là ví dụ về việc bao gồm toán tử ký tự đại diện để tất cả các bảng bắt đầu bằng film được trả lại:

\dt film*

Kết quả:

              List of relations
+--------+---------------+-------+----------+
| Schema |     Name      | Type  |  Owner   |
+--------+---------------+-------+----------+
| public | film          | table | postgres |
| public | film_actor    | table | postgres |
| public | film_category | table | postgres |
+--------+---------------+-------+----------+

information_schema.columns Xem

Nếu bạn không sử dụng psql (và ngay cả khi bạn sử dụng psql ), thì bạn luôn có thể truy vấn information_schema.columns lượt xem. Chế độ xem này có thể được sử dụng để trả về thông tin tương tự như những gì chúng tôi nhận được với DESCRIBE table trong các DBMS khác.

SELECT
    column_name,
    data_type,
    character_maximum_length AS max_length,
    character_octet_length AS octet_length,
    is_nullable,
    column_default
FROM
    information_schema.columns
WHERE
    table_schema = 'public' AND 
    table_name = 'actor';

Kết quả:

+-------------+-----------------------------+------------+--------------+-------------+-----------------------------------------+
| column_name |          data_type          | max_length | octet_length | is_nullable |             column_default              |
+-------------+-----------------------------+------------+--------------+-------------+-----------------------------------------+
| actor_id    | integer                     |       NULL |         NULL | NO          | nextval('actor_actor_id_seq'::regclass) |
| first_name  | character varying           |         45 |          180 | NO          | NULL                                    |
| last_name   | character varying           |         45 |          180 | NO          | NULL                                    |
| last_update | timestamp without time zone |       NULL |         NULL | NO          | now()                                   |
+-------------+-----------------------------+------------+--------------+-------------+-----------------------------------------+

Dạng xem này chứa nhiều cột khác và bạn có thể thêm / bớt cột theo yêu cầu.

information_schema các chế độ xem là khá nhiều tiêu chuẩn trên hầu hết các DBMS chính và vì vậy chúng tôi cũng có thể truy vấn chế độ xem này trong các DBMS đó.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tối ưu hóa PostgreSQL để kiểm tra nhanh

  2. Thiết lập môi trường tối ưu cho PostgreSQL

  3. Lỗi:không tìm thấy tệp thi hành pg_config khi cài đặt psycopg2 trên Alpine trong Docker

  4. AMD, Intel và PostgreSQL

  5. biểu thức chính quy quốc tế hóa trong postgresql