Как получить структуру таблицы и ее данные с помощью запроса MySQL?

Я делаю проект, где у меня нет доступа к phpmyadmin. Я хочу видеть структуру и данные таблицы. Как я могу сделать это, используя запрос MySQL? я использовал DESCRIBE tablename но это только отображало список столбцов. Есть идеи? Я могу использовать другой запрос SELECT * FROM tablename но я просто хочу знать, где есть какая-либо команда, которая будет служить цели? Мне также нужно знать тип из моей таблицы столбцов.

0

Решение

Чтобы получить список столбцов для таблицы, используйте оператор SQL DESCRIBE. DESCRIBE предоставляет информацию о столбцах в таблице: Синтаксис следующий:

DESCRIBE TableName

ех. DESCRIBE products; дам:

+-------------+---------------------+------+-----+---------+----------------+
| Field       | Type                | Null | Key | Default | Extra          |
+-------------+---------------------+------+-----+---------+----------------+
| product_id  | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| url         | varchar(100)        | NO   | UNI | NULL    |                |
| name        | varchar(50)         | NO   |     | NULL    |                |
| description | varchar(255)        | NO   |     | NULL    |                |
| price       | decimal(10,2)       | NO   |     | NULL    |                |
| visible     | tinyint(1) unsigned | NO   | MUL | 1       |                |
+-------------+---------------------+------+-----+---------+----------------+

Чтобы получить список таблиц в базе данных, используйте этот оператор SQL:

SHOW TABLES

Извлечение определения таблицы из существующей таблицы

SHOW CREATE TABLE TableName;

Также проверьте эту ссылку для большего количества команд, связанных с таблицами MySQL: Табличные команды MySQL

1

Другие решения

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS;

должен начать вас. См. Главу 20 в документации MySQL.

0

mysqli_fetch_fields может быть использован для получения метаданных для mysqli_result ответ.

$link = mysqli_connect("host");
$result = mysqli_query($link, "select * from foo");

$meta = mysqli_fetch_fields($result);
foreach ($meta as $column) {
echo "Name: {$column->name}\n";
echo "Table: {$column->table}\n";
echo "Max. Len: {$column->max_length}\n";
echo "Length: {$column->length}\n";
echo "charsetnr: {$column->charsetnr}\n";
echo "Flags: {$column->flags}\n";
echo "Type: {$column->type}\n";
}

$result->data_seek(0);
while ($row = $result->fetch_assoc()) {
foreach ($row as $name => $value) {
echo "{$name} = {$value}\n";
}
}

mysqli_free_result($result);

PDOStatement::getColumnMeta обеспечивает аналогичную функциональность для PDO запрос.

0

EXPLAIN table_name

Это покажет детали.

Надеюсь это поможет.

0
По вопросам рекламы [email protected]