数据库原理实验报告S11-数据库触发器的创建.
数据库系统原理实验报告

数据库系统原理实验报告一、实验目的掌握数据库基本操作,熟悉数据库系统的结构和组成部分,了解数据库系统原理二、实验环境操作系统:Windows 10三、实验内容1.创建数据库首先通过命令行或图形界面方式登录数据库系统,创建一个新的数据库。
命令如下:CREATE DATABASE testdb;2.创建数据表在新创建的数据库中,创建一个新的数据表。
表名为student,包含字段id(学号)、name(姓名)、age(年龄)、gender(性别)。
命令如下:USE testdb;CREATE TABLE studentid INT PRIMARY KEY,name VARCHAR(20),age INT,gender VARCHAR(2)3.插入数据向数据表中插入若干条记录。
命令如下:INSERT INTO student (id, name, age, gender) VALUES (1, '张三', 20, '男');INSERT INTO student (id, name, age, gender) VALUES (2, '李四', 22, '女');INSERT INTO student (id, name, age, gender) VALUES (3, '王五', 21, '男');4.查询数据从数据表中查询记录。
命令如下:SELECT * FROM student;5.更新数据更新数据表中的条记录。
命令如下:UPDATE student SET age=23 WHERE id=1;6.删除数据删除数据表中的条记录。
DELETE FROM student WHERE id=2;四、实验结果1.创建数据库成功;2.创建数据表成功;3.插入数据成功;4.查询数据成功;5.更新数据成功;6.删除数据成功。
触发器创建实验

触发器的创建实验实验一:创建一个INSERT触发器“TR_Stu_Insert”,当在STUDENT表中插入一条新记录时,触发该触发器,并给出“你插入了一条新记录!”的提示信息。
实现本题的方法如下:步骤一:在SQL Server管理控制台中,展开STUDENT数据库,右击STUDENT表中的“触发器”文件夹。
从弹出的快捷菜单中选择“新建触发器”选项。
步骤二:单击“查询”菜单中的“指定模板参数的值”菜单项,在“指定模板参数的值”对话框中,将参数“Schema_Name”的值修改为“dbo”,参数“Trigger_Name”的值修改为“TR_Stu_Insert”,参数“Table_Name”的值修改为“T_STUDENT”,参数“Data_Modification_Statements”的值修改为“INSERT”。
单击“确定”按钮。
步骤三:在新建触发器模板窗口中,在BEGIN和END语句之间输入以下3条语句:DECLARE @msg char(30)SET @msg='你插入了一条新记录!'PRINT @msg步骤四:单击工具栏上的“执行”按钮,即可完成此触发器的创建。
实验二:创建了Stu_Insert触发器后,查看向T_STUDENT表中插入数据时,此触发器所完成的功能:检查该学生的选修课程必须在3门以上,否则拒绝该学生数据。
在SQL Server管理控制台中新建一个查询,并输入以下SQL语句:USE STUDENTGOinsert into T_STUDENT(S_NUMBER,S_NAME,SEX)values('0554115','王小帆','女')GO实验三:创建一个AFTER触发器,要求实现以下功能:在SCORE表上创建一个插入、更新类型的触发器TR_ScoreCheck,当在SCORE字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100之间。
数据库实验6触发器

实验6 触发器一、实验目的1.了解触发器的基本概念和功能。
2.掌握触发器的创建和使用方法。
二、相关知识创建触发器的语法为:CREATE TRIGGER <触发器名> ON <表名>[WITH ENCRYPTION]FOR {[DELETE][,][INSERT][,][UPDATE]}[WITH APPEND][NOT FOR REPLICATION]AS <SQL 语句组>其中:1)WITH ENCRYPTION 为加密选项。
2)DELETE 选项为创建DELETE 触发器。
DELETE触发器的作用是当对表执行DELETE操作时触发器被激活,并从指定表中删除元组,同时将删除的元组放入一个特殊的逻辑表(delete表)中。
触发器的动作可以检查delete表中的数据,以确定下一步该如何处理。
3)INSERT选项为创建INSERT触发器。
INSERT触发器在对指定表中执行插入数据操作时激活,激活后将插入表中的数据拷贝并送入一个特殊的逻辑表(inserted 表)中,触发器会根据INSERT表中的值决定如何处理。
4)UPDATE选项为创建UPDATE触发器。
UPDATE触发器仅在对指定表中进行更新数据操作时激活。
UPDATE触发器激活后把将要被更新的原数据移入delete表中再将要被更新后的新数据的备份送入insert表中,UPDATE触发器对delete和inserted表进行检查,并决定如何处理。
5)NOT FOR REPLICATION 选项说明当一个复制过程在修改一个触发器表时,与该表相关联的触发器不能被执行。
触发器是一种特殊类型的存储过程,用来保证数据完整性,当对它所保护数据进行插入、修改和删除时自动激活,对改变的数据进行检查,以防止对数据进行不正确、未授权或不一致的修改。
一个触发器只适用于一个表,每个表最多只能有三个触发器,它们分别是INSERT、UPDATE和DELETE触发器。
数据库 存储过程和触发器 实验报告

