postgresql - 사용법 - psql 이란




PostgreSQL에 테이블 표시 (12)

  1. 우선 postgres 사용자로 로그인하십시오 :

    sudo su - postgres

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

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

PostgreSQL에서 (MySQL의) show tablesshow tables 하는 것과 동등한 점은 무엇입니까?


(완성을 위해)

또한 (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에서 pgAdmin4를 사용하고 있다면, 다음과 같이 데이터베이스의 테이블을 보여줄 수 있습니다 :

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

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

\ dt는 테이블을 나열 할 것이고, "\ pset pager off"는 테이블을 따로 따로 바꾸지 않고 같은 창에 보여줍니다. 죽음의 특징을 사랑합니다.


먼저 postgre.app 또는 postico를 사용하여 postgres 데이터베이스에 연결할 수 있습니다. 다음 명령을 실행하십시오.

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

암호를 입력하면 데이터베이스에 대한 액세스 권한이 부여됩니다.


수퍼 유저로 로그인 :

sudo -u postgres psql

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

이제 다른 데이터베이스를보고 싶다면 \c template1 과 같은 \c 명령으로 사용자 / 데이터베이스를 변경할 수 있습니다. \c postgres postgres\d , \dt 또는 \dS 를 사용하여 테이블 / 뷰 / etc를 볼 수 있습니다.


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

내 데이터베이스는 우분투

이 명령을 사용하여 연결하십시오.

 \c ubuntu

이 메시지는

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

지금

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

\d+

참고로 \dt 만 사용중인 데이터베이스의 공개 스키마에있는 테이블을 나열합니다. 나는 테이블을 별도의 스키마로 유지하기 때문에 허용 된 응답이 나에게 도움이되지 못했다.

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

1) 원하는 데이터베이스에 연결하십시오.

psql mydb

2) 다음과 같이 \dt 명령 다음에 테이블을 보려는 스키마 이름을 지정하십시오.

\dt myschema.*

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

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

테이블 만 보자.

=> \dt

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

=>\dt+

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

=>\dt schema_name.* 

psql 커맨드 라인 인터페이스에서 이것은 현재 스키마의 모든 테이블을 보여줍니다 :

\dt

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

SELECT * FROM pg_catalog.pg_tables;

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


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






postgresql