Pokaż tabele w PostgreSQL
Jaki jest odpowiednik show tables
(z MySQL) w PostgreSQL?
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.
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.
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');
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
-
Pierwsze logowanie jako użytkownik postgres:
sudo su - postgres
Podłącz do wymaganego db:
psql -d databaseName
\dt
zwróci listę wszystkich tabel w bazie danych, z którą jesteś połączony.
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;
**************************
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
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:
-
\?
Lista wszystkich poleceń -
\l
lista baz danych -
\conninfo
wyświetlanie informacji o bieżącym połączeniu -
\c [DBNAME]
połącz się z nową bazą danych, np.\c template1
-
\dt
Spis tabel -
\q
Zakończ psql
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
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.*
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';
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
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.
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.
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';
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
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.
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+
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
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