在 MySQL 中,表的约束用于确保数据的完整性和一致性。以下是常见的表约束类型:
1. 主键约束(Primary Key Constraint):
- 作用:唯一标识表中的每一行数据,确保表中每行数据的唯一性和非空性。
- 语法: CREATE TABLE table_name (column_name data_type PRIMARY KEY)
- 示例: CREATE TABLE students (id INT PRIMARY KEY)
2. 唯一约束(Unique Constraint):
- 作用:确保列中的值是唯一的,但允许为 NULL(最多一个 NULL 值)。
- 语法: CREATE TABLE table_name (column_name data_type UNIQUE)
- 示例: CREATE TABLE users (email VARCHAR(255) UNIQUE)
3. 外键约束(Foreign Key Constraint):
- 作用:建立两个表之间的关联,保证数据的参照完整性。
- 语法: CREATE TABLE child_table (column_name data_type, FOREIGN KEY (column_name) REFERENCES parent_table (parent_column_name))
- 示例: CREATE TABLE orders (order_id INT, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers (customer_id))
4. 非空约束(Not Null Constraint):
- 作用:确保列不接受 NULL 值。
- 语法: CREATE TABLE table_name (column_name data_type NOT NULL)
- 示例: CREATE TABLE products (name VARCHAR(255) NOT NULL)
5. 默认值约束(Default Constraint):
- 作用:为列指定默认值,如果插入数据时未提供该列的值,则使用默认值。
- 语法: CREATE TABLE table_name (column_name data_type DEFAULT default_value)
- 示例: CREATE TABLE employees (salary DECIMAL(10, 2) DEFAULT 0.00)
约束在数据库设计中非常重要,它们有助于维护数据的质量、准确性和一致性,减少数据错误和不一致的情况发生。