Jak wyświetlić schemat tabeli w bazie danych MySQL?

Odpowiedzi:

534
describe [db_name.]table_name;

dla sformatowanego wyjścia lub

show create table [db_name.]table_name;

dla instrukcji SQL, której można użyć do utworzenia tabeli.

Omry Yadan
źródło
2
To nie jest odpowiedź. OP szuka części „nazwa_bazy”, a to rozwiązanie zakłada, że ​​już o tym wiesz
Antonio Ortells,
40
OP zaakceptował tę odpowiedź 7 lat temu. Myślę, że był zadowolony z tej odpowiedzi.
Omry Yadan,
Baza danych nie jest schematem.
Koder
1
lub desc [db_name.]table_name;w skrócie.
yakout
1
W obronie Antionio niektóre systemy odnoszą się do swoich zbiorów powiązanych tabel jako schematów, a nie baz danych. Nie jestem pewien, które lub dlaczego.
dlamblin,
108
SHOW CREATE TABLE yourTable;

lub

SHOW COLUMNS FROM yourTable;
Konstabl
źródło
18

Możesz także użyć skrótu do opisu jak descdo opisu tabeli.

desc [nazwa_bazy.] nazwa_tabeli;

lub

użyj nazwy_db;
desc nazwa_tabeli;

Możesz także użyć explaindo opisu tabeli.

wyjaśnić [nazwa_bazy.] nazwa_tabeli;

Zobacz oficjalny dokument

Daje wynik, taki jak:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(10)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| age      | int(10)     | YES  |     | NULL    |       |
| sex      | varchar(10) | YES  |     | NULL    |       |
| sal      | int(10)     | YES  |     | NULL    |       |
| location | varchar(20) | YES  |     | Pune    |       |
+----------+-------------+------+-----+---------+-------+
Somnath Muluk
źródło
12

Być może pytanie musi być nieco bardziej precyzyjne w tym, co jest wymagane, ponieważ można je odczytać na dwa różne sposoby. to znaczy

  1. Jak uzyskać strukturę / definicję tabeli w mysql?
  2. Jak uzyskać nazwę schematu / bazy danych, w której znajduje się ta tabela?

Biorąc pod uwagę przyjętą odpowiedź, PO wyraźnie zamierzał ją interpretować w pierwszy sposób. Dla każdego, kto czyta pytanie w drugą stronę, spróbuj

SELECT `table_schema` 
FROM `information_schema`.`tables` 
WHERE `table_name` = 'whatever';
Paul Campbell
źródło
Twoja odpowiedź na drugi punkt pomogła mi w tym, czego szukam. Mój edytor zwrócił błąd z informacją „Nieprawidłowy obiekt” na tabeli, której próbowałem użyć, i nie mam pojęcia o DB lub schemacie, pod którym tabela się mieści, ponieważ tabela jest już utworzona przez kogoś innego, dopóki nie otrzymam tych informacji
mannedear
5
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
Chłostać
źródło