📅  最后修改于: 2023-12-03 15:35:06.198000             🧑  作者: Mango
在 SQL 中,约束是用于强制表的某些规则的对象。它们可以用来保证数据的完整性和一致性。SQL 支持以下几种约束:
在 SQL 中,我们可以使用以下命令来显示表的约束:
SHOW CREATE TABLE table_name;
其中,table_name 是要显示约束的表的名称。
例如,要显示名为 customers 的表的约束,可以执行以下命令:
SHOW CREATE TABLE customers;
执行该命令后,将返回类似于以下内容的结果:
CREATE TABLE `customers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL UNIQUE,
`age` int(11) CHECK (age >= 18),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
以上代码片段中,可以看到 customers 表增加了三个约束,分别为 NOT NULL、UNIQUE 和 CHECK 约束。
此外,我们还可以使用以下命令来查看表中的所有约束:
SHOW INDEX FROM table_name;
其中,table_name 是要查看约束的表的名称。
例如,要显示 customers 表的所有约束,可以执行以下命令:
SHOW INDEX FROM customers;
执行该命令后,将返回类似于以下内容的结果:
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| customers | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | | |
| customers | 0 | email | 1 | email | A | 0 | NULL | NULL | | BTREE | | |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
以上代码片段中,可以看到 customers 表具有两个约束,分别为 PRIMARY KEY 和 UNIQUE 约束。
总之,使用以上命令即可在 SQL 中方便地显示自定义约束。