Show tables in PostgreSQL
在PostgreSQL中,与EDOCX1(mysql中的0)等价的是什么?
从
1 | \dt |
以编程的方式(当然,也可以从
1 | SELECT * FROM pg_catalog.pg_tables; |
系统表位于pg_目录数据库中。
以超级用户身份登录:
1 | sudo -u postgres psql |
您可以通过
现在,如果您想查看其他数据库,可以通过
(为了完整性)
您还可以查询(SQL标准)信息架构:
1 2 3 4 5 6 7 8 | SELECT table_schema || '.' || TABLE_NAME FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema'); |
您可以使用PostgreSQL的交互式终端psql在PostgreSQL中显示表。
1。启动PSQL
通常可以运行以下命令进入psql:
1 | psql DBNAME USERNAME |
例如,
您可能遇到的一种情况是:假设您以根用户身份登录,但不记得数据库名称。只需运行以下命令,就可以首先进入psql:
1 | sudo -u postgres psql |
在某些系统中,sudo命令不可用,您可以运行以下任一命令:
1 2 | psql -U postgres psql --username=postgres |
2。显示表
现在在psql中,您可以运行如下命令:
作为Postgres用户首次登录:
接所需DB:
运行带有-e标志的psql将返回内部用于实现的查询 DT和类似:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | sudo -u postgres psql -E postgres=# \dt ********* QUERY ********** SELECT n.nspname AS"Schema", c.relname AS"Name", CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END AS"Type", pg_catalog.pg_get_userbyid(c.relowner) AS"Owner" FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind IN ('r','') AND n.nspname <> 'pg_catalog' AND n.nspname <> 'information_schema' AND n.nspname !~ '^pg_toast' AND pg_catalog.pg_table_is_visible(c.oid) ORDER BY 1,2; ************************** |
如果只想查看已创建的表列表,则只能说:
但是我们也有
如果是:
\dt[S+] [PATTERN] list tables
只使用查看表格
1 | => \dt |
如果要查看架构表
1 | =>\dt+ |
如果要查看特定的架构表
1 | =>\dt schema_name.* |
首先使用以下命令连接数据库
1 | \c database_name |
你会看到这个信息-
1 | SELECT * FROM TABLE_NAME; |
在数据库名称和表名称中,只需使用数据库和表名称更新
so that as a superuser登录到数据库,你可以和他们schemas check the:P></
1 | sudo su - postgres |
然后,我们可以使用get to PostgreSQL命令模式:后壳P></
1 | psql |
现在你可以检查在数据库列表using the following by the command:P></
1 | \l |
如果你会喜欢check the of the数据库作为维大小.使用:-好P></
1 | \l+ |
出版社
You have found盎司你的数据库的数据库,现在你可以使用connect to the following命令:P></
1 | \c database_name |
"You can check the tables连通数据库模式或模式:P></
1 | \d |
现在使用Return to back to the Shell:P></
1 | q |
现在继续see the details of to table使用:-一定P></
1 | \d TABLE_NAME |
to Go back to _出版社
back to和to Return端子
如果在PostgreSQL中使用pgadmin4,则可以使用它显示数据库中的表:
1 | SELECT * FROM information_schema.tables WHERE table_schema='public'; |
注释列表,
to list的图式在表内,needed to:P></
1)数据库:connect to the教育P></
1 | psql mydb |
2)模式的specify the name for the tables想看到后
1 | \dt myschema.* |
这表明,结果我的兴趣:我的茶P></
1 2 3 4 5 6 | List OF relations Schema | Name | TYPE | Owner ----------+-----------------+-------+---------- myschema | users | TABLE | postgres myschema | activity | TABLE | postgres myschema | roles | TABLE | postgres |
dt(无*必需)--将列出已连接到的现有数据库的所有表。还可以注意到:
D[表名]——将显示给定表的所有列,包括类型信息、引用和键约束。
1 2 3 4 5 6 7 | SELECT * FROM pg_catalog.pg_tables WHERE schemaname != 'information_schema' AND schemaname != 'pg_catalog'; |
您可以使用
fwiw,
使用psql:DTP></
或:P></
1 2 3 4 5 6 | SELECT c.relname AS Tables_in FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE pg_catalog.pg_table_is_visible(c.oid) AND c.relkind = 'r' AND relname NOT LIKE 'pg_%' ORDER BY 1 |
首先,你必须像
我的数据库是Ubuntu
使用此命令连接
1 | \c ubuntu |
此消息将显示
"You are now connected to database"ubuntu" as user"postgres"."
现在
运行此命令以显示其中的所有表
1 | \d+ |
dt将列出表,"pset pager off"将在同一窗口中显示它们,而不切换到单独的窗口。爱死在dbshell中的那个特性。
快速oneliner as aP></
1 2 3 | # just list ALL the postgres TABLES sorted IN the terminal db='my_db_name' clear;psql -d $db -t -c '\dt'|cut -c 11-|perl -ne 's/^([a-z_0-9]*)( )(.*)/$1/; print' |
在外国的psql to view,Run
首先,您可以使用Mac上的postgre.app或Postico连接Postgres数据库。运行以下命令:
1 | psql -h localhost -p port_number -d database_name -U user_name -W |
然后输入密码,这样可以访问数据库。