\d命令
1
2
3
|
格式:
\d [ pattern ]
\d [ pattern ] +
|
该命令将显示每个匹配关系(表,视图,索引,序列)的信息,包括对象所有的列,它们的类型,表空间(如果不是默认的)和任何特殊属性(如NOT NULL或默认值等)。与唯一约束相关的索引,规则,约束,触发器也同样会显示出来。如果关系是一个视图,还会显示视图的定义。
1.如果\d命令什么都不带,将列出当前数据库中的所有表。
1
2
3
4
5
6
7
8
9
10
11
12
|
sample_db=# \d
List of relations
Schema | Name | Type | Owner
--------+----------------+-------+---------
public | account | table | postgre
public | book | table | postgre
public | customers | table | postgre
public | fruits | table | postgre
...
public | view_t | view | postgre
public | view_t2 | view | postgre
(42 rows)
|
2.\d后面跟一个表名,表示显示这个表的结构定义。
1
2
3
4
5
6
7
8
9
10
11
12
|
sample_db=# \d tb_dept2
Table "public.tb_dept2"
Column | Type | Modifiers
----------+-----------------------+-----------
id | integer | not null
name | character varying(22) |
location | character varying(50) |
Indexes:
"tb_dept2_pkey" PRIMARY KEY, btree (id)
"tb_dept2_name_key" UNIQUE CONSTRAINT, btree (name)
Referenced by:
TABLE "tb_tmp" CONSTRAINT "fk_emp_dept" FOREIGN KEY (deptid) REFERENCES tb_dept2(id)
|
3.\d也可以显示索引信息
1
2
3
4
5
6
|
sample_db=# \d tb_dept2_pkey
Index "public.tb_dept2_pkey"
Column | Type | Definition
--------+---------+------------
id | integer | id
primary key, btree, for table "public.tb_dept2"
|
4.\d后面可以跟一通配符"*"或"?"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
sample_db=# \d boo?
Table "public.book"
Column | Type | Modifiers
------------------+------------------------+-----------
bookid | integer | not null
bookname | character varying(255) | not null
authors | character varying(255) | not null
info | character varying(255) |
comment | character varying(255) |
year_publication | date | not null
Indexes:
"uniqididx" UNIQUE, btree (bookid)
"bkcmtidx" btree (comment)
"bknameidx" btree (bookname)
sample_db=# \d a*
Table "public.account"
Column | Type | Modifiers
--------+---------------+-----------
id | integer |
name | character(20) |
Triggers:
account_stamp BEFORE INSERT ON account FOR EACH ROW EXECUTE PROCEDURE account_stam()
|
5.\d+命令,该命令将显示比\d命令更详细的信息,除了前面介绍的那些,它还会显示任何与表列关联的注释,以及表中出现的ODI。
1
2
3
4
5
6
7
|
sample_db=# \d+ t
Table "public.t"
Column | Type | Modifiers | Storage | Stats target | Description
----------+---------+-----------+---------+--------------+-------------
quantity | integer | | plain | |
price | integer | | plain | |
Has OIDs: no
|
6.匹配不同对象类型的\d命令
1
2
3
4
5
|
如果想只显示匹配的表,可以使用\dt命令
如果想只显示索引,可以使用\di命令
如果想只显示序号,可以使用\ds命令
如果想只显示视图,可以使用\dv命令
如果想只显示函数,可以使用\df命令
|
7.如果想显示SQL已执行的时间,可以用\timing命令
1
2
3
4
5
6
7
8
9
|
sample_db=# \timing on
Timing is on.
sample_db=# select count(*) from t;
count
-------
1
(1 row)
Time: 0.348 ms
|
8.列出所有的schemas可以使用\dn命令
1
2
3
4
5
6
|
sample_db=# \dn
List of schemas
Name | Owner
--------+---------
public | postgre
(1 row)
|
9.显示所有的表空间可以用\db命令
1
2
3
4
5
6
7
|
sample_db=# \db
List of tablespaces
Name | Owner | Location
------------+---------+----------
pg_default | postgre |
pg_global | postgre |
(2 rows)
|
表空间就是对一个目录,放在这个表空间的表,就是把表的数据文件放到这个表空间下。
10.列出数据库所有角色或用户\du或\dg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
sample_db=# \dg
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
bob | | {}
linux78 | | {}
post4 | | {}
post5 | Superuser, Cannot login | {}
post6 | Create DB, Cannot login | {}
post7 | Create role, Cannot login | {}
post8 | Cannot login | {}
postgre | Superuser, Create role, Create DB, Replication | {}
sample_db=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
bob | | {}
linux78 | | {}
post4 | | {}
post5 | Superuser, Cannot login | {}
post6 | Create DB, Cannot login | {}
post7 | Create role, Cannot login | {}
post8 | Cannot login | {}
postgre | Superuser, Create role, Create DB, Replication | {}
|
11.\dp或\z命令用于显示表的权限分配情况
1
2
3
4
5
6
|
sample_db=# \dp t
Access privileges
Schema | Name | Type | Access privileges | Column access privileges
--------+------+-------+-------------------+--------------------------
public | t | table | |
(1 row)
|