sql >> Databáze >  >> RDS >> PostgreSQL

Jak vypsat databáze a tabulky v PostgreSQL pomocí psql

Pokud jde o správu databází Postgres, je k dispozici široká škála nástrojů třetích stran, jako je SQL Workbench/J nebo pgAdmin III. Samotný Postgres je však dodáván s výkonným nástrojem příkazového řádku s názvem psql což je skvělé pro ty, kteří znají terminál nebo chtějí skriptovat administrační úlohy. Jedním z nejběžnějších úkolů správce databáze je pouhé seznámení se s prostředím. To zahrnuje kladení otázek jako "Které databáze jsou umístěny na tomto serveru?" nebo "Jaké tabulky jsou uloženy v konkrétní databázi na tomto serveru?". V tomto tutoriálu se naučíme, jak zodpovědět tyto klíčové otázky z příkazového řádku pomocí psql .

Meta-příkazy

Kromě toho, že je možné odesílat nezpracované dotazy SQL na server prostřednictvím psql můžete také využít výhod psql meta-příkazy k získání informací ze serveru. Meta-příkazy jsou příkazy, které vyhodnocuje psql a často překládány do SQL, který je vydáván proti systémovým tabulkám na serveru, což správcům šetří čas při provádění rutinních úloh. Jsou označeny zpětným lomítkem a za nimi následuje příkaz a jeho argumenty. Níže uvidíme několik příkladů.

Výpis databází

Jeden proces serveru Postgres může spravovat více databází současně. Každá databáze je uložena jako samostatná sada souborů ve svém vlastním adresáři v datovém adresáři serveru. Pro zobrazení všech definovaných databází na serveru můžete použít \list meta-příkaz nebo jeho zkratka \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)

Přepínání databází

Většina serverů Postgres má ve výchozím nastavení definované tři databáze:template0 , template1 a postgres . template0 a template1 jsou základní databáze, které jsou nebo mohou být používány CREATE DATABASE příkaz. postgres je výchozí databáze, ke které se připojíte před vytvořením jakékoli jiné databáze. Jakmile vytvoříte další databázi, budete se do ní chtít přepnout, abyste mohli vytvářet tabulky a vkládat data. Při práci se servery, které spravují více databází, často narazíte na potřebu často přeskakovat mezi databázemi. To lze provést pomocí \connect meta-command nebo jeho zkratka \c .

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

Výpis tabulek

Jakmile se připojíte k databázi, budete chtít zkontrolovat, které tabulky tam byly vytvořeny. To lze provést pomocí \dt meta-příkaz. Pokud však žádné tabulky neexistují, nedostanete žádný výstup.

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

Po vytvoření tabulky bude vrácena v tabulkovém seznamu vytvořených tabulek.

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. Výkon MySQL:Převod MySQL na MariaDB

  2. Funkce CONCAT() v Oracle

  3. Velké objekty nelze použít v režimu automatického potvrzení

  4. Úvod do databáze vysoké dostupnosti pro MySQL a MariaDB