etc./StackOverFlow

PostgreSQL: PostgreSQL에서 테이블 표시

청렴결백한 만능 재주꾼 2021. 12. 20. 10:11
반응형

질문자 :flybywire


PostgreSQL에서 (MySQL의) show tables 을 표시하는 것과 동일한 것은 무엇입니까?



psql 명령줄 인터페이스에서

먼저 데이터베이스를 선택하십시오.

 \c database_name

그러면 현재 스키마의 모든 테이블이 표시됩니다.

 \dt

프로그래밍 방식으로(또는 psql 인터페이스에서도):

 SELECT * FROM pg_catalog.pg_tables;

시스템 테이블은 pg_catalog 데이터베이스에 있습니다.


Mihai Limbășan

수퍼유저로 로그인:

 sudo -u postgres psql

\l 명령으로 모든 데이터베이스와 사용자를 나열할 수 있습니다(다른 명령은 \? 나열).

이제 다른 데이터베이스를 보려면 \c template1 , \c postgres postgres\c 명령으로 \d , \dt 또는 \dS 를 사용하여 테이블/뷰/등을 볼 수 있습니다.


JLarky

PostgreSQL의 대화형 터미널 Psql을 사용하여 PostgreSQL의 테이블을 표시할 수 있습니다.

1. Psql 시작

일반적으로 다음 명령을 실행하여 psql에 들어갈 수 있습니다.

 psql DBNAME USERNAME

예를 들어, psql template1 postgres

한 가지 상황은 다음과 같습니다. 루트로 로그인했는데 데이터베이스 이름이 기억나지 않는다고 가정합니다. 다음을 실행하여 Psql에 먼저 입력할 수 있습니다.

 sudo -u postgres psql

일부 시스템에서는 sudo 명령을 사용할 수 없으며 대신 아래 명령을 실행할 수 있습니다.

 psql -U postgres psql --username=postgres

2. 테이블 표시