实验报告课程名称:数据库原理与应用上机实验名称:存储过程和触发器专业班级:计算机科学与技术1103 指导教师:卫凡学生姓名:贾梦洁学期:2013-2014学年第一学期实验报告课程名称数据库原理与应用实验名称存储过程和触发器姓名贾梦洁学号 201107010330专业班级计1103实验日期2013年12月5日成绩指导教师卫凡一、实验目的1.加深和巩固对存储过程和触发器概念的理解。
2. 掌握触发器的简单应用。
3. 掌握存储过程的简单应用。
二、实验环境硬件环境:PC机软件环境:操作系统为Microsoft Windows 2000或以上版本。
数据库管理系统为Microsoft SQL Server 2000标准版或企业版。
三、实验内容1. 熟悉运用SQL Server企业管理器和查询分析器进行存储过程的创建和删除。
2. 熟悉运用SQL Server企业管理器和查询分析器进行触发器的创建和删除。
四、实验步骤1.建立存储过程class_info ,当执行该过程时,只要给出学生的姓名,就能查到他们的班级名称。
使用存储过程class_info查找学生“张强”的信息。
2.删除存储过程 class_info3.使用触发器实现S,SC表的级联删除删除前:删除后:4.在数据库中创建一个触发器,当向S表中插入一条记录时,检查该记录的学号在S表中是否存在,如果有则不允许插入。
5.创建基于学生表的插入触发器,当向学生表插入一条记录时,返回一条信息:“欢迎新同学”。
6.为S表创建触发器s_insert,当向S表中插入数据时,要求学号必须以"2002"开头,否则取消插入操作。
五、实验总结这次的实验总体来说较前两次简单,因为很多题目都是书上的例题。
不过通过这次实验,也把上课没有认真听讲的部分给补上了。
至少让我不要在见到这些题目的时候觉得陌生,我觉得对我的数据库期末考试是有一定帮助的。
虽然数据库对我来说真的好苦手,但是我相信只要努力了总能做到的。
数据库触发器的设计与使用方法

数据库触发器的设计与使用方法数据库触发器是一种特殊的数据库对象,可以在数据库内部的某个特定事件发生时被自动激活执行。
触发器可以用于处理数据的验证、约束、衍生、日志记录等任务。
本文将重点介绍数据库触发器的设计与使用方法。
1. 触发器的设计在设计数据库触发器之前,首先需要明确触发器的目的和功能。
合理设计触发器可以提高数据库的安全性和数据完整性。
以下是一些常见的触发器设计考虑因素:1.1 确定触发器的类型数据库中常见的触发器类型包括BEFORE触发器和AFTER触发器。
BEFORE触发器在操作执行之前触发,可以用于数据验证和约束;AFTER触发器在操作执行之后触发,可以用于数据衍生和日志记录。
1.2 确定触发器激活的事件触发器可以激活于数据库表的INSERT、UPDATE、DELETE等事件。
根据业务需求选择合适的事件,同时考虑是否需要多个触发器同时工作。
1.3 确定触发器的触发时机触发器可以在每行操作(FOR EACH ROW)或每个语句操作(FOR EACH STATEMENT)时触发。
每行触发器可以获取并操作当前操作所涉及的数据行,适用于需要在每个行上执行逻辑的情况。
1.4 确定触发器的执行顺序如果数据库中存在多个触发器,可以使用触发器的优先级顺序来确保它们按照既定顺序执行。
2. 触发器的使用方法设计好触发器之后,接下来是使用触发器。
通常,在数据库管理系统的命令行界面或图形化界面上执行以下步骤:2.1 创建触发器使用数据库管理系统提供的CREATE TRIGGER语句创建触发器。
要指定触发器的名称、触发时机、触发事件以及触发的操作。
2.2 编写触发器逻辑触发器逻辑是在触发器激活时要执行的代码。
代码可以是一系列数据库操作语句、特定业务逻辑或其他任何需要执行的任务。
2.3 调试触发器在设计和编写触发器逻辑后,通过插入、更新或删除数据测试触发器的行为。
检查触发器是否按预期激活,并且逻辑是否正确执行。
2.4 管理触发器触发器是数据库的一部分,可以通过ALTER TABLE语句对触发器进行更改或删除。
数据库实验 触发器

