PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да изброите бази данни и таблици в PostgreSQL с помощта на psql

Когато става въпрос за администриране на бази данни на Postgres, има голямо разнообразие от инструменти на трети страни, като например SQL Workbench/J или pgAdmin III. Самият Postgres обаче идва в комплект с мощен инструмент за команден ред, наречен psql което е чудесно за тези, които са запознати с терминала или търсят задачи за администриране на скриптове. Една от най-често срещаните задачи, които администраторът на базата данни изпълнява, е просто да се запознае със средата. Това включва задаване на въпроси като „Кои бази данни се намират на този сървър?“ или „Какви таблици се съхраняват в конкретна база данни на този сървър?“. В този урок ще научим как да отговорим на тези ключови въпроси от командния ред с помощта на psql .

Мета-команди

В допълнение към възможността да изпращате необработени SQL заявки към сървъра чрез psql можете също да се възползвате от psql мета-команди за получаване на информация от сървъра. Мета-командите са команди, които се оценяват от psql и често се превежда в SQL, който се издава срещу системните таблици на сървъра, спестявайки време на администраторите при изпълнение на рутинни задачи. Те са обозначени с обратна наклонена черта и след това последвани от командата и нейните аргументи. Ще видим някои примери за това по-долу.

Списък на бази данни

Един процес на Postgres сървър може да управлява множество бази данни едновременно. Всяка база данни се съхранява като отделен набор от файлове в собствена директория в директорията с данни на сървъра. За да видите всички дефинирани бази данни на сървъра, можете да използвате \list мета-команда или нейния пряк път \l .

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 sales     | ubuntu   | 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
(4 rows)

Превключване на бази данни

Повечето сървъри на Postgres имат три бази данни, дефинирани по подразбиране:template0 , template1 и postgres . template0 и template1 са скелетни бази данни, които са или могат да бъдат използвани от CREATE DATABASE команда. postgres е базата данни по подразбиране, към която ще се свържете, преди да създадете други бази данни. След като създадете друга база данни, ще искате да преминете към нея, за да създадете таблици и да вмъкнете данни. Често, когато работите със сървъри, които управляват множество бази данни, ще откриете нуждата да прескачате често между бази данни. Това може да стане с \connect мета-команда или нейния пряк път \c .

postgres=# \c sales
You are now connected to database "sales" as user "ubuntu".
sales=#

Таблици с листинги

След като се свържете с база данни, ще искате да проверите кои таблици са създадени там. Това може да стане с \dt мета-команда. Ако обаче няма таблици, няма да получите изход.

sales=# \dt
No relations found.
sales=#

След създаване на таблица, тя ще бъде върната в табличен списък с създадени таблици.

sales=# CREATE TABLE leads (id INTEGER PRIMARY KEY, name VARCHAR);
CREATE TABLE
sales=# \dt
        List of relations
 Schema | Name  | Type  | Owner
--------+-------+-------+--------
 public | leads | table | ubuntu
(1 row)

sales=#

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конфигурирате AppArmor за PostgreSQL и TimescaleDB

  2. Еквивалент на PostgreSQL GROUP_CONCAT().

  3. грешка в sql израза:колона .. не съществува

  4. Кой е най-добрият PostgreSQL GUI? Сравнение за 2021 г

  5. Преглед на различните методи за сканиране в PostgreSQL