数据库上机实验6 数据库完整性

简介: 数据库上机实验6 数据库完整性

一、实验目的

1、熟练掌握实体完整性、参照完整性的定义。

2、掌握用户定义完整性的定义。

3、了解触发器的定义和使用。

二、实验内容

使用SQL命令完成如下题目:

1、删除学生作业表的主键约束和外键约束。

1. alter table score
2. drop constraint PK__score__8497E91307705DC5,
3. FK__score__cno__15502E78,FK__score__Sno__164452B1

2、在学生作业表中添加学号和课程号的主键约束。

1. alter table score
2. add constraint
3. pk_sno_cno primary key(sno,cno)

3、在学生作业表中添加课程号的外键约束。

1. alter table score
2. add constraint
3. fk_score_cno foreign key(cno) references course(cno)

4、创建触发器tr1,实现当修改学生表中的数据时,显示提示信息“学生表信息被修改了。”

1. 创建触发器语句:
2. create trigger tr1 on student after update
3. as
4. print '学生表信息被修改了。'
5. 执行触发器语句:
6. select * from student where sno='0433'
7. update student set sname='张艳艳' where sno='0433'
8. select * from student where sno='0433'

5、使用触发器tr2,实现当修改学生表中某个学生的学号时,对应学生作业表中的学号也要修改。

1. 创建触发器语句:
2. create trigger tr2 on student after update
3. as
4. update score set sno=(select sno from inserted)
5. where sno=(select sno from deleted)
6. 执行触发器语句:
7. select * from student where sname='张艳艳'
8. select * from score where sname='张艳艳'
9. update student set sno='0434' where sname='张艳艳'
10. select * from student where sname='张艳艳'
11. select * from score where sname='张艳艳'

6、查看学生表中已创建的触发器。

exec sp_helptrigger 'student'

7、查看已创建的触发器tr1的内容。

exec sp_helptext 'tr1'

8、删除学生表上的触发器tr1。

drop trigger tr1

三、实验指导

1、启动SQL Server2012软件。

2、通过分离附加的方法,将实验1所创建的作业管理数据库恢复到该软件中。

3、SQL Server中,程序不区别大小写,特别要注意程序中的标点符号,一定要在英文半角状态下输入,否则会出错。

4、使用ALTER TABLE命令来创建和删除主键约束和外键约束,如果在创建的过程中,出现已经存在该约束的错误,就需要先删除再创建。

5、若在创建约束的时候没有给约束指定名字,系统会自动给约束分配名字。

6、触发器的触发事件有INSERT、UPDATE和DELETE。

7、创建触发器后,要使用相应语句来触发该触发器执行。

目录
相关文章
|
7月前
|
关系型数据库 数据库
关系型数据库的数据完整性
关系型数据库通过一系列机制和技术手段来确保数据的完整性,从而为用户提供准确、一致和可靠的数据服务。这些措施对于保障数据的质量、满足用户需求以及维护系统的稳定运行具有重要意义。
69 5
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
|
2月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
87 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
7月前
|
关系型数据库 数据库 数据安全/隐私保护
关系型数据库的数据完整性保障
【5月更文挑战第9天】关系型数据库的数据完整性保障
167 1
|
5月前
|
存储 SQL 关系型数据库
数据库事务:确保数据完整性的关键20
【7月更文挑战第20天】事务是数据库操作的基本逻辑单位,确保数据一致性。ACID原则包括:原子性(操作全成或全败),一致性(事务前后数据合法性),隔离性(并发操作互不影响),持久性(提交后更改永久保存)。MySQL的InnoDB引擎支持事务,通过undo log实现回滚,redo log确保数据持久化。开启事务可使用`BEGIN`或`START TRANSACTION`,提交`COMMIT`,回滚`ROLLBACK`。
182 70
|
4月前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
218 1
|
7月前
|
存储 安全 算法
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
【软件设计师备考 专题 】数据库的控制功能(并发控制、恢复、安全性、完整性)
149 0
|
4月前
|
存储 数据管理 数据库
约束:数据库完整性的守护者
【8月更文挑战第31天】
24 0
|
6月前
|
存储 数据管理 数据库
理解数据库中的参照完整性
【6月更文挑战第13天】数据库设计旨在创建和维护企业的数据管理系统,确保数据完整性和消除冲突。好的数据库设计应减少冗余,保证信息准确完整,并满足处理和报告需求。设计工具包括E-R图和UML等。
504 2
理解数据库中的参照完整性
|
5月前
|
存储 关系型数据库 MySQL
关系型数据库mysql验证数据完整性
【7月更文挑战第2天】
193 1
下一篇
DataWorks