MySQL约束、触发器-数据库实验四

该文详细介绍了几个关于MySQL数据库管理的实验,包括创建数据库、表以及约束,如主键、唯一性、外键和检查约束。实验还涉及触发器的创建和使用,如在数据插入或删除时自动执行操作。此外,文章讨论了数据库安全性和备份恢复,并提出了相关思考问题,如唯一约束与主键的区别,以及外键约束的条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  •  Mysql数据库实验及练习题相关

        MySQL 数据库和表的管理-数据库实验一

        MySQL连接查询、索引、视图-数据库实验二、实验三

        MySQL约束、触发器-数据库实验四

        MYSQL存储过程和存储函数-数据库实验五

                MySQL批量随机生成name、TEL、idNumber

        MYSQL数据库的安全管理-数据库实验六

                MYSQL数据库安全性练习题

        MYSQL数据库的备份与恢复-数据库实验七

        MYSQL数据库设计题-窗帘店


一、实验目的

1. 掌握使用SQL语句CREATE TABLE定义约束的方法。

2. 掌握使用SQL语句ALTER TABLE增加或删除约束的方法。

3. 了解约束的各种类型。

4. 掌握使用SQL语句CREATE TRIGGER创建触发器的方法。

5. 掌握引发触发器的方法。

6. 掌握使用SQL语句DROP TRIGGER删除触发器的方法。

二、实验内容

1. 创建students数据库,在该数据库下创建表stu,并同时创建约束,表结构及约束要求如表1所示。

表1 stu的表结构

字段

类型

是否为空

约 束

学号

char(4)

主键

姓名

char(8)

性别

char(2)

出生日期

date

2. 创建表sc,并同时创建约束,表结构及约束要求如表2所示。

表2 sc的表结构

字段

类型

是否为空

约 束

学号

char(4)

外键参照stu表的学号列(约束名fk_sno)

课号

char(4)

成绩

decimal(5,2)

0≦成绩≦100

设置(学号,课号)为主键。

3. 创建表course,并同时创建约束,表结构及约束要求如表3所示。

表3 course的表结构

字段

类型

是否为空

约 束

课号

char(4)

课名

char(20)

唯一约束(约束名uq_cname)

学分

int

4. 在course表的课号列建立主键约束。

5. 在sc表的课号列建立外键约束fk_cno,参照course表的课号列的取值,要求实现级联更新。

6. 在stu表的姓名列建立唯一约束名uq_sname。

7. 在course表的学分列建立检查约束ck_xf,检查条件为学分>0。

8. 删除sc表的外键约束fk_cno,fk_sno。

9. 删除stu表的主键约束。

10.删除course表的唯一约束uq_cname。

11.创建测试表test,包含一个字段date_time,字段类型varchar(50);

   创建触发器test_trig,实现在stu表中每插入一条学生记录后,则自动在test表中追加一条插入成功时的日期时间。SYSDATE()函数用来获取当前的日期和时间。

   为stu表插入一条记录引发触发器,查看test表的内容。

12.在course表上创建触发器del_trig,当course表上删除一门课程时,级联删除sc表该课程的记录。

   删除course表的一条记录,查看sc表相应记录是否被自动删除。

三、实验思考

1、请说明唯一约束和主键约束之间的联系和区别。

主键约束:默认不能为空,必须是唯一的;外键都是指向另一张表的主键。一张表只能有一个主键。
唯一约束:列里面的内容,必须是唯一的,不能出现重复的情况,可以为空;唯一约束不可以作为其他表的外键;一张表可以有多个唯一约束。

2、在course表中插入一条学分值小于0的记录,该记录能插入成功吗?

不能。会报错。

3、建立外键约束所参照的父表的列必须建立成主键吗?

是,外键都是指向另外一张表的主键。

4、可以建立几种类型的触发器?

六种。

四、实验数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值