programing

PostgreSQL: Postgre에 테이블 표시SQL

javamemo 2023. 5. 5. 08:32
반응형

PostgreSQL: Postgre에 테이블 표시SQL

에 해당하는 것은 무엇입니까?show tables(MySQL) PostgreSQL?

psql 인터페이스 명령행 인터페이스,

먼저 데이터베이스를 선택합니다.

\c database_name

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

\dt

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

SELECT * FROM pg_catalog.pg_tables;

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

슈퍼 사용자로 로그인:

sudo -u postgres psql

다음 기준으로 모든 데이터베이스 및 사용자를 나열할 수 있습니다.\lcommand, (을 명령, (다른나기준열명) 순으로 합니다.\?).

를 이제다데데른이베보다방사려음용이/베이있다수니습변를경스할터자법으로를스이면으로 변경할 수 있습니다.\c는 " 같명은령와령"와 같습니다.\c template1,\c postgres postgres 및사를 합니다.\d,\dt또는\dS테이블/테이블/테이블 등을 보다

Postgre를 사용할 수 있습니다.Postgre에 표를 표시하는 SQL의 대화형 터미널 PsqlSQL.

Psql 시작

일반적으로 다음 명령을 실행하여 psql에 입력할 수 있습니다.

psql DBNAME USERNAME

를 들면, 들면를예,psql template1 postgres

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

sudo -u postgres psql

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

psql -U postgres
psql --username=postgres

테이블 표시

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

  1. \? 합니다.
  2. \l
  3. \conninfo를 표시합니다.
  4. \c [DBNAME]데이터베이스에 합니다. \c template1
  5. \dt public 목록표
  6. \dt <schema-name>.*스키마의 을 나열합니다. \dt public.*
  7. \dt *.* all schemas
  8. SQL 를 들어 SQL 할 수 .SELECT * FROM my_table;은 세미콜론(: 문은세론로종야합어니다참료되으콜미고합▁be다▁must니▁(참▁semic▁(olon▁statement야▁withinated▁a▁termnote)으로 종결되어야 합니다.;)
  9. \q을 종료합니다.

(완전성을 위해)

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

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');
  1. postgres 사용자로 처음 로그인:

    sudo su - postgres

  2. 한 db: 에필db결에 합니다.psql -d databaseName

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

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

sudo su - postgres

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

psql

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

\l

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

\l+

를 누릅니다.q돌아가겠습니다.

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

\c database_name

연결되면 다음 방법으로 데이터베이스 테이블 또는 스키마를 확인할 수 있습니다.

\d

이제 셸로 돌아가려면 다음을 사용합니다.

q

이제 특정 표의 세부 정보를 자세히 보려면 다음을 사용합니다.

\d table_name

postgresql_shell을 .\q.

터널로돌면다같누이릅다니과음려미아가다▁press▁and니누릅▁back를 누릅니다.exit.

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

작성한 테이블 목록만 보려는 경우 다음과 같이만 말할 수 있습니다.

\dt

만우리또한는하지또도 있습니다.PATTERN표시할 테이블을 사용자 지정하는 데 도움이 됩니다. 포함하여 모두 pg_catalog스키마, 추가할 수 있습니다.*.

\dt *

수행하는 경우:\?

\dt[S+] [PATTERN] 목록 표

표 보기만 사용

=> \dt

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

=>\dt+

특정 스키마 테이블을 보려면

=>\dt schema_name.* 

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

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

먼저 다음 명령을 사용하여 데이터베이스와 연결

\c database_name

그리고 당신은 이 메시지를 보게 될 것입니다.You are now connected to database database_name합니다.

SELECT * FROM table_name;

database_name 및 table_name에서 데이터베이스 및 테이블 이름으로 업데이트만 하면 됩니다.

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

:\dt단독으로 사용 중인 데이터베이스의 공용 스키마에 있는 테이블을 나열합니다.저는 테이블을 따로 도식화해서 보관하는 것을 좋아해서, 수락된 답변은 저에게 효과가 없었습니다.

특정 스키마 의 모든 테이블을 나열하려면 다음 작업이 필요했습니다.

원하는 데이터베이스에 연결:

psql mydb

을 " " " " 에 지정합니다.\dt다음과 같은 명령:

\dt myschema.*

다음은 제가 관심 있는 결과를 보여줍니다.

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

(MySQL) 현재 데이터베이스에 대한 테이블 목록 표시

show tables;

(포스트그리)SQL)에 현재 데이터베이스에 대한 테이블 목록이 표시

select * from pg_catalog.pg_tables where schemaname='public';

가 있었습니다.PostgreSQL 13.3그리고.Windows 10

  1. cmd를 합니다.psql -a -U [username] -p [port] -h [server]
  2. \c [database]
  3. \dt또는\d 표를 합니다.

\dt과 테이블 목록을 표시합니다.\pset pager off는 별도의 창으로 전환하지 않고 동일한 창에 표시됩니다.dbshell에서 그 하세요.

\dt (* 필요 없음) - 이미 연결된 기존 데이터베이스에 대한 모든 테이블을 나열합니다.참고할 만한 사항:

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

이 SQL 쿼리는 대부분의 Postgre 버전에서 작동합니다.SQL 및 상당히 단순합니다.

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

을 현재데테다같이나수있열습다니할음으로 할 수 .\dt.

후위,\d tablename주어진 테이블에 대한 세부사항을 보여줄 것입니다.show columns from tablename자세한 내용은 MySQL에 있습니다.

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

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

지정된 데이터베이스에 대해 데이터베이스 이름을 추가합니다.

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

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

  1. 포스트그레에서로그인 후 SQL 명령줄 인터페이스에서 다음 명령을 입력하여 원하는 데이터베이스에 연결합니다.

        \c [database_name]
    

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

  1. 다음 명령을 입력하여 모든 테이블을 나열합니다.

        \dt
    

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

현재 데이터베이스에 대한 테이블 목록 표시

선택 * FROM pg_catalog.pg_tables;

"신속한 여행자"로서

# how-to list all the tables 
export PGUSER='postgres'
export PGHOST='postgres-host-end-point'
export PGPORT=5432
export PGDATABASE=foobar

PGPASSWORD='uber-secret' psql -d $PGDATABASE -t -q -c \
 "SELECT table_catalog,table_schema,table_name 
   FROM information_schema.tables where table_schema='public';

또는 출력 다중 라이너가 훨씬 선명한 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

우선 데이터베이스와 연결해야 합니다.

데이터베이스는 unbuntu입니다.

이 명령을 사용하여 연결합니다.

 \c ubuntu

이 메시지는 다음과 같습니다.

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

지금이다

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

\d+

\dt 작동합니다.그리고 그것의 등가성은

SELECT
  n.nspname as "Schema",
  c.relname as "Name",
  CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' WHEN 'p' THEN 'partitioned table' WHEN 'I' THEN 'partitioned index' 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', 'p', '')
  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;

psql에서 외부 테이블을 보려면 다음을 실행합니다.\dE

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

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

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

언급URL : https://stackoverflow.com/questions/769683/postgresql-show-tables-in-postgresql

반응형