MySQL教程

MySQL的查询语句

Preview
  • MySQL表的约束和触发器
  • MySQL 表的约束
  • 主键约束
  • 唯一约束
  • 外键约束
  • 检查约束
  • 默认约束
  • MySQL 触发器

MySQL表的约束和触发器

MySQL 表的约束

MySQL 表的约束是一种限制条件,用于保证表中数据的一致性和完整性。MySQL 支持多种类型的约束,包括主键约束、唯一约束、外键约束、检查约束和默认约束。

主键约束

主键约束用于唯一标识表中的每一条记录。主键必须唯一且不能为空,通常是一个自增长的整数类型。

创建主键约束的语法如下:

CREATE TABLE table_name (
    column1 datatype PRIMARY KEY,
    column2 datatype,
    column3 datatype,
    ...
);

唯一约束

唯一约束用于保证表中每个记录的某一个或多个列的值是唯一的,允许为空。

创建唯一约束的语法如下:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
    ...,
    UNIQUE (column1, column2, ...),
    ...
);

外键约束

外键约束用于保证表与表之间的关系,确保表之间的数据一致性。外键约束用于连接两个表的主键和外键。

创建外键约束的语法如下:

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT,
    ...
);

CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    ...
    ...
    FOREIGN KEY (customer_id) REFERENCES orders(order_id)
);

检查约束

检查约束用于在插入或更新数据时检查数据的有效性。可以检查数据的类型、值范围等。

创建检查约束的语法如下:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype CHECK (column3 > 0),
    ...
);

默认约束

默认约束用于为表中某一列提供默认值。如果插入数据时该列没有输入任何值,则会自动赋值为默认值。

创建默认约束的语法如下:

CREATE TABLE table_name (
    column1 datatype DEFAULT default_value,
    column2 datatype,
    column3 datatype,
    ...
);

MySQL 触发器

MySQL 触发器是一种与表相关的特殊类型的存储过程,它在满足一定条件时自动执行,并对表进行修改。

MySQL 触发器有两种,分别是 BEFOREAFTER 触发器。BEFORE 触发器在修改表之前执行,AFTER 触发器在修改表之后执行。

创建触发器的语法如下:

CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_name
FOR EACH ROW 
BEGIN
    -- 触发器的操作
END;

其中,trigger_name 为触发器名称,INSERTUPDATEDELETE 为触发器执行的操作,table_name 为要触发的表名,FOR EACH ROW 表示对每一行数据进行操作。

在触发器中可以使用 NEWOLD 关键字来引用新旧数据,例如:

CREATE TRIGGER ins_employee
BEFORE INSERT ON employees
FOR EACH ROW 
BEGIN
    SET NEW.salary = NEW.salary * 1.1;
END;

以上是 MySQL 表的约束和触发器的详细解释,希望对您有所帮助。