Show tabele în PostgreSQL

Ce's, echivalentul a mese (de la MySQL) în PostgreSQL?

Comentarii la întrebare (1)
Soluția

Din psql` interfață linie de comandă,

În primul rând, pentru a alege baza de date

\c database_name

Apoi, acesta afișează toate tabelele în actuala schemă:

\dt

Programatic (sau din psql` interfață de asemenea, desigur):

SELECT * FROM pg_catalog.pg_tables;

Tabelele de sistem trăiesc în `pg_catalog de date.

Comentarii (12)

Login ca root:

sudo -u postgres psql

Puteți lista toate bazele de date și utilizatorii de \l comanda (lista alte comenzi prin \?).

Acum, dacă doriți să vedeți alte baze de date puteți schimba utilizatorul/date de către \c comandă \c temă1, \c postgres postgres și de a folosi \d, \dt sau \dS pentru a vedea tabele/vederi/etc.

Comentarii (1)

(Pentru completare)

Ai putea, de asemenea, interogare (SQL-standard) informații schemă:

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

Puteți utiliza PostgreSQL's terminal interactiv Psql pentru a afișa tabele în PostgreSQL.

1. Începe Psql

De obicei, aveți posibilitatea să executați următoarea comandă pentru a intra în psql:

psql DBNAME USERNAME

De exemplu, psql temă1 postgres

Situația s-ar putea avea este: să presupunem că vă autentificați ca root, și tu nu't amintesc numele bazei de date. Puteți să introduceți mai întâi în Psql de funcționare:

sudo -u postgres psql

În unele sisteme, sudo comanda nu este disponibilă, puteți executa comanda de mai jos:

psql -U postgres
psql --username=postgres

2. Show tabele

Acum în Psql ai putea rula comenzi, cum ar fi:

  1. \? lista cu toate comenzile
  2. \l lista de baze de date
  3. \conninfo afișează informații despre conexiunea curentă
  4. \c [DBNAME] se conecteze la baze de date noi, de exemplu, \c temă1
  5. \dt lista de tabele din schema publice
  6. \dt <schema-numele>.* listă tabele de anumite schema, de exemplu, \dt publice.*
  7. \dt *.* lista de tabele din toate schemele
  8. Apoi, puteți rula SQL, de exemplu, SELECT * FROM my_table;(Notă: o declarație trebuie să fie încheiată cu punct și virgulă ;)
  9. \q quit psql
Comentarii (0)
  1. Prima conectare ca postgres utilizator:

sudo su - postgres

  1. conectați-vă la necesar db: psql -d databaseName

  2. \dt ar reveni la lista tuturor tabel în baza de date te're conectat.

Comentarii (0)

Rularea psql cu -E steagul va echo interogare utilizate pe plan intern să pună în aplicare \dt și similare:

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;        
**************************
Comentarii (1)

Login ca root, astfel încât să puteți verifica toate bazele de date și schemele lor:-

sudo su - postgres

Atunci putem ajunge la postgresql shell folosind următoarea comandă:-

psql

Puteți verifica acum toate bazele de date listă utilizând următoarea comandă:-

\l

Dacă doriți să verificați dimensiunile de baze de date, precum și utilizarea:-

\l+

Apăsați " q " pentru a merge înapoi.

Odată ce ați găsit dumneavoastră de baze de date acum vă puteți conecta la baza de date folosind următoarea comandă:-

\c database_name

Odată conectat, puteți verifica tabelele bazei de date sau schema de către:-

\d

Acum, pentru a reveni la shell utilizare:-

q

Acum, pentru a vedea detalii dintr-o anumită masă de utilizare:-

\d table_name

Pentru a merge înapoi la postgresql_shell apăsați \q.

Și să se întoarcă înapoi la terminal apăsați "exit".

Comentarii (0)

Dacă doriți doar pentru a vedea lista de tabele'am creat-o, vă pot spune doar:

\dt

Dar avem, de asemenea, "MODEL", care vă va ajuta să personaliza tabele care să arate. Pentru a afișa toate inclusiv pg_catalog Schemă, puteți adăuga *.

\dt *

Dacă faci: \?

\dt[S+] [MODEL] lista de tabele

Comentarii (0)

utilizarea vedea doar o mese

=> \dt

dacă vrei să vezi schema mese

=>\dt+

dacă doriți să vedeți specifice schema mese

=>\dt schema_name.* 
Comentarii (1)

Conectați mai întâi cu baza de Date folosind următoarea comandă

\c database_name

Și veți vedea acest mesaj - ești conectat la baza de date database_name. Și ei executați următoarea comandă

SELECT * FROM table_name;

În database_name și table_name actualiza doar cu baza dumneavoastră de date și nume de tabel

Comentarii (1)

Dacă utilizați pgAdmin4 în PostgreSQL, puteți folosi acest lucru pentru a arăta tabelele din baza de date:

select * from information_schema.tables where table_schema='public';
Comentarii (0)

Rețineți că `\dt singur va lista tabele în publice schema bazei de date te're folosind. Îmi place să-mi țin în tabele separate, scheme, astfel încât răspunsul acceptat n't de lucru pentru mine.

Pentru a lista toate mesele într-o anumită schemă, am nevoie pentru a:

  1. a se Conecta la baza de date dorit:
psql mydb
  1. Specifica numele schemei vreau să văd mesele de după \dt comanda, astfel:
\dt myschema.*

Acest lucru arată-mi rezultatele I'm a interesat în:

               List of relations
 Schema   |       Name      | Type  |  Owner   
----------+-----------------+-------+----------
 myschema | users           | table | postgres
 myschema | activity        | table | postgres
 myschema | roles           | table | postgres
Comentarii (0)
select 
  * 
from 
  pg_catalog.pg_tables 
where 
  schemaname != 'information_schema' 
  and schemaname != 'pg_catalog';
Comentarii (0)

\dt (nu * necesar) - va lista tuturor tabelelor pentru o bază de date existentă sunteți deja conectat la. De asemenea, util să rețineți:

\d [nume_tabel] -- va afișa toate coloanele dintr-un anumit tabel, inclusiv tipul de informații, referințe și constrângeri cheie.

Comentarii (0)

Puteți lista tabelelor din baza de date curentă cu \dt.

Fwiw, \d tablename va arăta detalii despre tabelul de dat, ceva de genul `arată coloane de nume tabelă în MySQL, dar cu un pic mai multe informații.

Comentarii (0)

Folosind psql : \dt

Sau:

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
Comentarii (0)

Mai întâi de toate trebuie să se conecteze cu baza dumneavoastră de date ca

baza mea de date este ubuntu

utilizați această comandă pentru a conecta

 \c ubuntu

Acest mesaj va arăta

"ești conectat la baza de date "ubuntu" ca utilizator "postgres"."

Acum

Rula această comandă pentru a afișa toate tabelele din ea

\d+
Comentarii (0)

\dt va lista tabele, și "\pset pager off" arată-le în aceeași fereastră, fără trecerea la unul separat. Iubesc această caracteristică la moarte în dbshell.

Comentarii (0)

Pentru a vizualiza externe tabele în psql, run \dE

Comentarii (0)

ca o scurtă 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'
Comentarii (0)