sql >> Database >  >> RDS >> PostgreSQL

Databases en tabellen weergeven in PostgreSQL met psql

Als het gaat om het beheer van Postgres-databases, is er een grote verscheidenheid aan tools van derden beschikbaar, zoals SQL Workbench/J of pgAdmin III. Postgres zelf wordt echter geleverd met een krachtige opdrachtregeltool genaamd psql wat geweldig is voor mensen die bekend zijn met de terminal of die op zoek zijn naar scriptbeheertaken. Een van de meest voorkomende taken die een databasebeheerder uitvoert, is simpelweg vertrouwd raken met de omgeving. Dit omvat het stellen van vragen als "Welke databases bevinden zich op deze server?" of "Welke tabellen worden opgeslagen in een bepaalde database op deze server?". In deze zelfstudie leren we hoe we deze belangrijke vragen vanaf de opdrachtregel kunnen beantwoorden met behulp van psql .

Meta-Commands

Naast de mogelijkheid om onbewerkte SQL-query's naar de server te verzenden via psql u kunt ook profiteren van de psql meta-commando's om informatie van de server te verkrijgen. Meta-commando's zijn commando's die worden geëvalueerd door psql en vaak vertaald in SQL die wordt uitgegeven tegen de systeemtabellen op de server, waardoor beheerders tijd besparen bij het uitvoeren van routinetaken. Ze worden aangegeven met een backslash en vervolgens gevolgd door het commando en de bijbehorende argumenten. Hieronder zullen we enkele voorbeelden hiervan zien.

Lijstdatabases

Een enkel Postgres-serverproces kan meerdere databases tegelijkertijd beheren. Elke database wordt opgeslagen als een afzonderlijke set bestanden in een eigen map binnen de gegevensmap van de server. Om alle gedefinieerde databases op de server te bekijken, kunt u de \list . gebruiken meta-commando of de sneltoets \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)

Van database wisselen

De meeste Postgres-servers hebben standaard drie databases gedefinieerd:template0 , template1 en postgres . template0 en template1 zijn skeletdatabases die worden of kunnen worden gebruikt door de CREATE DATABASE opdracht. postgres is de standaarddatabase waarmee u verbinding maakt voordat u andere databases hebt gemaakt. Als u eenmaal een andere database hebt gemaakt, wilt u ernaar overschakelen om tabellen te maken en gegevens in te voegen. Wanneer u werkt met servers die meerdere databases beheren, zult u vaak merken dat u vaak tussen databases moet springen. Dit kan met de \connect meta-commando of de sneltoets \c .

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

Lijsttabellen

Als je eenmaal verbinding hebt gemaakt met een database, wil je kijken welke tabellen daar zijn gemaakt. Dit kan met de \dt meta-opdracht. Als er echter geen tabellen zijn, krijgt u geen uitvoer.

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

Nadat een tabel is gemaakt, wordt deze geretourneerd in een tabel met gemaakte tabellen.

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. Hoe Oracle en Kafka . te integreren

  2. Een DB-koppeling maken tussen twee Oracle-instanties

  3. connect ECONNREFUSED - node js , sql

  4. Naam van SQL Server-variabele kolommen?