📜  sql 显示自定义约束 - SQL (1)

📅  最后修改于: 2023-12-03 15:35:06.198000             🧑  作者: Mango

SQL 显示自定义约束

在 SQL 中,约束是用于强制表的某些规则的对象。它们可以用来保证数据的完整性和一致性。SQL 支持以下几种约束:

  1. NOT NULL 约束:确保某个列中的值不为空。
  2. UNIQUE 约束:确保某个列中的值是唯一的。
  3. PRIMARY KEY 约束:定义表中的主键。
  4. FOREIGN KEY 约束:确保一个表中的数据匹配另一个表中的数据。
  5. CHECK 约束:确保某个列中的值满足一定条件。

在 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 中方便地显示自定义约束。