如何通过mysql查询获取表结构及其数据


How to get table structure and its data through mysql query?

我正在做一个无法访问phpmyadmin的项目。我想看看表格的结构和数据。如何使用mysql查询做到这一点?我使用了DESCRIBE tablename,但它只显示列的列表。有什么想法吗?我可以使用另一个查询SELECT * FROM tablename,但我只想知道哪里有可以达到目的的命令?我还需要知道我的表列的类型

若要获取表的列列表,请使用DESCRIBE SQL语句。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表命令

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::getColumnMetaPDO查询提供了类似的功能。

EXPLAIN table_name

这将显示详细信息。

希望这能有所帮助。

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

应该让你开始。请参阅MySQL文档中的第20章。