SW/리눅스

Linux : psql 사용하여 PostgreSQL 데이터베이스, 테이블 나열 방법, 예제, 명령어

얇은생각 2021. 10. 17. 07:30
반응형

PostgreSQL 데이터베이스 서버는 데이터베이스와 해당 테이블을 나열하는 작업이 가장 일반적인 작업 중 하나입니다. 

PostgreSQL에는 서버에 연결하여 쿼리를 실행할 수 있는 psql이라는 대화형 도구가 함께 제공됩니다. psql을 사용할 때는 메타 명령도 활용할 수 있습니다. 이러한 명령은 스크립팅 및 명령줄 관리에 유용합니다. 모든 메타 명령은 따옴표가 없는 백슬래시로 시작하며 백슬래시 명령이라고도 합니다.

PostgreSQL에서 데이터베이스와 테이블을 표시하는 방법을 설명합니다.

 

 

Linux : psql 사용하여 PostgreSQL 데이터베이스, 테이블 나열 방법, 예제, 명령어

 

 

데이터베이스를 나열

PostgreSQL 서버는 시스템 사용자로 psql 명령을 사용합니다. 서버 구성에 따라 사용자가 psql 터미널에 연결하려면 암호를 입력해야 할 수도 있습니다. 현재 로그인한 사용자로 psql 터미널에 액세스하려면 psql을 입력하십시오.

PostgreSQL 패키지가 설치되고 "postgres"라는 관리자가 생성됩니다. 기본적으로 이 사용자는 로컬 PostgreSQL Server에 암호가 없고 연결할 수 있습니다.

사용자 "postgres"로 psql 터미널에 액세스하려면 다음을 실행합니다.

sudo -u postgres psql

 

 

sudo 명령을 사용하면 명령을 다른 사용자로 실행할 수 있습니다.

psql 터미널에서 \l 또는 \list meta- 명령을 실행하여 모든 데이터베이스를 나열합니다.

출력에는 데이터베이스 수, 각 데이터베이스의 이름, 소유자, 인코딩 및 액세스 권한이 포함됩니다.

\l

#                               List of databases
#    Name    |  Owner   | Encoding | Collate |  Ctype  |   Access privileges   
# -----------+----------+----------+---------+---------+-----------------------
#  odoo      | odoo     | UTF8     | C       | C.UTF-8 | 
#  postgres  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | 
#  template0 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
#            |          |          |         |         | postgres=CTc/postgres
#  template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
#            |          |          |         |         | postgres=CTc/postgres
# (4 rows)

 

 

PostgreSQL 서버에는 기본적으로 템플릿0, 템플릿1 및 postgres라는 세 개의 데이터베이스가 생성되어 있습니다. 처음 두 가지는 새 데이터베이스를 생성할 때 사용되는 템플릿입니다. 

데이터베이스 크기에 대한 정보를 가져오려면 기본 테이블 영역 및 설명이 \l+ 또는 \list+를 사용합니다. 현재 사용자가 데이터베이스 크기에 연결할 수 있는 경우에만 데이터베이스 크기가 표시됩니다.

psql 셸에 액세스하지 않고 모든 데이터베이스 목록을 가져오려면 아래와 같이 -c 스위치를 사용하십시오.

sudo -u postgres psql -c "\l"

 

 

데이터베이스를 나열하는 또 다른 방법은 다음 SQL 문을 사용하는 것입니다.

\l meta-command와 달리 위의 쿼리는 데이터베이스 이름만 표시합니다.

SELECT datname FROM pg_database;

# datname  
# -----------
#  postgres
#  odoo
#  template1
#  template0
# (4 rows)

 

 

 

테이블을 나열

특정 데이터베이스의 모든 테이블을 먼저 나열하려면 \c 또는 \connect meta- 명령을 사용하여 데이터베이스에 연결해야 합니다. psql 터미널에 대해 로그인한 사용자는 데이터베이스에 연결할 수 있어야 합니다. 

예를 들어 "odoo"라는 이름의 데이터베이스에 연결하려면 다음을 입력합니다.

\c odoo

 

 

데이터베이스가 전환되면 \dt meta- 명령을 사용하여 모든 데이터베이스 테이블을 나열합니다. 

출력에는 테이블의 수, 각 테이블의 이름 및 해당 스키마, 유형 및 소유자가 포함됩니다.

#                               List of relations
#  Schema |                        Name                         | Type  | Owner 
# --------+-----------------------------------------------------+-------+-------
#  public | base_import_import                                  | table | odoo
#  public | base_import_mapping                                 | table | odoo
#  public | base_import_tests_models_char                       | table | odoo
#  ...
#  public | web_editor_converter_test_sub                       | table | odoo
#  public | web_tour_tour                                       | table | odoo
#  public | wizard_ir_model_menu_create                         | table | odoo
# (107 rows)

 

 

데이터베이스가 비어 있는 경우 출력은 다음과 같습니다.

No relations found.

 

 

표의 크기와 설명에 대한 정보를 가져오려면 \dt+를 사용합니다.

PostgreSQL 데이터베이스 및 테이블은 psql 명령을 사용하고 나열하는 방법을 배웠습니다.

반응형