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

Можно ли каким-то образом получить структуру базы данных MySQL или просто таблицу с простым запросом?

Или есть другой способ, как я могу это сделать?

Ответ 1

Я думаю, что то, что вам нужно, DESCRIBE

DESCRIBE table;

Вы также можете использовать SHOW TABLES

SHOW TABLES;

чтобы получить список таблиц в вашей базе данных.

Ответ 2

Чтобы получить всю структуру базы данных как набор CREATE TABLE, используйте mysqldump:

mysqldump database_name --compact --no-data

Для одиночных таблиц добавьте имя таблицы после имени db в mysqldump. Вы получаете те же результаты с SQL и SHOW CREATE TABLE:

SHOW CREATE TABLE table;

Или DESCRIBE, если вы предпочитаете список столбцов:

DESCRIBE table;

Ответ 3

Посмотрите на таблицу INFORMATION_SCHEMA. TABLES. Он содержит метаданные обо всех ваших таблицах.

Пример:

SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'

Преимущество этого по сравнению с другими методами заключается в том, что вы можете легко использовать такие запросы, как выше, как подзапросы в своих других запросах.

Ответ 4

используя это:

SHOW CREATE TABLE `users`;

предоставит вам DDL для этой таблицы

DESCRIBE `users`

отобразит столбцы в этой таблице

Ответ 5

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products'; 

где Table_schema - имя базы данных

Ответ 6

Чтобы запрос SHOW CREATE TABLE. Вы также можете запросить SCHEMA TABLES.

SHOW CREATE TABLE YourTableName;

Ответ 7

Вариант первого ответа, который я нашел полезным

Откройте свою командную строку и введите (вам не нужно регистрироваться на сервере mysql)

mysqldump -hlocalhost -u<root> -p<password>  <dbname>  --compact --no-data > </path_to_mydump/>mysql.dmp

Ответ 8

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA. COLUMNS WHERE TABLE_SCHEMA= 'bodb'   И TABLE_NAME= 'abc';

работает для получения всех имен столбцов

Ответ 9

В настоящее время люди используют DESC вместо DESCRIPTION. Например:- DESC users;

Ответ 10

В следующем примере

playground - это имя базы данных, а equipment - имя таблицы.

Другой способ - использовать SHOW-COLUMNS: 5.5 (доступно также для 5.5>).

$ mysql -uroot -p<password> -h<host> -P<port> -e \
    "SHOW COLUMNS FROM playground.equipment"

И вывод:

mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| type  | varchar(50) | YES  |     | NULL    |                |
| quant | int(11)     | YES  |     | NULL    |                |
| color | varchar(25) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

Можно также использовать mysqlshow-client (также доступен для 5.5>), например:

$ mysqlshow -uroot -p<password> -h<host> -P<port> \
    playground equipment

И вывод:

mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground  Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type        | Collation         | Null | Key | Default | Extra          | Privileges                      | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id    | int(11)     |                   | NO   | PRI |         | auto_increment | select,insert,update,references |         |
| type  | varchar(50) | latin1_swedish_ci | YES  |     |         |                | select,insert,update,references |         |
| quant | int(11)     |                   | YES  |     |         |                | select,insert,update,references |         |
| color | varchar(25) | latin1_swedish_ci | YES  |     |         |                | select,insert,update,references |         |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+