Как мне показать схему таблицы в базе данных MySQL?

Ответы:

535
describe [db_name.]table_name;

для форматированного вывода, или

show create table [db_name.]table_name;

для оператора SQL, который можно использовать для создания таблицы.

Омри Ядан
источник
2
Это не ответ. Оператор ищет выяснения части «db_name», и это решение предполагает, что вы уже это знаете
Антонио Ортелс
40
ОП приняла этот ответ 7 лет назад. Я думаю, что он был счастлив с этим ответом.
Омри Ядан
База данных не является схемой.
Кодер
1
или desc [db_name.]table_name;для краткости.
вылет
1
В защиту Antionio некоторые системы называют свои коллекции связанных таблиц схемами, а не базами данных. Не уверен, что или почему.
Дламблин
108
SHOW CREATE TABLE yourTable;

или

SHOW COLUMNS FROM yourTable;
Бобби
источник
18

Вы также можете использовать сокращение для описания, как descдля описания таблицы.

desc [имя_базы_данных]

или

использовать db_name;
desc table_name;

Вы также можете использовать explainдля описания таблицы.

объяснить [имя_БД.] имя_таблицы;

Смотрите официальный документ

Выдаст вывод как:

+----------+-------------+------+-----+---------+-------+
| 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    |       |
+----------+-------------+------+-----+---------+-------+
Сомнат Мулук
источник
12

Возможно, вопрос должен быть немного более точным о том, что требуется, потому что его можно прочитать двумя разными способами. т.е.

  1. Как я могу получить структуру / определение для таблицы в MySQL?
  2. Как получить имя схемы / базы данных, в которой находится эта таблица?

Учитывая принятый ответ, ФП явно намеревался интерпретировать его первым способом. Для тех, кто читает вопрос по-другому, попробуйте

SELECT `table_schema` 
FROM `information_schema`.`tables` 
WHERE `table_name` = 'whatever';
Пол Кэмпбелл
источник
Ваш ответ по второму пункту помог мне в том, что я ищу. Мой редактор выдал ошибку «Недопустимый объект» в таблицу, которую я пытался использовать, и я не имею ни малейшего представления о БД или Схеме, в которую входит таблица, поскольку таблица уже создана кем-то другим, пока я не получил эту информацию
17
5
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
Lam
источник