mysql怎么写列级约束
时间 : 2023-03-08 17:01:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL的列级约束指的是在定义表中的某一列时,对该列的数据值进行限制或规定的约束条件。MySQL支持多种列级约束,以确保数据的完整性和一致性。以下是一些常用的列级约束及其应用方法。

1. NOT NULL约束

NOT NULL约束用于限制某一列的数据值不能为空值。在创建表结构时,可以在列名后面加上NOT NULL关键字。如果某行在该列中出现空值,则会触发一个错误:

CREATE TABLE employees (

employee_id INT PRIMARY KEY,

first_name VARCHAR(50) NOT NULL,

last_name VARCHAR(50) NOT NULL,

email VARCHAR(100) NOT NULL,

hire_date DATE NOT NULL,

job_title VARCHAR(100)

);

2. UNIQUE约束

UNIQUE约束用于确保某一列中的数据值都是唯一的。在创建表结构时,可以在列名后面加上UNIQUE关键字。这意味着,如果插入重复的数据行将会触发一个错误:

CREATE TABLE employees (

employee_id INT PRIMARY KEY,

first_name VARCHAR(50) NOT NULL,

last_name VARCHAR(50) NOT NULL,

email VARCHAR(100) UNIQUE,

hire_date DATE NOT NULL,

job_title VARCHAR(100)

);

3. PRIMARY KEY约束

PRIMARY KEY约束用于将某一列或多列标识为该表的主键。在创建表结构时,可以在列名后面加上PRIMARY KEY关键字。主键不允许重复,并且不能包含空值:

CREATE TABLE employees (

employee_id INT PRIMARY KEY,

first_name VARCHAR(50) NOT NULL,

last_name VARCHAR(50) NOT NULL,

email VARCHAR(100) UNIQUE,

hire_date DATE NOT NULL,

job_title VARCHAR(100)

);

4. FOREIGN KEY约束

FOREIGN KEY约束用于在两个表之间创建链接。它需要在一个表中定义约束并引用另一个表中的列。这通常用于确保两个表之间的一致性和完整性。在创建表结构时,可以在列名后面加上FOREIGN KEY关键字:

CREATE TABLE orders (

order_id INT PRIMARY KEY,

customer_id INT,

order_date DATE NOT NULL,

total_price DECIMAL(10,2) NOT NULL,

FOREIGN KEY (customer_id) REFERENCES customers(customer_id)

);

在此示例中,orders表的customer_id列与customers表中的customer_id列相匹配。这样,尝试将orders表的customer_id列插入不存在于customers表中的值会触发一个错误。

5. CHECK约束

CHECK约束用于确保某一列中的数据值符合指定的条件。在创建表结构时,可以在列名后面加上CHECK约束的规则:

CREATE TABLE employees (

employee_id INT PRIMARY KEY,

first_name VARCHAR(50) NOT NULL,

last_name VARCHAR(50) NOT NULL,

email VARCHAR(100) UNIQUE,

hire_date DATE NOT NULL,

job_title VARCHAR(100),

salary DECIMAL(10,2) CHECK(salary > 0)

);

在此示例中,salary列必须大于0,否则抛出一个错误。

总之,以上是MySQL中的一些常用的列级约束及其应用方法。通过这些约束,可以有效地确保数据的完整性和一致性,避免数据不正确或不完整的风险。