sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan viser du databaser og tabeller i PostgreSQL ved hjælp af psql

Når det kommer til at administrere Postgres-databaser, er der en bred vifte af tredjepartsværktøjer tilgængelige, såsom SQL Workbench/J eller pgAdmin III. Postgres selv kommer dog med et kraftfuldt kommandolinjeværktøj kaldet psql hvilket er fantastisk til dem, der er fortrolige med terminalen eller ønsker at scripte administrationsopgaver. En af de mest almindelige opgaver, en databaseadministrator udfører, er simpelthen at blive fortrolig med miljøet. Dette involverer at stille spørgsmål som "Hvilke databaser findes på denne server?" eller "Hvilke tabeller er gemt i en bestemt database på denne server?". I denne vejledning lærer vi, hvordan du besvarer disse nøglespørgsmål fra kommandolinjen ved hjælp af psql .

Metakommandoer

Ud over at kunne sende rå SQL-forespørgsler til serveren via psql du kan også drage fordel af psql meta-kommandoer for at få information fra serveren. Meta-kommandoer er kommandoer, der evalueres af psql og ofte oversat til SQL, der udstedes mod systemtabellerne på serveren, hvilket sparer administratorer for tid, når de udfører rutineopgaver. De er angivet med en omvendt skråstreg og derefter efterfulgt af kommandoen og dens argumenter. Vi vil se nogle eksempler på dette nedenfor.

listedatabaser

En enkelt Postgres-serverproces kan administrere flere databaser på samme tid. Hver database er gemt som et separat sæt filer i sin egen mappe i serverens datamappe. For at se alle de definerede databaser på serveren kan du bruge \list meta-kommando eller dens genvej \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)

Skift database

De fleste Postgres-servere har tre databaser defineret som standard:template0 , template1 og postgres . template0 og template1 er skeletdatabaser, der er eller kan bruges af CREATE DATABASE kommando. postgres er standarddatabasen, du vil oprette forbindelse til, før du har oprettet andre databaser. Når du har oprettet en anden database, vil du gerne skifte til den for at oprette tabeller og indsætte data. Når du arbejder med servere, der administrerer flere databaser, vil du ofte opleve behovet for at hoppe mellem databaser ofte. Dette kan gøres med \connect meta-kommando eller dens genvej \c .

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

Fortegnelsestabeller

Når du har oprettet forbindelse til en database, vil du gerne undersøge, hvilke tabeller der er blevet oprettet der. Dette kan gøres med \dt meta-kommando. Men hvis der ikke er nogen tabeller, får du intet output.

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

Efter oprettelse af en tabel vil den blive returneret i en tabelliste over oprettede tabeller.

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. SQL mindre end eller lig med (=) operatør for begyndere

  2. Hvor effektiv er din ProxySQL-node?

  3. mySQL DataSource på Visual Studio 2012

  4. Hvordan YEAR() virker i MariaDB