[postgresql] PostgreSQL : PostgreSQL에 테이블 표시

show tablesPostgreSQL의 (MySQL에서) 와 동등한 기능은 무엇입니까 ?



답변

로부터 psql명령 줄 인터페이스,

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

\c database_name

그런 다음 현재 스키마의 모든 테이블을 보여줍니다.

\dt

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

SELECT * FROM pg_catalog.pg_tables;

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


답변

수퍼 유저로 로그인 :

sudo -u postgres psql

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

이제 당신은 당신이에 의해 사용자 / 데이터베이스를 변경할 수있는 다른 데이터베이스를보고 싶다면 \c같은 명령 \c template1, \c postgres postgres사용 \d, \dt또는 \dS/ 등 테이블 / 뷰를 볼 수 있습니다.


답변

(완전성을 위해)

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

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에 입력 할 수 있습니다.

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. 그런 다음 SQL 문을 실행할 수 있습니다 SELECT * FROM my_table;( 예 : 명령문은 세미콜론으로 끝나야합니다 ;)
  9. \q psql을 종료

답변

  1. postgres 사용자로 처음 로그인 :

    sudo su - postgres

  2. 필요한 db에 연결하십시오. psql -d databaseName

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


답변

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


답변

모든 데이터베이스 및 스키마를 확인할 수 있도록 수퍼 유저로 로그인하십시오.

sudo su - postgres

그런 다음 다음 명령을 사용하여 postgresql 셸을 얻을 수 있습니다.

psql

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

\l

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

\l+

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

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

\c database_name

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

\d

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

q

이제 특정 테이블 사용에 대한 세부 정보를 더 보려면 :-

\d table_name

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

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