이제 Psql에서 다음과 같은 명령을 실행할 수 있습니다.

  1. \? 모든 명령 나열
  2. \l 데이터베이스 나열
  3. \conninfo 현재 연결에 대한 정보 표시
  4. \c [DBNAME] 새 데이터베이스에 연결합니다(예: \c template1
  5. \dt 공개 스키마의 테이블 목록
  6. \dt <schema-name>.* 특정 스키마의 테이블을 나열합니다(예: \dt public.*
  7. \dt *.* 모든 스키마의 테이블 나열
  8. SELECT * FROM my_table; 과 같은 SQL 문을 실행할 수 있습니다. (참고: 문은 세미콜론으로 끝나야 합니다 ; )
  9. \q psql 종료

Yuci

(완벽함을 위해)

(SQL 표준) 정보 스키마를 쿼리할 수도 있습니다.

 SELECT table_schema || '.' || table_name FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema NOT IN ('pg_catalog', 'information_schema');

Milen A. Radev

  1. postgres 사용자로 첫 로그인:

    sudo su - postgres

  2. 필요한 db에 연결: psql -d databaseName

  3. \dt 는 연결된 데이터베이스의 모든 테이블 목록을 반환합니다.


nish

모든 데이터베이스와 해당 스키마를 확인할 수 있도록 수퍼유저로 로그인합니다.

 sudo su - postgres

그런 다음 다음 명령을 사용하여 postgresql 셸로 이동할 수 있습니다.

 psql

이제 다음 명령을 사용하여 모든 데이터베이스 목록을 확인할 수 있습니다.

 \l

데이터베이스의 크기도 확인하려면 다음을 사용하십시오.

 \l+

돌아가려면 q 를 누르십시오.

이제 데이터베이스를 찾았으면 다음 명령을 사용하여 해당 데이터베이스에 연결할 수 있습니다.

 \c database_name

연결되면 다음을 통해 데이터베이스 테이블 또는 스키마를 확인할 수 있습니다.

 \d

이제 쉘로 돌아가려면 다음을 사용하십시오.

 q

이제 특정 테이블의 세부 정보를 보려면 다음을 사용하십시오.

 \d table_name

postgresql_shell로 돌아가려면 \q 누르십시오.

그리고 터미널로 돌아가려면 exit 누르십시오.


Shashishekhar Hasabnis

-E 플래그와 함께 psql을 실행하면 \dt 및 이와 유사한 것을 구현하기 위해 내부적으로 사용되는 쿼리가 에코됩니다.

 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; **************************

bsb

사용 테이블만 참조

 => \dt

스키마 테이블을 보고 싶다면

 =>\dt+

특정 스키마 테이블을 보고 싶다면

 =>\dt schema_name.*

Aryan

생성한 테이블 목록만 보고 싶다면 다음과 같이 말할 수 있습니다.

\dt

그러나 표시할 테이블을 사용자 정의하는 데 도움이 되는 PATTERN 도 있습니다. pg_catalog 스키마를 포함하여 모두 표시하려면 * 를 추가할 수 있습니다.

\dt *

당신이 할 경우: \?

\dt[S+] [PATTERN] 목록 테이블


Banned_User

먼저 다음 명령을 사용하여 데이터베이스에 연결합니다.

 \c database_name

그러면 다음 메시지가 표시됩니다. You are now connected to database database_name 그리고 그들은 다음 명령을 실행합니다

 SELECT * FROM table_name;

database_name 및 table_name에서 데이터베이스 및 테이블 이름으로 업데이트하십시오.


J4cK

PostgreSQL에서 pgAdmin4를 사용하는 경우 이를 사용하여 데이터베이스의 테이블을 표시할 수 있습니다.

 select * from information_schema.tables where table_schema='public';

Reynante Daitol

\dt 만으로도 사용 중인 데이터베이스 의 공개 스키마에 있는 테이블이 나열됩니다. 내 테이블을 별도의 스키마로 유지하는 것을 좋아하므로 허용되는 답변이 효과가 없었습니다.

특정 스키마 내의 모든 테이블을 나열하려면 다음을 수행해야 했습니다.

1) 원하는 데이터베이스에 연결합니다.

 psql mydb

\dt 명령 다음에 테이블을 보려는 스키마 이름을 지정합니다.

 \dt myschema.*

이것은 내가 관심있는 결과를 보여줍니다.

 List of relations Schema | Name | Type | Owner ----------+-----------------+-------+---------- myschema | users | table | postgres myschema | activity | table | postgres myschema | roles | table | postgres

rotarydial

select * from pg_catalog.pg_tables where schemaname != 'information_schema' and schemaname != 'pg_catalog';

Abdelhak

\dt (no * 필수) -- 이미 연결된 기존 데이터베이스의 모든 테이블을 나열합니다. 또한 참고할 사항:

\d [table_name] -- 유형 정보, 참조 및 키 제약 조건을 포함하여 주어진 테이블에 대한 모든 열을 표시합니다.


user4642897

\dt 를 사용하여 현재 데이터베이스의 테이블을 나열할 수 있습니다.

Fwiw, \d tablename show columns from tablename 와 같이 주어진 테이블에 대한 세부 정보를 표시하지만 약간의 정보가 더 있습니다.


JohnK

명령줄에서 모든 테이블을 나열하는 가장 간단한 방법은 내 취향에 따라 다음과 같습니다.

 psql -a -U <user> -p <port> -h <server> -c "\dt"

주어진 데이터베이스에 대해 데이터베이스 이름을 추가하십시오.

 psql -a -U <user> -p <port> -h <server> -c "\dt" <database_name>

Linux와 Windows 모두에서 작동합니다.


Alain Cherpin


psql 사용 : \dt

또는:

 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

MisterJoyson

우선 다음과 같이 데이터베이스에 연결해야 합니다.

내 데이터베이스는 우분투입니다

이 명령을 사용하여 연결

 \c ubuntu

이 메시지가 표시됩니다

"이제 "postgres" 사용자로 "ubuntu" 데이터베이스에 연결되었습니다."

지금

이 명령을 실행하여 모든 테이블을 표시하십시오.

 \d+

Usman Yaqoob

빠른 원 라이너로

 # 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'

또는 훨씬 더 명확한 json 출력 다중 라이너를 선호하는 경우 :

 IFS='' read -r -d '' sql_code <<"EOF_CODE" select array_to_json(array_agg(row_to_json(t))) from ( SELECT table_catalog,table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name ) t EOF_CODE psql -d postgres -t -q -c "$sql_code"|jq

Yordan Georgiev

\dt는 테이블을 나열하고 "\pset pager off"는 별도의 테이블로 전환하지 않고 동일한 창에 테이블을 표시합니다. dbshell에서 그 기능을 아주 좋아합니다.


lauri108

이 SQL 쿼리는 대부분의 PostgreSQL 버전에서 작동하며 매우 간단합니다.

 select table_name from information_schema.tables where table_schema='public' ;

Vineet Kumar Gupta

psql에서 외부 테이블을 보려면 \dE


Ian Hunter

  1. 로그인 후 PostgreSQL 명령줄 인터페이스에서 다음 명령어를 입력하여 원하는 데이터베이스에 접속합니다.

     \c [database_name]

You are now connected to database "[database_name]" 메시지가 표시됩니다.

  1. 모든 테이블을 나열하려면 다음 명령을 입력하십시오.

     \dt

Ameen Ali

이 단계는 PostgreSQL 13.3Windows 10

  1. cmd를 열고 psql -a -U [username] -p [port] -h [server]
  2. \c [database] 를 입력하여 데이터베이스에 연결하십시오.
  3. 모든 테이블을 표시하려면 \dt 또는 \d 를 입력하십시오.

Anis KCHAOU

먼저 Mac에서 postgre.app을 사용하거나 postico를 사용하여 postgres 데이터베이스에 연결할 수 있습니다. 다음 명령을 실행합니다.

 psql -h localhost -p port_number -d database_name -U user_name -W

그런 다음 비밀번호를 입력하면 데이터베이스에 액세스할 수 있습니다.


Patcho

출처 : http:www.stackoverflow.com/questions/769683/postgresql-show-tables-in-postgresql

반응형