Frage Zeige Tabellen in PostgreSQL


Was ist gleichbedeutend mit show tables (von MySQL) in PostgreSQL?


1188
2018-04-20 19:07


Ursprung


Antworten:


Von dem psql Befehlszeilenschnittstelle zeigt alle Tabellen im aktuellen Schema an:

\dt

Programmatisch (oder von der psql Schnittstelle natürlich auch):

SELECT * FROM pg_catalog.pg_tables;

Die Systemtabellen befinden sich in der Datenbank pg_catalog.


1739
2018-04-20 19:12



Melden Sie sich als Superuser an:

sudo -u postgres psql

Sie können alle Datenbanken und Benutzer auflisten \l Befehl, (andere Befehle auflisten \?).

Wenn Sie nun andere Datenbanken sehen möchten, können Sie den Benutzer / die Datenbank ändern \c Befehl wie \c template1, \c postgres postgres und benutzen \d, \dt oder \dS um Tabellen / Ansichten / etc zu sehen.


130
2018-02-16 10:13



(Zur Vollständigkeit)

Sie könnten auch den (SQL-Standard) abfragen Informationsschema:

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');

93
2018-04-21 09:55



  1. Erstmalige Anmeldung als Postgres-Benutzer:

    sudo su - postgres

  2. verbinde dich mit der benötigten db: psql -d databaseName

  3. \dt würde die Liste aller Tabellen in der Datenbank zurückgeben, mit der Sie verbunden sind.


38
2017-11-22 13:33



Das Ausführen von psql mit dem Flag -E wird die Abfrage widerspiegeln, die intern zum Implementieren verwendet wird \ dt und ähnlich:

sudo -u postgres psql -E

postgres=# \dt       
********* QUERY **********
SELECT n.nspname as "Schema",
c.relname as "Name", 
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
    AND n.nspname <> 'pg_catalog'
    AND n.nspname <> 'information_schema'
    AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;        
**************************

30
2017-07-02 00:48



Wenn Sie nur die Liste der von Ihnen erstellten Tabellen anzeigen möchten, können Sie nur Folgendes sagen:

\dt

Aber wir haben auch PATTERN wodurch Sie die anzuzeigenden Tabellen anpassen können. Um alles inklusive zu zeigen pg_catalog Schema, Sie können hinzufügen *.

\dt *

Wenn Sie tun: \?

\ dt [S +] [PATTERN] Listentabellen


22
2017-11-02 06:45



Zuerst verbinden Sie sich mit dem folgenden Befehl mit der Datenbank

\c database_name

Und Sie werden diese Nachricht sehen Sie sind jetzt mit der Datenbank datenbankname verbunden und sie führen den folgenden Befehl aus

SELECT * FROM table_name;

In Datenbank_Name und Tabellenname nur mit Ihrem Datenbank- und Tabellennamen aktualisieren


16
2018-06-27 15:45