Pokaż tabele w PostgreSQL

Jaki jest odpowiednik show tables (z MySQL) w PostgreSQL?

 1255
Author: Caltor, 2009-04-20

18 answers

Z interfejsu linii poleceń psql wyświetla wszystkie tabele w bieżącym schemacie:

\dt

Programowo (lub oczywiście z interfejsu psql):

SELECT * FROM pg_catalog.pg_tables;

Tabele systemowe żyją w bazie danych pg_catalog.

 1824
Author: Mihai Limbășan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-18 02:43:24

Zaloguj się jako superuser:

sudo -u postgres psql

Możesz wyświetlić listę wszystkich baz danych i użytkowników za pomocą polecenia \l, (Lista innych poleceń za pomocą \?).

Teraz, jeśli chcesz zobaczyć inne bazy danych, możesz zmienić użytkownika / bazę danych za pomocą \c polecenia, jak \c template1, \c postgres postgres i użycie \d, \dt lub \dS, aby zobaczyć tabele / widoki / itp.

 135
Author: JLarky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-16 10:13:20

(dla kompletności)

Możesz również odpytywać (SQL-standard) schemat informacyjny:

SELECT
    table_schema || '.' || table_name
FROM
    information_schema.tables
WHERE
    table_type = 'BASE TABLE'
AND
    table_schema NOT IN ('pg_catalog', 'information_schema');
 94
Author: Milen A. Radev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-21 09:55:03
  1. Pierwsze logowanie jako użytkownik postgres:

    sudo su - postgres

  2. Podłącz do wymaganego db: psql -d databaseName

  3. \dt zwróci listę wszystkich tabel w bazie danych, z którą jesteś połączony.

 41
Author: nish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-26 06:45:59

Uruchomienie psql z flagą-E spowoduje echo zapytania używanego wewnętrznie do implementacji \dt i podobne:

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
Author: bsb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-02 00:48:08

Jeśli chcesz zobaczyć tylko listę utworzonych tabel, możesz tylko powiedzieć:

\dt

Ale mamy również PATTERN, które pomogą Ci dostosować tabele do wyświetlania. Aby wyświetlić wszystkie schematy zawierające pg_catalog, możesz dodać *.

\dt *

If you do: \?

\dt [S+] [PATTERN] tabele list

 22
Author: Banned_User,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-07 04:52:32

Możesz użyć interaktywnego terminala Psql w PostgreSQL do wyświetlania tabel w PostgreSQL.

1. Start Psql

Zazwyczaj można uruchomić następujące polecenie, aby wejść do psql:

psql DBNAME USERNAME

Na przykład psql template1 postgres

Jedna sytuacja, którą możesz mieć, to: Załóżmy, że logujesz się jako root i nie pamiętasz nazwy bazy danych. Możesz po prostu wejść najpierw do Psql, uruchamiając:

sudo -u postgres psql

W niektórych systemach polecenie sudo nie jest dostępne, zamiast tego można uruchomić albo polecenie poniżej:

psql -U postgres
psql --username=postgres

2. Pokaż tabele

Teraz w Psql możesz uruchamiać polecenia takie jak:

  1. \? Lista wszystkich poleceń
  2. \l lista baz danych
  3. \conninfo wyświetlanie informacji o bieżącym połączeniu
  4. \c [DBNAME] połącz się z nową bazą danych, np. \c template1
  5. \dt Spis tabel
  6. \q Zakończ psql
 20
Author: Yuci,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-08 17:17:59

Najpierw połącz się z bazą danych za pomocą następującego polecenia

\c database_name

I zobaczysz ten Komunikat jesteś teraz podłączony do bazy danych database database_name i uruchom następujące polecenie

SELECT * FROM table_name;

W database_name i table_name wystarczy zaktualizować swoją bazę danych i nazwę tabeli

 16
Author: J4cK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-28 10:17:44

Użyj tylko patrz tabele

=> \dt

Jeśli chcesz zobaczyć tabele schematu

=>\dt+

Jeśli chcesz zobaczyć konkretne tabele schematów

=>\dt schema_name.* 
 12
Author: Aryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-02 06:15:32

Jeśli używasz pgAdmin4 w PostgreSQL, możesz użyć tego do wyświetlenia tabel w bazie danych:

select * from information_schema.tables where table_schema='public';
 11
Author: Reynante Daitol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-05 02:18:02

Zauważ, że tylko \dt wyświetli tabele w schemacie public używanej bazy danych. Lubię trzymać moje tabele w oddzielnych schematach, więc przyjęta odpowiedź nie działa dla mnie.

Aby wyświetlić wszystkie tabele w określonym schemacie , musiałem:

1) Połącz się z żądaną bazą danych:

psql mydb

2) Podaj nazwę schematu, dla którego chcę zobaczyć tabele po poleceniu \dt, tak:

\dt myschema.*

To pokazuje mi wyniki, które mnie interesują in:

               List of relations
 Schema   |       Name      | Type  |  Owner   
----------+-----------------+-------+----------
 myschema | users           | table | postgres
 myschema | activity        | table | postgres
 myschema | roles           | table | postgres
 9
Author: rotarydial,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-23 04:05:05

\dt (no * required) -- wyświetli wszystkie tabele dla istniejącej bazy danych, z którą jesteś już połączony. Warto również zwrócić uwagę:

\ d [table_name] -- wyświetli wszystkie kolumny dla danej tabeli łącznie z informacjami o typie, referencjami i ograniczeniami klucza.

 7
Author: user4642897,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-06 23:29:41

Możesz wyświetlić listę tabel w bieżącej bazie danych za pomocą \dt.

Fwiw, \d tablename pokaże szczegóły dotyczące podanej tabeli, coś jak {[2] } w MySQL, ale z nieco większą ilością informacji.

 5
Author: JohnK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-07 19:31:52
select * from pg_catalog.pg_tables
where schemaname != 'information_schema' and schemaname != 'pg_catalog';
 4
Author: Abdelhak Ohammou,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-25 17:41:14

Using psql : \dt

Lub:

SELECT c.relname AS Tables_in FROM pg_catalog.pg_class c
        LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
        AND c.relkind = 'r'
        AND relname NOT LIKE 'pg_%'
ORDER BY 1
 4
Author: MisterJoyson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-10 08:56:48

\dt wyświetli listę tabel, a "\pset pager off" wyświetli je w tym samym oknie, bez przełączania na osobne. Uwielbiam tę funkcję na śmierć w dbshell.

 1
Author: lauri108,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-17 01:03:15

Przede wszystkim musisz połączyć się z bazą danych jak

Moja baza danych to ubuntu

Użyj tego polecenia do połączenia

 \c ubuntu

Ta wiadomość pokaże

"Jesteś teraz połączony z bazą danych "ubuntu" jako użytkownik "postgres"."

Teraz

Uruchom to polecenie, aby wyświetlić wszystkie tabele w nim

\d+
 1
Author: Usman Yaqoob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-19 11:19:34

Najpierw możesz połączyć się z bazą danych postgres używając Postgre.aplikacja na Maca lub przy użyciu postico. Uruchom następujące polecenie:

psql -h localhost -p port_number -d database_name -U user_name -W

Następnie wprowadź hasło, powinno to dać dostęp do bazy danych

 -2
Author: Patcho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 14:03:44