PostgreSQL 관리를 배우기 위해 psql
명령줄 도구를 사용하는 방법을 배우기 시작했습니다.
psql --username=postgres`로 로그인할 때 모든 데이터베이스와 테이블을 나열하려면 어떻게 해야 하나요?
d,
d및
dS+`를 시도했지만 아무것도 나열되지 않습니다. 두 개의 데이터베이스와 몇 개의 테이블을 pgAdmin III로 만들었으므로 나열되어야한다는 것을 알고 있습니다.
다음 명령어를 참고하세요:
또는
\l`: 모든 데이터베이스를 나열합니다.다른 데이터베이스의 테이블은 표시되지 않으며, 해당 테이블은 표시되지 않습니다. 올바른 데이터베이스에 연결해야 해당 데이터베이스의 테이블(및 기타 개체)을 볼 수 있습니다.
데이터베이스를 전환하려면 다음과 같이 하세요:
연결 데이터베이스_이름또는
\c 데이터베이스_이름`
psql]1에 대한 설명서를 참조하십시오.
여기에는 데이터베이스가 나열됩니다:
SELECT datname FROM pg_database
WHERE datistemplate = false;
현재 데이터베이스의 테이블을 나열합니다.
SELECT table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name;
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 산아래의 같은 것입니다. 이들은 해당 데이터베이스 테이블에서.
대한 자세한 정보 데이터베이스, 테이블 목록을 얻을 수 있게 할 수 있습니다.
'\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)
이를 통해 현재 데이터베이스에 대한 모두 누릴 수 있습니다 다음 실행하십시오 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 '기본값입니다 스키마에는 고객의 관리 설정한 경우 새로운 스키마.
테이블 스키마로 삽입한 것이 없는, 또는 기본, ie, 공공기관 및 검색 경로에 있어 테이블을 사용하여 표시되지 않을 \dt. 이 스키마를 사용하는 경우, 예를 들어, 불렀으매 을 실행하여 데이터를 수정할 수 있습니다
'alter database < databasename>; 설정되었습니다 search_path = 데이터, 공공. '
그리고 이제 다시 파스크라 종료하십시오 및 \dt 테이블에서 스키마에는 데이터가 너무 표시됩니다.