如何使用 SQL 语句查询 MySQL 数据库存储结构
要查询 MySQL 数据库存储结构,可以使用以下 SQL 语句:
<code class="sql">SHOW CREATE TABLE table_name;</code>
其中,
table_name是要查询存储结构的表的名称。
该语句将返回一个包含以下信息的字符串:
Table structure:表的列定义,包括列名、数据类型、是否允许空值以及其他约束。 Table options:有关表的一般属性的信息,例如存储引擎、字符集和排序规则。详细说明:
列定义:每个列的信息都以以下格式显示:<code>column_name data_type [NOT NULL | NULL] [DEFAULT default_value] [constraints]</code>
其中:
<code>* `column_name` 是列的名称。 * `data_type` 是列的数据类型(例如,`INT`、`VARCHAR`)。 * `NOT NULL` 或 `NULL` 表示该列是否允许空值。 * `DEFAULT default_value` 是列的默认值(如果指定)。 * `constraints` 是任何适用的列约束(例如,`PRIMARY KEY`、`UNIQUE`)。 </code>表选项:表选项以以下格式显示:
<code>[TABLE option_name = option_value, ...]</code>
其中:
<code>* `option_name` 是表选项的名称(例如,`ENGINE`、`CHARSET`)。 * `option_value` 是选项的值。 </code>
示例:
查询名为
users的表的存储结构:
<code class="sql">SHOW CREATE TABLE users;</code>
该语句可能返回类似以下内容的字符串:
<code class="sql">CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT, `username` VARCHAR(64) NOT NULL UNIQUE, `password` VARCHAR(64) NOT NULL, `email` VARCHAR(128) NOT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8</code>