专业:计算机软件工程班级:11级软件工程学号:201124134157
姓名:龙展鹏
课程名称:数据库系统原理2012 -2013学年度第2学期
课程类别:专业必修
实验时间:2013年06月15日
实验名称:触发器
实验目的和要求:
(1)理解触发器的触发过程和类型。
(2)掌握创建触发器的方法。
(3)掌握查看触发器的方法。
end
else
print '当前修改记录的weight值满足要求,成功完成修改操作'
更新结果:
(3)利用Transact-SQL语言为J表建立一个名为j_delete的delete触发器,通过j_delete触发器保证在删除工程项目表J中记录时,该待删除记录的SPJ表中存在引用关系,并且对应的引用关系记录的供应数量QTY值不少于50,则不能删除该工程项目记录,输出提示信息“不满足删除要求。”;否则可以删除,输出提示信息“相应的工程项目信息已经成功删除。”。
(4)掌握修改触发器的方法。
(5)掌握删除触发器的方法。
实验软硬件要求:
为了使实验顺利进行,需要有一台计算机,计算机必须安装windows 2000,
windows xp或windows NT操作系统,还必须安装Microsoft SQL 2000
或SQL Server 2005任意一版本(个人版,标准版,企业版)。实验开始前,必须将本章实验四中创建好的SCDB数据库和ShiYan数据库附加到当前SQL数据库服务器中。实验人员必须掌握数据更新操作的相关的概念,懂得数据的更新的主要类型及基本特点。
执行语句:
exec sp_rename 's_insert','s_status_update'
数据库应用实验报告视图存储过程触发器等的建立与维护

内蒙古工业大学信息工程学院实验报告课程名称:数据库应用实验名称:视图存储过程触发器等的建立与维护实验类型:验证性□ 综合性□ 设计性□实验室名称:班级:学号:姓名:组别:同组人:成绩:实验日期:预习报告成绩:指导教师审核(签名):年月日预习报告一、实验目的1.学会使用企业管理器建立视图,应用视图插入、删除、修改数据;2.掌握存储过程的使用方法;3.掌握触发器的使用方法。
二、实验内容此实验是综合视图、存储过程、触发器等知识应用的一个综合性实验。
实验要求:1.利用所创建的数据库和数据表,综合应用视图、存储过程、触发器等知识完善数据库;2.掌握应用更新视图数据可以修改基本表数据的方法;3.熟练掌握添加、修改、删除记录的存储过程的定义及调用;4.掌握通过触发器来实现数据的参照完整性。
实验内容要求:利用员工管理数据库YGGL中 3个表:Employees:员工自然信息表、Departments:部门信息表、Salary:员工薪水情况表。
(1)利用YGGL各表建立视图实现各种连接查询。
建立视图view1,查询所有职工的员工编号、姓名、部门名和收入,并按部门名顺序排列。
建立视图view2,查询所有职工的员工编号、姓名和平均工资。
建立视图view3,查询各部门名和该部门的所有职工平均工资。
(2)编写对YGGL各表进行插入、修改、删除操作的存储过程,然后编写程序,调用这些存储过程。
创建一个为Employees表添加员工记录的存储过程addEmployees。
创建一个存储过程delEmployees删除Employees表中指定员工编号的记录。
(3)对于YGGL数据库,请用触发器实现两个表间的参照完整性。
在表Departments上创建一个触发器Departments _update,当更改部门编号时同步更改Employees表中对应的部门编号。
在表Employees上创建一个触发器Employees _delete,当删除员工记录时同步删除salary表中对应的工资收入记录。
数据库原理实验报告

