PostgreSQL: wyświetlanie tabel w PostgreSQL
Jaki jest odpowiednik show tables
(z MySQL) w PostgreSQL?
24 answers
Z interfejsu linii poleceń psql
,
Najpierw wybierz swoją bazę danych
\c database_name
To pokazuje 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
2019-07-31 05:35:07
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
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 schematu publicznego -
\dt <schema-name>.*
Spis tabel niektórych schematów, np.\dt public.*
-
\dt *.*
Spis tabel wszystkich Schematy - następnie można uruchomić polecenia SQL, np.
SELECT * FROM my_table;
(Uwaga: polecenie musi być zakończone średnikiem;
) -
\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
2019-04-30 21:43:44
(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
Zaloguj się jako superużytkownik, aby sprawdzić wszystkie bazy danych i ich schematy:-
sudo su - postgres
Następnie możemy dostać się do powłoki postgresql używając następującego polecenia:-
psql
Możesz teraz sprawdzić listę wszystkich baz danych za pomocą następującego polecenia:-
\l
Jeśli chcesz sprawdzić rozmiary baz danych, użyj: -
\l+
Naciśnij q
, aby wrócić.
Gdy już znajdziesz swoją bazę danych, możesz połączyć się z nią za pomocą następujące polecenie: -
\c database_name
Po podłączeniu można sprawdzić tabele bazy danych lub schemat przez:-
\d
Teraz aby powrócić do powłoki użyj:-
q
Teraz, aby dokładniej zobaczyć szczegóły pewnego użycia tabeli:-
\d table_name
Aby wrócić do postgresql_shell naciśnij \q
.
I aby powrócić do terminala Naciśnij exit
.
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
2019-03-02 11:08:14
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
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
Najpierw połącz się z bazą danych za pomocą następującego polecenia
\c database_name
I zobaczysz tę wiadomość - You are now connected to database database_name
. I uruchamiają 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
2019-01-26 17:05:03
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
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
2019-03-08 02:36:16
\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
Najprostszym sposobem na wyświetlenie wszystkich tabel w wierszu poleceń jest, jak na mój gust:
psql -a -U <user> -p <port> -h <server> -c "\dt"
Dla danej bazy danych wystarczy dodać nazwę bazy danych:
psql -a -U <user> -p <port> -h <server> -c "\dt" <database_name>
Działa zarówno na Linuksie, jak i Windows.
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
2019-11-15 21:54:18
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
Jako szybki oneliner
# just list all the postgres tables sorted in the terminal
db='my_db_name'
clear;psql -d $db -t -c '\dt'|cut -c 11-|perl -ne 's/^([a-z_0-9]*)( )(.*)/$1/; print'
Lub jeśli wolisz znacznie jaśniejsze wyjście json multi-liner:
IFS='' read -r -d '' sql_code <<"EOF_CODE"
select array_to_json(array_agg(row_to_json(t))) from (
SELECT table_catalog,table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name ) t
EOF_CODE
psql -d postgres -t -q -c "$sql_code"|jq
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
2020-01-09 16:21:16
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
\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
To zapytanie SQL działa z większością wersji PostgreSQL i dość proste .
select table_name 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
2020-08-27 08:58:11
Aby wyświetlić tabele obce w psql, Uruchom \dE
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
2019-02-12 20:20:57
-
W interfejsie wiersza poleceń PostgreSQL po zalogowaniu wpisz następujące polecenie, aby połączyć się z żądaną bazą danych.
\c [database_name]
Wtedy zobaczysz tę wiadomość You are now connected to database "[database_name]"
-
Wpisz następujące polecenie, aby wyświetlić listę wszystkich tabel.
\dt
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
2020-09-03 23:22:04
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