数据库-期末考前复习-第5章-数据库完整性

2024-01-03 08:04:19

1、能用MySQL语句在创建表的时候实现,实体完整性、引用完整性、用户自定义完整性。

MySQL提供了多种方式来实现实体完整性、引用完整性和用户自定义完整性。以下是使用MySQL语句在创建表的时候实现这些完整性的示例:

  1. 实体完整性: 实体完整性是指确保每个实体都有一个唯一的标识符。在MySQL中,可以使用AUTO_INCREMENT关键字来设置表字段的自动增长。例如,创建一个名为“users”的表,其中包含一个自增的“id”字段作为主键:

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50) );

  1. 引用完整性: 引用完整性是指确保外键关系的完整性,即确保引用的表中的值存在于被引用的表中。在MySQL中,可以使用FOREIGN KEY约束来实现引用完整性。例如,创建一个名为“orders”的表,其中包含一个外键“user_id”,引用了“users”表中的“id”字段:

CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, order_date DATE, FOREIGN KEY (user_id) REFERENCES users(id) );

  1. 用户自定义完整性: 用户自定义完整性是指根据特定的业务需求定义的约束条件。在MySQL中,可以使用触发器来实现用户自定义完整性。例如,创建一个名为“products”的表,其中包含一个“quantity”字段,要求该字段的值大于0:

CREATE TABLE products ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), quantity INT, price DECIMAL(10, 2), CHECK (quantity > 0) );


2、理解触发器的概念,能用MySQL语句创建简单触发器。

触发器是MySQL中的一种特殊对象,它可以在指定的表上自动执行一系列的操作,当满足特定的条件时触发。下面是创建简单触发器的MySQL语句示例:

CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt

其中,各个部分的含义如下:

  • trigger_name:触发器的名称,由用户自行指定。
  • trigger_time:触发器的时机,可以是(在操作之前触发)或(在操作之后触发)。BEFOREAFTER
  • trigger_event:触发器的事件,可以是(插入操作)、(更新操作)或(删除操作)。INSERTUPDATEDELETE
  • tbl_name:建立触发器的表名,即在哪张表上建立触发器。
  • trigger_stmt:触发器的程序体,可以是一条SQL语句,或者用和包含的多条语句,每条语句要以分号结尾。BEGINEND

下面是一个创建触发器的示例:

CREATE TRIGGER my_trigger AFTER INSERT ON my_table FOR EACH ROW BEGIN INSERT INTO log_table (message) VALUES ('A new row has been inserted'); END;

这个触发器在表上,当有新的行插入时,在表中插入一条日志记录。

my_tablelog_table

文章来源:https://blog.csdn.net/qq_64064356/article/details/135330649
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。