psql을 사용하여 모든 데이터베이스와 테이블을 나열하려면 어떻게 해야 하나요?

PostgreSQL 관리를 배우기 위해 psql 명령줄 도구를 사용하는 방법을 배우기 시작했습니다.

psql --username=postgres`로 로그인할 때 모든 데이터베이스와 테이블을 나열하려면 어떻게 해야 하나요?

d,ddS+`를 시도했지만 아무것도 나열되지 않습니다. 두 개의 데이터베이스와 몇 개의 테이블을 pgAdmin III로 만들었으므로 나열되어야한다는 것을 알고 있습니다.

질문에 대한 의견 (2)
해결책

다음 명령어를 참고하세요:

  • list또는\l`: 모든 데이터베이스를 나열합니다.
  • dt`: 현재 데이터베이스의 모든 테이블을 나열합니다.

다른 데이터베이스의 테이블은 표시되지 않으며, 해당 테이블은 표시되지 않습니다. 올바른 데이터베이스에 연결해야 해당 데이터베이스의 테이블(및 기타 개체)을 볼 수 있습니다.

데이터베이스를 전환하려면 다음과 같이 하세요:

연결 데이터베이스_이름또는\c 데이터베이스_이름`

psql]1에 대한 설명서를 참조하십시오.

해설 (8)

여기에는 데이터베이스가 나열됩니다:

SELECT datname FROM pg_database
WHERE datistemplate = false;

현재 데이터베이스의 테이블을 나열합니다.

SELECT table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name;
해설 (6)

이 명령을 사용할 수 있는 Postgresql 데이터베이스 나열하십시오 털미널

el@defiant$ /bin/psql -h localhost --username=pgadmin --list

또는 명령을 더 간단하게 말했다.

psql -U pgadmin -l

이러한 명령을 인쇄하십시오 상에서 이 터미널:

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 kurz_prod | pgadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 pgadmin   | pgadmin  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(5 rows)

이들은 모두 사용할 수 있습니다.

파스크라 의 이 명령을 사용할 수 있는 테이블에 목록

먼저 해당 데이터베이스 데이터베이스 테이블에서 나열하십시오 지정해야 합니다.

el@defiant$ psql -U pgadmin -d kurz_prod

이런 이유로 수 파스크라 터미널:

kurz_prod=#

모든 테이블, 뷰, 시퀀스에만 \d 명령을 사용하여 '표시' 마무리라뇨

kurz_prod=# \d

이 인쇄:

           List of relations
Schema |  Name   |   Type   |  Owner
--------+---------+----------+---------
public | mytable | table    | pgadmin
public | testing | sequence | pgadmin
(2 rows)

그런 다음 파스크라 종료하십시오 \q mm_mail_doc. '터미널' enter 키를 누릅니다. '또는' ctrl d 산아래의 같은 것입니다. 이들은 해당 데이터베이스 테이블에서.

해설 (2)

l\list의 줄임말이기도 합니다. 슬래시 명령은 꽤 많은데,\?`를 사용하여 psql에서 나열할 수 있습니다.

해설 (0)

대한 자세한 정보 데이터베이스, 테이블 목록을 얻을 수 있게 할 수 있습니다.

'\l+' 을 데이터베이스 목록

                                                                    List of databases
    Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   |  Size   | Tablespace |                Description
------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------
 pgbench    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 29 MB   | pg_default |
 postgres   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 6073 kB | pg_default | default administrative connection database
 slonmaster | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 1401 MB | movespace  |
 slonslave  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 32 MB   | pg_default |
 template0  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5785 kB | pg_default | unmodifiable empty database
            |          |          |             |             | postgres=CTc/postgres |         |            |
 template1  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +| 5985 kB | pg_default | default template for new databases
            |          |          |             |             | postgres=CTc/postgres |         |            |
 test       | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 13 MB   | pg_default |
(7 rows)

현재 모든 테이블에 \d+ 목록 '을' 의 현재 데이터베이스 스키마 search_path.

test=# \dn+ --list schemas
                          List of schemas
  Name  |  Owner   |  Access privileges   |      Description       
--------+----------+----------------------+------------------------
 public | postgres | postgres=UC/postgres+| standard public schema
        |          | =UC/postgres         | 
schema1 | postgres | postgres=UC/postgres+| 
        |          | =UC/postgres         | 
(2 row)

test=# set search_path to schema1, public;
SET
test=# \d+
                                  List of relations
     Schema  |      Name       | Type  |    Owner     |    Size    | Description
    ---------+-----------------+-------+--------------+------------+-------------
     public  | all_units       | table | postgres     | 0 bytes    |
     public  | asset           | table | postgres     | 16 kB      |
     public  | asset_attribute | table | postgres     | 8192 bytes |
     public  | food            | table | postgres     | 48 kB      |
     public  | name_log        | table | postgres     | 8192 bytes |
     public  | outable         | table | ordinaryuser | 0 bytes    |
     public  | outable2        | table | ordinaryuser | 0 bytes    |
     public  | test            | table | postgres     | 16 kB      |
     public  | usr             | table | postgres     | 5008 kB    |
     schema1 | t1              | table | postgres     | 0 bytes    |
    (10 rows)
해설 (0)

이를 통해 현재 데이터베이스에 대한 모두 누릴 수 있습니다 다음 실행하십시오 pg_Admin 단순히 지정된 테이블 스키마:

SELECT * 
FROM information_schema.tables 
WHERE table_type = 'BASE TABLE' 
    AND table_schema = 'public' 
ORDER BY table_type, table_name

이 목록을 얻을 수 있는 모든 영구적입니다 테이블 (일반적으로 you& # 39 표, re 찾는). 그냥 얻을 수 있습니다 '그냥' 와일드카드 '로 이름을 변경할 경우 테이블 *' table_name. 대부분의 데이터베이스에 대해 국민의 table_schema '기본값입니다 스키마에는 고객의 관리 설정한 경우 새로운 스키마.

해설 (2)

테이블 스키마로 삽입한 것이 없는, 또는 기본, ie, 공공기관 및 검색 경로에 있어 테이블을 사용하여 표시되지 않을 \dt. 이 스키마를 사용하는 경우, 예를 들어, 불렀으매 을 실행하여 데이터를 수정할 수 있습니다

'alter database &lt databasename>; 설정되었습니다 search_path = 데이터, 공공. '

그리고 이제 다시 파스크라 종료하십시오 및 \dt 테이블에서 스키마에는 데이터가 너무 표시됩니다.

해설 (3)