计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:07173姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。
2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。
3、熟练掌握备份和还原数据库。
二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验主要任务:
导入学生成绩数据库,并建立相关表的关系,对数据库实施如下操作:
一、利用SQL Server管理控制台创建DML触发器中的INSERT触发器的后(AFTER)触发器
1. 利用SQL-SERVER管理控制台:创建一个INSERT触发器“TR_Course_Insert”,当在课程表中插入一条新记录时,触发该触发器,并给出“你插入了一条新的课程记录!”的提示信息。
2.创建了TR_Course_Insert触发器后,查看向课程表中插入数据时,此触发器所完成的功能。
二、使用Transact-SQL语句创建DML的后(FOR、AFTER)触发器
(一)实现检查约束
3. 创建一个AFTER触发器,要求实现以下功能:在成绩表上创建一个插入、更新类型的触发器TR_ScoreCheck,当在成绩字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100之间。
create trigger TR_ScoreCheck
on成绩
for insert,update
as
if(select成绩from inserted)between 0 and 100
begin
print'你成功的对成绩表插入(更新)了一条记录'
end
else
begin
print'(插入)更新的成绩数据错误'
rollback transaction
end
在创建了TR_ScoreCheck触发器之后,在查询窗口中输入以下SQL语句验证:
(独立完成:4.创建一个AFTER触发器,要求实现以下功能:在2003学生名单表上创建一个插入、更新类型的触发器TR_Sex_Check,当在性别字段中插入或修改性别后,触发该触
发器,检查性别是否是‘男’或‘女’,并验证)set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER trigger [TR_Sex_Check]
on [dbo].[学生名单]
for insert,update
as
if(select性别from inserted)in('男','女')
begin
print'插入(更新)数据'
end
else
begin
print'插入或更新的性别错误'
rollback transaction
end
(二)实现层叠修改
5.创建一个AFTER触发器,要求如下:在学生表上创建一个删除类型的触发器TR_Stu_Delete,当在学生表中删除某一条记录后,触发该触发器,在成绩表中删除与此学号对应的记录。
create trigger TR_Stu_Delete
on学生
for delete
as
begin
delete
from成绩
where学号=(select学号from deleted)
end
在创建了TR_Stu_Delete触发器之后,在查询窗口中输入以下SQL语句验证:
(独立完成:6.创建一个AFTER触发器,要求实现以下功能在2003班级表上创建一个删除类型的触发器TR_Class_Delete,当在2003班级表中删除某一条记录后,触发该触发器,在2003学生名单中删除与此学号对应的记录。
并验证)
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER trigger [TR_Class_Delete]
on [dbo].[班级]
for delete
as
begin
delete
from学生名单
where班级=(select班级from deleted)
end
三、使用Transact-SQL语句创建DML的前(INSTEAD OF)触发器
7.创建一个INSTEAD OF触发器,要求实现以下功能:在课程表上创建一个删除类型的触发器TR_NotAllowDelete,当在课程表中删除记录时,触发该触发器,显示不允许删除表中数据的提示信息。
在创建了TR_Stu_Delete触发器之后,在查询窗口中输入以下SQL语句验证:
四、查看和修改触发器
(一)利用SQL Server管理控制平台查看
8.使用SQL Server管理控制台查看TR_Course_Insert触发器并查看与该触发器有依赖关
系的其他数据库对象
(二)使用系统存储过程查看触发器
可以使用系统存储过程sp_help、sp_helptext和sp_depends分别查看触发器的不同信息。
它们的具体用途和语法形式如下:
sp_help:用于查看触发器的一般信息,如触发器的名称、属性、类型和创建时间。
sp_help ‘触发器名称’
sp_helptext:用于查看触发器的正文信息。
sp_depends:用于查看触发器涉及到的所有表。
9.使用系统存储过程查看TR_Course_Insert触发器的一般信息
10.使用系统存储过程查看TR_Stu_Delete触发器涉及到的所有表。
11.使用系统存储过程查看TR_Stu_Delete触发器的正文信息
五、删除触发器
12.用系统命令DROP TRIGGER 触发器名删除TR_Course_Inser
利用商品销售练习数据库阅读下面的插入存储器、触发器实例,并把代码敲入自己的界面上熟悉:
数据库【商品销售练习】关系图
1.报告格式和内容要求:
a. 内容和格式整齐。
大标题采用黑体四号字加粗,小标题采用小四号字加粗。
正
文采用五号宋体,单倍行距。
b. 贴图时请剪裁到适当大小,要保证打印时可以看清,但也不要太大以免“越界”。
c. 不要在报告中写与实验无关的话,内容要有条理、完整、并能突出重点,要将
遇到的主要问题说明。
2.文件格式要求:
a. 将实验成果放入一个文件夹中,文件夹的内容包括:本实验报告、分离后的数
据库、如有查询代码(.sql文件)和其它文件也一并放入。
b. 文件夹以“学号姓名班级_S11”为文件名。
注意:你的学号放在姓名前。
c. 注意:所有文件保存后关闭,然后打包成RAR文件,以免提交的内容丢失或打
不开。
3.提交方式和时间:一周内完成。
可以将文件包发到我邮箱***************。
4.主动查阅资料,坚持自己亲手完成实验,弄清每个步骤和相关原理。