数据库应用实验报告视图存储过程触发器等的建立与维护范文

数据库应用实验报告视图存储过程触发器等的建立与维护范文
数据库应用实验报告视图存储过程触发器等的建立与维护范文

内蒙古工业大学信息工程学院实验报告

课程名称:数据库应用

实验名称:视图存储过程触发器等的建立与维护实验类型:验证性□ 综合性□ 设计性□

实验室名称:

班级:学号:

姓名:组别:

同组人:成绩:

实验日期:

预习报告成绩:指导教师审核(签名):年月日

预习报告

一、实验目的

1.学会使用企业管理器建立视图,应用视图插入、删除、修改数据;

2.掌握存储过程的使用方法;

3.掌握触发器的使用方法。

二、实验内容

此实验是综合视图、存储过程、触发器等知识应用的一个综合性实验。

实验要求:

1.利用所创建的数据库和数据表,综合应用视图、存储过程、触发器等知识完善数据库;2.掌握应用更新视图数据可以修改基本表数据的方法;

3.熟练掌握添加、修改、删除记录的存储过程的定义及调用;

4.掌握通过触发器来实现数据的参照完整性。

实验内容要求:

利用员工管理数据库YGGL中 3个表:

Employees:员工自然信息表、Departments:部门信息表、Salary:员工薪水情况表。(1)利用YGGL各表建立视图实现各种连接查询。建立视图view1,查询所有职工的员工编号、姓名、部门名和收入,并按部门名顺序排列。建立视图view2,查询所有职工的员工编号、姓名和平均工资。建立视图view3,查询各部门名和该部门的所有职工平均工资。

(2)编写对YGGL各表进行插入、修改、删除操作的存储过程,然后编写程序,调用这些存储过程。创建一个为Employees表添加员工记录的存储过程add Employees。创建一个存储过程del Employees删除Employees表中指定员工编号的记录。

(3)对于YGGL数据库,请用触发器实现两个表间的参照完整性。在表Departments上创建一个触发器Departments _update,当更改部门编号时同步更改Employees表中对应的部门编号。在表Employees上创建一个触发器Employees _delete,当删除员工记录时同步删除salary表中对应的工资收入记录。

参考实例步骤:

1.创建视图

(1)班级表(U_CLASSES ):ID含义为"班号",CLASS含义为"班名",DEPARTMENT含义为所在系,各字段类型按需要设置是否允许为空,ID字段被设置为主键。

(2)成绩表(U_SCORES ):STUDENT_ID含义为学号,COURSE_ID含义为课程号,SCORE为成绩,各字段类型按需要设置是否允许为空,STUDENT_ID 、COURSE_ID字段被设置为主键。(3)课程表(U_COURSES):COURSE含义为课程名称, ID含义为课程编号,CREDIT含义为课程学分。

(4)学生表

1.用企业管理器建立一个基于学生表、课程表、成绩表的视图,要求该视图显示学号、

姓名、课程、成绩。

1)启动企业管理器、注册、连接

2)展开服务器、数据库、在视图上右击,在快捷菜单中执行"新建视图(V)..."

3)在新视图窗口内的关系图窗格内右击鼠标,弹出的菜单即为视图设计菜单,执行"

添加表(B)..."

4)再在添加表对话框中选择U_SCORES表,再单击添加按钮。

5)依此操作,分别添加U_STUDENTS、U_COURSES表,单击关闭按钮。

6)再在关系窗格内,拖动U_STUDENTS表的"ID"至U_SCORES的STUDENT_ID,拖动

U_COURSES表的"ID"至U_SCORES的COURSE_ID,再分别选中U_STUDENTS表的

"ID","NAME"列(列前的复选框),U_COURSES表的"COURSE"列以及U_SCORES表的

"SCORE"列,然后单击"!"按钮,显示视图结果。

7)单击保存按钮,将视图保存为V_SCORES,单击确定。

2.用查询分析器建立一个基于学生表、班级表的学生视图(V_STUDENTS),包括学号、姓

名、班级、系,SQL语句如下:

1)CREATE VIEW dbo.V_STUDENTS

AS

SELECT dbo.U_STUDENTS.ID,dbo.U_https://www.360docs.net/doc/3b15546668.html,, dbo.U_CLASSES.CLASS,

dbo.U_CLASSES.DEPARTMENT

FROM dbo.U_STUDENTS INNER JOIN

dbo.U_CLASSES ON dbo.U_STUDENTS.CLASS_ID = dbo.U_CLASSES.ID

3.自己写一个SQL语句建立一个基于课程表的视图(V_COURSES),要求显示课程编号、

课程名、学分。

2.创建存储过程

在查询分析器编辑窗口输入各存储过程的代码并执行以下程序。

(1)添加职员记录的存储过程EmployeeAdd:

USE YGGL

GO

CREATE PROCEDURE Emplo)reeAdd

(@employeeid char6),@name char(10),@birthday datetime,

@sex bit,@address char(20),@zip char(6),@phonenumber char(12),

@emailaddress char(20),@departmenflD char(3))

AS

BEGIN

INSERT INTO Employees

VALUES(@employeeid,@name,@birthday,@sex,@address,

@zip,@phonenumber,@emailaddress,@departmentlD)

END

RETURN

GO

(2)修改职员记录的存储过程EmployeeUpdate:

USE YGGL

GO

CREATE PROCEDURE EmployeeUpdate

(@empid char(6),@employeeid char(6),@name char(10),@birthday datetime, @sex bit,@address char(20),@zip chat(6),@phonenumber char(12),

@emailaddress char(20),@departmentlD char(3))

AS

BEGIN

UPDATE Employees ‘

SET Employeeid=@employeeid,

Name=@name.

Birthday=@birthday,

Sex=@sex,

Address=@address.

Zip=@zip,

Phonenumber=-@phonenumber,

Emailaddree=@emailaddress.

DepartmentD=@departmenflD

WHERE Employeeid=@empid

END

RETURN

GO

(3)删除职员记录的存储过程EmployeeDelete:

USE YGGL

GO

CREATE PROCEDURE EmployeeDelete

(@employeeid char(6))

AS

BEGIN

DELETE FROM Employees

WHERE Employeeid=@employeeid

END

RETURN

G0

3.调用存储过程

USE YGGL

EXEC EmployeeAdd’’,’刘朝’,’’,1,’武汉小洪山5号’,”,”,”,’3’

GO

USE YGGL

EXEC Employeeupdate’’,’’,’刘平’,’’ ,1,’武汉小洪山5号’,”,”,”,’2’

GO

USE YGGI,

EXEC EmployeeDelete’’

GO

分析一下此段程序执行时可能出现哪几种情况。

【思考与练习】

编写如下T-SQL程序:

(1)自定义1个数据类型,用于描述YGGL数据库中的DepartmentlD字段,然后编写代码

重新定义数据库各表。

(2)编写对YGGL各表进行插入、修改、删除操作的存储过程,然后,编写l段程序调用

这些存储过程。

(3)对于YGGL数据库,表Employees的EmployeelD列与表Salary的EmployeelD列应满足参照完整性规则,请用触发器实现两个表问的参照完整性。

4.创建触发器

对于YGGL数据库,表Employees的DepartmentID列与表Departments的DepartmentID列

对应满足参照完整性规则,即:

(1)向Employees表添加1条记录时,该记录的DepartmentID值在Departments 表中应存在。

(2)修改Departments表DepartmentID 字段值时,该字段在Employees表中的对应值也应修改。

(3)删除Departments表中1条记录时,该记录DepartmentID字段值在Employees 表中对应的记录也应删除。

对于上述参照完整性规则,在此通过触发器实现。

在查询分析器编辑窗口输入各触发器的代码并执行:

①向Employees表插入或修改1条记录时,通过触发器检查记录的DepartmentID值在

Departments表是否存在,若不存在,则取消插入或修改操作。

USE YGGL

GO

CREATE TRIGGER EmployeesIns on dbo.Employees

FOR INSRET,UPDATE

AS

BEGIN

IF((SELECT ins.departmentid from inserted ins)NOT IN

(SELECT departmentid FROM departments))

ROLLBACK

/*对当前事务回滚,即恢复到插入前的状态

END

②修改Departments表departmentID字段值时,该字段在Employees表中的对应值也进行相应修改。

USE YGGL

GO

CREATE TRIGGER DepartmentsUpdate on dbo.Departments

FoR UPDATE

AS

BEGIN

IF(COLUMNS_UPDATED()&01)>0

UPDATE Employees

SET DepartmentlD=(SELECT ins.DepartmentlD from INSERTED ins)

WHERE DepaxtmentlD=(SELECT DepartmentlD FROM deleted)

END

GO

③删除Departments表中1条记录的同时删除该记录departmentlD字段值在Employees 表中对应的记录。

USE YGGL

GO

CREATE TRIGGER DepartmentsDelete On db.Departments

FOR DELETE

AS

BEGIN

DELETE FROM Employees

WHERE DepartmentlD=(SELECT DepartmentlD FROM deleted)

END

GO

【思考与练习】

上述触发器的功能用完整性的方法完成。

【思考与练习】

编写如下T-SQL程序:

(1)自定义1个数据类型,用于描述YGGL数据库中的DepartmentlD字段,然后编写代码重新定义数据库各表。

(2)对于YGGL数据库,表Employees的EmployeelD列与表Salary的EmployeelD列应满足参照完整性规则,请用触发器实现两个表间的参照完整性。

实验报告成绩:指导教师审核(签名):年月日

实验报告

1.添加职员记录的存储过程EmployeeAdd:

2.修改职员记录的存储过程EmployeeUpdate:

3.删除职员记录的存储过程EmployeeDelete

4.调用存储过程

5.向Employees表插入或修改1条记录时,通过触发器检查记录的DepartmentID值在Departments表是否存在,若不存在,则取消插入或修改操作。

6.修改Departments表departmentID字段值时,该字段在Employees表中的对应值也进行相应修改。

7.删除Departments表中1条记录的同时删除该记录departmentlD字段值在Employees表中对应的记录

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-14

1 实验目的: 1)掌握SQL进行存储过程创建和调用的方法; 2)掌握SQL进行触发器定义的方法,理解触发器的工作原理; 3)掌握触发器禁用和重新启用的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。 存储过程定义代码: CREATE PROCEDURE JSXX_PROC AS SELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND https://www.360docs.net/doc/3b15546668.html,o=https://www.360docs.net/doc/3b15546668.html,o 存储过程执行语句与执行结果截图: EXECUTE JSXX_PROC 2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、 所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。 存储过程定义代码:

CREATE PROCEDURE XM_PROC @sname VARCHAR(100) AS BEGIN IF EXISTS(SELECT NULL FROM S WHERE sn=@sname) SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE https://www.360docs.net/doc/3b15546668.html,o=https://www.360docs.net/doc/3b15546668.html,o AND SC.sno=S.sno AND S.sn=@sname ELSE PRINT'无该姓名的同学。' END 运行截图: 3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业), 统计并显示该专业各年龄段男、女生人数。如果没有该专业,则显示“无此专业”。 存储过程定义代码: CREATE PROCEDURE XBNL_PROC @departName VARCHAR(30)='计算机', @begin INT, @end INT AS

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

SQL 数据库实验报告3

一、实验内容 (1)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。 (2)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。 二、实验器材(设备、元器件) Window7操作系统,SQL Server软件 三、实验步骤 (1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 (2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图所示 (3)在SQL Server管理平台中创建student_info、curriculum表。 学生基本情况表student_info 课程信息表curriculum

①启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 ②在SQL Server管理平台中创建student_info表。 ③在SQL Server管理平台中创建curriculum表。 (4)使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建表 学生成绩表grade

①新建查询,输入Transact-SQL语句,点击执行 ②出现如下界面,学生成绩表grade建立成功 (5)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空。

(6)student_info、curriculum、grade表中的数据如图所示。 student_info的数据 curriculum的数据 grade的数据 (7)在SQL Server管理平台中为student_info表添加数据

实验六 触发器实验报告

实验五 触发器实验报告 [实验目的] 1. 理解Oracle 触发器的种类和用途 2. 掌握行级触发器的编写 [预备知识] 1. PL/SQL 程序设计 [实验原理] 1. 建立触发器 CREA TE [OR REPLACE] TRIGGER <触发器名> BEFORE|AFTER INSERT|DELETE|UPDA TE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>) ON 子句中的名称识别与数据库触发器关联的数据库表 触发器事件指定了影响表的 SQL DML 语句 ( INSERT 、 DELETE 或 UPDA TE) AFTER 指定了触发器在处理完成后触发 BEFORE 指定了触发器在处理完成前触发 默认情况下,触发器每个表触发一次 FOR EACH ROW 选项指定触发器每行触发一次(即触发器为行级触发器) 要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREA TE 语句以自动删除和重建触发器 2. 行级触发器中引用表数据 在行级触发器中,使用伪记录来表示旧数据:old 和新数据:new 引用示例::new.customer_name, :old.customer_name 3. 行级触发器中的谓词 在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:触发事件 :old :new Insert 无定义,所有字段都是NULL 该语句完成后插入的值 Update 更新前该行的旧值 更新后该行的值 Delete 删除前该行的值 无定义,所有字段

实验六 存储过程和触发器

实验六存储过程与触发器 一、目的与要求 1.掌握编写数据库存储过程的方法。 2.掌握建立数据库触发器的方法,通过实验观察触发器的作用与触发条件设置 等相关操作。 二、实验准备 1.了解编写存储过程与调用的T-SQL语法; 2.了解触发器的作用; 3.了解编写触发器的T-SQL语法。 三、实验内容 (一)存储过程 在studentdb数据库中建立存储过程getPractice,查询指定院系(名称)(作为存储过程的输入参数)中参与“实践”课程学习的所有学生学号、姓名、所学课程编号与课程名称,若院系不存在,返回提示信息。 提示:D_Info表中存储了院系代码D_ID,而St_Info表中学号字段St_ID的前两位与之对应,则D_Info表与St_Info表之间的联系通过这两个字段的运算构成连接条件。 1.分别执行存储过程getPractice,查询“法学院”与“材料科学与工程学院” 的学生中参与“实践”课程的所有学生学号、姓名、所学课程编号与课程名称。 create procedure getPractice @D_Name varchar(30) output as begin if not exists (select * from D_Info where D_Name= @D_Name ) print '对不起,该院系不存在' else select st_info、St_ID,C_Info、C_No,C_Name from s_c_info inner join st_info on st_info、St_ID=s_c_info、st_id inner join C_Info on s_c_info、c_no=C_Info、C_No where st_info、St_ID in ( select St_ID from st_info join D_Info on D_Info、D_ID =left(st_info、St_ID,2) where C_Info、C_Type='实践' and D_Info、D_Name= @D_Name ) end go

数据库上机实验报告正式版

For the things that have been done in a certain period, the general inspection of the system is also a specific general analysis to find out the shortcomings and deficiencies 数据库上机实验报告正式 版

数据库上机实验报告正式版 下载提示:此报告资料适用于某一时期已经做过的事情,进行一次全面系统的总检查、总评价,同时也是一次具体的总分析、总研究,找出成绩、缺点和不足,并找出可提升点和教训记录成文,为以后遇到同类事项提供借鉴的经验。文档可以直接使用,也可根据实际需要修订后使用。 数据库上机实验报告 试验内容 1、数据表的建立 基本表《简单的》带有主键 带有外码约束的(外码来自其他表或者本表) 2、数据表的修改 添加删除列 修改列属性类型 添加删除约束(约束名) 元组的添加,修改,删除 删除数据表

试验过程 1、createtablestudent ( snochar(9)primarykey,/*sno是主码列级完整性约束条件*/ snamechar(20)unique,/*sname取唯一值*/ ssexchar(2), sagesmallint,/*类型为smallint*/ sdeptchar(20)/*所在系*/ ); createtablecourse ( cnochar(4)primarykey,/*列级完整性约束条件,cno是主码*/

cnamechar(40), cpnochar(4),/*cpno的含义是先行课*/ ccreditsmallint, foreignkey(cpno)referencescourse(cno) /*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是 cno*/ ); createtablesc ( snochar(9), cnochar(4), gradesmallint,

数据库实验报告模板

北华航天工业学院 实验报告 课程名称:数据库原理与应用实验内容:数据库安全性管理作者所在系部:网络工程系 作者所在专业:网络工程 作者所在班级:B13521 作者姓名:李文阳 作者学号:201322673 指导教师姓名:王振夺 北华航天工业学院教务处制

实验四数据库安全性管理 一、实验目的 1、理解数据库的安全性机制; 2、掌握SQL Server 2005的验证模式、登录管理、用户管理、角色管理以及权限管理; 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)设置SQL Server的安全验证模式,并以两种方式尝试登录。 (三)登录账户管理 1、以管理员身份登录SQL Server,修改sa的密码。 2、使用SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。 3、使用SQL语句来修改上述登录账户的密码。

4、禁用上述登录账户连接SQL Server,并进行验证。 (四)数据库用户管理 1、使用SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句的权限。 (五)权限管理 1、使用SSMS将创建数据表和创建视图的权限授予User2。 2、使用SQL语句将对db_Library数据库中图书信息表的查询、插入、以及对书名和作者列的修改权限授予用户User2。 3、使用SSMS收回User2创建数据表和创建视图的权限。

4、使用SQL语句收回User2修改书名和作者列的权限。 (六)删除上述所建立的数据库用户以及登录账户。 三、实验步骤 主要实现的SQL语句。 使用T-SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。 CREATE LOGIN LWY WITH PASSWORD ='123#$' go 使用SSMS和T-SQL语句来修改上述登录账户的密码。 alter login LWY with password='01234' go 禁用上述登录账户连接SQL Server,并进行验证。 alter login LWY disable go 设置上述登录账户为数据库创建者的权限。 (注意:只能在master中授予create database权限) use master go create user JZH for login LWY //为登录账户创建在master中的数据库用户 go grant create database to LWY //授予权限, go 数据库用户管理 使用T-SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句和备份数据库的权限。 use db_Library create user user2 for login LWY

触发器实验报告

实验3 触发器及其应用 一、实验目的 1、掌握基本RS、JK、D和T触发器的逻辑功能 2、掌握集成触发器的逻辑功能及使用方法 3、熟悉触发器之间相互转换的方法 二、实验原理 触发器具有两个稳定状态,用以表示逻辑状态“1”和“0”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一个具有记忆功能的二进制信息存贮器件,是构成各种时序电路的最基本逻辑单元。 1、基本RS触发器 图5-8-1为由两个与非门交叉耦合构成的基本RS触发器,它是无时钟控制低电平直接触发的触发器。基本RS触发器具有置“0”、置“1”和“保持”三种功能。通常称S为置“1”端,因为S=0(R=1)时触发器被置“1”;R为置“0”端,因为R=0(S=1)时触发器被置“0”,当S=R=1时状态保持;S=R=0时,触发器状态不定,应避免此 种情况发生,表5-8-1为基本RS触发器的功能表。 基本RS触发器。也可以用两个“或非门”组成,此时为高电平触发有效。 表5-8-1 图5—8—1 基本RS触发器 2、JK触发器 在输入信号为双端的情况下,JK触发器是功能完善、使用灵活和通用性较强的一种触发器。本实验采用74LS112双JK触发器,是下降边沿触发的边沿触发器。引脚功能及逻辑符号如图5-8-2所示。 JK触发器的状态方程为 Q n+1=J Q n+K Q n J和K是数据输入端,是触发器状态更新的依据,若J、K有两个或两个以上输入端时,组

成“与”的关系。Q与Q为两个互补输出端。通常把Q=0、Q=1的状态定为触发器“0”状态;而把Q=1,Q=0定为“1”状态。 图5-8-2 74LS112双JK触发器引脚排列及逻辑符号 下降沿触发JK触发器的功能如表5-8-2 表 注:×—任意态↓—高到低电平跳变↑—低到高电平跳变 Q n(Q n)—现态Q n+1(Q n+1 )—次态φ—不定态 JK触发器常被用作缓冲存储器,移位寄存器和计数器。 3、D触发器 在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为 Q n+1=D n,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器, 触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的寄存,移位寄存,分频和波形发生等。有很多种型号可供各种用途的需要而选用。如双 D 74LS74、四D 74LS175、六D 74LS174等。 图5-8-3 为双D 74LS74的引脚排列及逻辑符号。功能如表5-8-3。

存储过程与触发器 实验报告

信息工程学院实验报告 课程名称:《数据库原理》 实验项目名称:存储过程与触发器 一、实验目的: (1)了解存储过程的概念 (2)掌握创建、执行存储过程的方法 (3)了解查看、修改和删除存储过程的方法 (4)了解触发器的概念 (5)掌握创建触发器的方法 (6)掌握查看、修改、删除触发器信息的方法 二、实验设备与器件 Win7 +Sql server 2008 三、实验内容与步骤 (一)存储过程 运行实验四附录中的SQL语句,准备实验数据。然后创建下列存储过程,并调试运行存储过程,查看运行结果。 1.在企业管理器中创建一个名为StuInfo的存储过程,完成的功能是在student表中查询系号为D2的学号、姓名、性别、年龄、系号的内容。 CREATE PROCEDURE StuInfo AS SELECT SNO AS学号, SNAME AS姓名, SSEX AS性别, SAGE AS年龄, DNO AS系号 FROM student WHERE DNO='D2' 结果: stuinfo 2.使用T_SQL语句创建存储过程,完成的功能是在表student,course和study中查询以下字段:学号、姓名、性别、课程名称、考试分数。

use mydb --查询是否已存在此存储过程,如果存在,就删除它 if exists(select name from sysobjects where name='StuScoreInfo'and type='P') drop procedure StuScoreInfo go --创建存储过程 CREATE PROCEDURE StuScoreInfo as select student.sno as学号, sname as姓名, ssex as性别, https://www.360docs.net/doc/3b15546668.html,ame as课程名称, study.grade as考试分数 from student,course,study where student.sno=study.sno and https://www.360docs.net/doc/3b15546668.html,o=https://www.360docs.net/doc/3b15546668.html,o 结果: StuScoreInfo 3.使用T_SQL语句创建一个带有参数的存储过程stu_sno_info,该存储过程根据传入的学生编号,在student表中查询此学生的信息。 if exists(select name from sysobjects where name='stu_info'and type='P') drop procedure stu_info go --创建存储过程 create procedure stu_info @sno varchar(8) as select sno as学号, sname as姓名, ssex as性别, sage as年龄, dno as年级

数据库实验报告

北京科技大学实验报告 课程:数据库技术与应用实验名称:数据库查询 系别:通信工程实验日期:2015年12月9日 专业班级提交日期: 学号:姓名: 教师审批签字: 实验2 数据库和表的创建及维护 一.实验目的 1.了解Microsoft SQL Server 2008数据库的逻辑结构和物理结构。 2.熟练掌握在Microsoft SQL Server 2008 环境下建立数据库,修改数据库和删除数据库。 3.熟练掌握在Microsoft SQL Server 2008 环境下建立和修改数据表并向表中插入数据,操作的同时理解数据库,数据表,属性,关键字等关系数据库中的基本概念。 4.掌握在Microsoft SQL Server 2008 的“对象资源管理器”中对数据表中的数据进行更新操作。 5.了解各种约束的作用,了解Microsoft SQL Server 2008 的常用数据类型。 6.掌握使用Transact-SQL语句创建数据库和表 7.掌握Transact-SQL中用于对表数据进行插入,修改和删除命令的用法。 8.熟悉使用Microsoft SQL Server 2008d的“对象资源管理器”进行分离数据库,附加数据库,备份数据库和还原数据库等操作。 二.实验步骤 1.在Microsoft SQL Server 2008 的“对象资源管理器”中创建StudentMIS数据库。 SQL语句: Create database studentmis On (name=stdentmis,filename=’c:\programfiles\microsoftsqlserver\mssql10.mssqlserver\mssql\data \studentmis.mdf’,size=100mb,maxsize=1gb,filegrowth=10%) Log on (name=studentmis_log’, filec:\programfiles\microsoftsqlserver\mssql10.mssqlserver\mssql\data\studentmis.mdf’,size=10 0mb,maxsize=50mb,filegrowth=5mb) go

数据库实验报告

数据库实验报告 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

课程名称:数据库原理与应用 实验内容:数据库安全性管理 作者所在系部:网络工程系 作者所在专业:网络工程 作者所在班级: B13521 作者姓名:李文阳 作者学号: 指导教师姓名:王振夺 北华航天工业学院教务处制 实验四数据库安全性管理 一、实验目的 1、理解数据库的安全性机制; 2、掌握SQL Server 2005的验证模式、登录管理、用户管理、角色 管理以及权限管理; 二、实验内容 (一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。 (二)设置SQL Server的安全验证模式,并以两种方式尝试登录。

(三)登录账户管理 1、以管理员身份登录SQL Server,修改sa的密码。 2、使用SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。 3、使用SQL语句来修改上述登录账户的密码。 4、禁用上述登录账户连接SQL Server,并进行验证。 (四)数据库用户管理 1、使用SQL语句添加db_Library数据库用户User2,其登录账户为上题所创建的SQL Server登录账户,使用默认dbo架构,并赋予该用户能够运行Select语句的权限。 (五)权限管理 1、使用SSMS将创建数据表和创建视图的权限授予User2。 2、使用SQL语句将对db_Library数据库中图书信息表的查询、插入、以及对书名和作者列的修改权限授予用户User2。 3、使用SSMS收回User2创建数据表和创建视图的权限。 4、使用SQL语句收回User2修改书名和作者列的权限。 (六)删除上述所建立的数据库用户以及登录账户。 三、实验步骤 主要实现的SQL语句。 使用T-SQL语句创建一个SQL Server登录账户,账户名为你的名字拼音,密码自定义。创建完成后,以该账户来进行登录。

实验六 触发器实验报告

实验六触发器实验报告 触发器实验报告 [实验目的]1、理解Oracle触发器的种类和用途2、掌握行级触发器的编写 [预备知识]1、 PL/SQL程序设计 [实验原理]1、建立触发器 CREATE [OR REPLACE] TRIGGER <触发器名> BEFORE|AFTER INSERT|DELETE|UPDATE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>) ON 子句中的名称识别与数据库触发器关联的数据库表触发器事件指定了影响表的 SQL DML 语句 ( INSERT、 DELETE 或 UPDATE) AFTER 指定了触发器在处理完成后触发 BEFORE 指定了触发器在处理完成前触发默认情况下,触发器每个表触发一次 FOR EACH ROW 选项指定触发器每行触发一次(即触发器为行级触发器)要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREATE 语句以自动删除和重建触发器2、行级触发器中引用表数据在行级触发器中,使用伪记录来表示旧数据:old和新数据:new 触发事件 :old :new Insert 无定义,所有字段都是NULL该语句完成后插入的值 Update 更新前该行的旧值更新后该行的值 Delete 删除前该行的值无定

义,所有字段都是NULL引用示例::new、 customer_name, :old、customer_name3、行级触发器中的谓词在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:inserting,updating,deleting。 示例: IF Inserting THEN 语句 ; END IF; IF Updating THEN 语句 ; END IF; IF Deleting THEN 语句 ; END IF;4、触发器的限制 SELECT 语句必须是 SELECT INTO 语句或内部游标声明。 行级触发器不可以对触发表进行查询,包括其调用的子过程中。 不允许 DDL 声明和事务控制语句。 如果由触发器调用存储子过程,则存储子程序不能包括事务控制语句。 :old 和 :new 值的类型不能是 LONG 和 LONG RAW。 [实验内容]1、给Customer表增加一列Savings,类型为int,来存放每个顾客的存款总额。A LTER TABLE customer ADD (saving varchar2(30));select * from customer;2、更新Customer表,使得Savings字段的值正确。 3、在Account表上增加一个行级触发器,当对account的balance进行update和insert一个记录时同步修改Customer的Savings字段,保证数据的一致性。

Access数据库实验报告范文

深圳大学实验报告课程名称:计算机基础 实验名称:数据库管理系统 学院:专业:报告人:学号:班级:同组人: 指导教师: 实验时间: 实验报告提交时间: 教务处制

一.实验目的 1. 加深对数据库管理系统的直观认识和理解。 2. 掌握Access 2003数据库的创建和打开方式。 3. 掌握Access 2003中数据表的设计和创建方法。 4. 掌握Access 2003中窗体、查询、报表和数据访问页的设计和创建 方法。 二.实验步骤 1. Access 2003的启动与退出 执行“开始”→“所有程序”→“Microsoft office”→“Microsoft office Access 2003”命令,或双击桌面上的Access 2003快捷图标,打开Microsoft Access应用程序窗口,如图7-1所示。 图7-1 Access2003主窗口 Access 2003的主窗口与Microsoft Office 2003中其他应用程序的主窗口十分相似,同样包括标题栏、菜单栏、工具栏、工作区、任务窗格和状态栏等。 (1)标题栏和任务栏

Access2003主窗口的上边是窗口的标题栏,下边是任务栏,它们的结构、功能以及使用方法与一般Windows应用程序窗口的标题栏和任务栏相同。 (2)菜单栏 Access 2003主窗口的菜单栏形式也和一般的Windows应用程序类似,提供了有关数据库操作的主要功能。单击每一个菜单项都会激活一个下拉菜单,列出有关此项功能的具体操作命令选项。除下拉菜单外,Access 2003也允许在任何对象上右击鼠标,弹出快捷菜单,显示对该对象操作的命令选项。 (3)工具栏 工具栏显示的是最常用的Access 2003命令选项,用以快速启动这些应用。工具栏的内容用户可以自行设置。执行“视图”→“工具栏”命令,在下拉菜单中会列出Web、任务窗格、数据库、自定义等选项。用户可通过各个工具栏选项前的复选框自行选择某一个工具栏的显示与否。 自定义工具栏对话框中包括“工具栏”、“命令”、“选项”三个选项卡,图7-2为“自定义”对话框的“工具栏”选项卡。在自定义工具栏中提供了更多的工具选项,用户可以根据自己的需要,利用每一项工具前面的复选框决定显示或取消显示该项工具。 图7-2 自定义工具栏对话框 (4)工作区

数据库实验报告范本

数据库实验报告

第一章系统概述 该物流管理系统是对物流公司业务的统一信息化管理,提供在线服务。订单模块实现了业务订单的新增,查询,修改,删除等功能。用户可以以会员身份或者游客身份登陆公司进行网上下单,当完成订单之后可根据系统提供的订单号进行订单状态的查询。公司员工需要对订单审核确认,进行删改查等管理操作。 该系统是B\S结构,运用MVC模式基于J2EE平台开发的,使用Oracle 数据库。我负责的是订单模块的需求分析,系统设计,数据库设计,编码和测试。 该系统所使用的开发工具有:MyEclipse,Tomcat, Rational Rose ,PowerDesigner,PL/SQL等。 第二章系统设计 2.1订单模块功能设计 1.网上下单 本系统是BS结构的WEB系统,我们通过在线方式新增订单。 2.订单审核 因为是物流系统,在网上下单之后,顾客需要将货物送至配送点,经过工作人员审核,才能最后完成一份订单。 3.订单查询 查询功能支持模糊查询,多条件查询。可以满足顾客及工作人员的需要。

4.订单管理 管理功能包括:查看明细,修改,删除。 2.2业务逻辑设计 类图如下所示(本部分不是此次作业重点,这里不再过叙述类图的设计): 第三章数据库设计 3.1 概念模型 本系统模块包含的实体有:订单基本表,订单信息表,订单状态表,货物表,交接单,配送点。 1.各实体ER图如下图3-1到图3-6所示。

图3-1订单基本表实体E-R图 图3-2订单信息表实体E-R图

图3-3订单状态表实体E-R图 图3-4 货物表实体E-R图 图3-5 交接单实体E-R图

触发器实验报告

. . . . .. . 实验报告 课程名称:数字电子技术基础实验 指导老师: 周箭 成绩:__________________ 实验名称:集成触发器应用 实验类型: 同组学生姓名:__邓江毅_____ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验内容和原理 1、D →J-K 的转换实验 设计过程:J-K 触发器和D 触发器的次态方程如下: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将D 触发器转换为J-K 触发器,则有:n n Q Q J =D K +。 实验结果: J K Qn-1 Qn 功能 0 0 0 0 保持 1 1 0 1 0 0 置0 1 0 1 1 0 1 翻转 1 0 1 0 1 置1 1 1 (上:Qn ,下:CP ,J 为高电平时) 2、D 触发器转换为T ’触发器实验 设计过程:D 触发器和T ’触发器的次态方程如下: D 触发器:Q n+1= D , T ’触发器:Q n+1=!Q n 若将D 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:D=!Qn 。 实验截图: 专业:电卓1501 姓名:卢倚平 学号:3150101215 日期:2017.6.01 地点:东三404

实验名称:集成触发器应用实验 姓名: 卢倚平 学号: 2 (上:Qn ,下:!Qn )CP 为1024Hz 的脉冲。 3、J-K →D 的转换实验。 ①设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将J-K 触发器转换为D 触发器,则二者的次态方程须相等,因此有:J=D ,K=!D 。 实验截图: (上:Qn ,下:CP ) (上:Qn ,下:D ) 4、J-K →T ′的转换实验。 设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, T ’触发器:Qn+1=!Qn 若将J-K 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:J=K=1 实验截图:

数据库实验报告模版

《数据库系统原理》课程实验 姓名: 班级: 学号: 佛山科学技术学院计算机系 2012年12月

目录 一.实验需用表格 (3) 二.实验内容 (4) 2.1 SQL数据定义 (4) 2.2实验二 SQL数据查询 (6) 2.3实验三连接、嵌套和集合查询 (10) 2.4实验四 SQL的数据更新 (15) 2.5实验五视图的定义和维护 (17) 2.6实验六触发器和存储过程 (22) 三.实验感想 (26)

一.实验需用表格 学生-课程数据库xskc中用到的三个表文件如下: 学生表:Student 课程表:Course 学生选课表:SC

二.实验内容 2.1 SQL数据定义 一、实验目的和要求 1.掌握利用SQL查询分析器和企业管理器进行数据库及基本表的定义、删除与修改; 2.掌握索引的建立与删除的方法。 二、实验内容与步骤 (一)建立数据库 通过企业管理器或查询分析器建立学生-课程数据库xskc。 create database xskc on ( name=xskc_data, filename='e:\sjksy\xskc_data.mdf') log on ( name=xskc_log, filename='e:\sjksy\xskc_log.ldf') 注:先在E:盘上建立一个文件夹(例如:E:\sjksy),数据库文件保存到自建的文件夹中。 (二)基本表的定义、修改与删除 1.定义基本表 利用查询分析器或企业管理器创建基本表,并输入数据。 【题1-01】建立一个学生表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。要求“学号”为主键,“姓名”不能为空,“性别”默认值为“男”。 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2) DEFAULT ‘男’, Sage INT, Sdept CHAR(20) ); 说明:在Microsoft SQL Server 2000的查询分析器(Query Analyzer)中使用单条SQL语句,其末尾不需要分号“;”作为命令结尾标记。通常,SQL Server 2000对大多数末尾带有分号的SQL命令都能顺利执行,但对少数的SQL命令,末尾若带分号,则SQL Server 2000会给出错误信息提示。比如,若在实验五的例1的SQL命令末尾加上一个分号“;”,SQL Server 2000就会出现“Incorrect syntax near ';'”的提示,虽然SQL Server 2000实际上已经执行了该命令。 【题1-02】建立课程表Course,它由课程号Cno、课程名Cname、先修课Cpno、Ccredit学分四个属性组成。要求“课程号”为主键,“课程名”属性不能为空。 CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY, Cname CHAR(40) NOT NULL , Cpno CHAR(4), Ccredit INT

实验四 触发器 实验报告

实验四触发器实验报告 徐旭东 11180243 物理112班 一、实验目的 1. 熟悉并掌握R-S、D、J-K触发器的特性和功能测试方法。 2. 学会正确使用触发器集成芯片。 3. 了解不同逻辑功能FF相互转换的方法。 二、实验仪器及材料 1. 实验仪器设备:双踪示波器、数字万用表、数字电路实验箱 2. 器件 74LS00 二输入端四与非门 1片 74LS74 双D触发器 1片 74LS76 双J-K触发器 1片 三、实验内容步骤及记录 1. 基本RS触发器功能测试: 两个TTL与非门首尾相接构成的基本RS触发器的电路。如图5.1所示。

(1)试按下面的顺序在S R 端加信号: d S =0 d R =1 d S =1 d R =1 d S =1 d R =0 d S =1 d R =1 观察并记录触发器的Q 、Q _ 端的状态,将结果填入 下表4.1中,并说明在上述各种输入状态下,RS 执行的是什么逻辑功能? 表4.1 d S d R Q 逻辑功能 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 置1 保持 置0 保持 (2)当d S 、d R 都接低电平时,观察Q 、Q _ 端的状态,当d S 、d R 同时由低电平跳为高电平时,注意观察Q 、Q _ 端的状态,重复3~5次看Q 、Q _ 端的状态是否相同,以正确理解“不定” 状态的含义。 结论: 当d S 、d R 都接低电平时,Q 和Q _ 端的状态不定。 2. 维持- 阻塞型D 触发器功能测试 双D 型正边沿维持-阻塞型触发器74LS74的逻辑符号如图4.2所示。 图中d S 、d R 端为异步置1端,置0端(或称异步置位,复位端),CP 为时钟脉冲端。试按下面步骤做实验: (1)分别在d S 、d R 端加低电平,观察并记录Q 、Q _ 端的状态。 (2)令d S 、d R 端为高电平,D 端分别接高,低电平,用点动脉 冲作为CP ,观察并记录当CP 为0、 、1、 时Q 端状态的变化。 图4.1 基本RS 触发器电 图4.2D 逻辑符号

数据库存储过程与触发器实验报告

南昌航空大学实验报告 二00 年月日 课程名称:数据库概论实验名称:数据库存储过程与触发器 班级:122031 姓名:同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer 2005。 二、实验目的 熟悉不同数据库的存储过程和触发器,重点实践SQL Server2005,掌握SQL Server2005中有存储过程与触发器的相关知识。 三、实验要求 完成实验指导书中p115-7和p132 -4。 四、实验步骤及参考源代码 1.创建与执行存储过程 create procedure C_P_Proc as select distinct https://www.360docs.net/doc/3b15546668.html,o,cna,pna,num from paper,customer,cp where https://www.360docs.net/doc/3b15546668.html,o=https://www.360docs.net/doc/3b15546668.html,o and paper.pno=cp.pno and cna='李涛' or cna='钱金浩' go execute C_P_Proc 2.删除存储过程 drop procedure C_P_Proc 3.创建插入触发器 create trigger TR_PAPER_I ON PAKER12203125 FOR INSERT AS DECLARE @appr float DECLARE @apno int SELECT @appr=ppr,@apno=pno from inserted begin if @appr<0 or @appr is null begin

raiserror('报纸的单价为空或小于!',16,1) update paper set ppr=10 where paper.pno=@apno end end 4.创建删除触发器 create Trigger TR_PAPER_D on PAKER12203125 after delete as declare @ipno char(6) declare @icount int; select @icount= count(*) from deleted,cp where deleted.pno=cp.pno if @icount>=1 begin select @ipno=pno from deleted raiserror('级联删除cp表中的数据',16,1) delete from cp where cp.pno=@ipno end 5.创建修改触发器 create trigger TR_PAPER_U ON PAKER12203125 for update as declare @ippr float select @ippr=ppr from inserted if @ippr<0 or @ippr is null begin raiserror('输入单价不正确',16,1) rollback transaction end 6. 分别对PAKER12203125表进行插入、修改、删除操作 insert into PAKER12203125 (pno,pna,ppr)values('000006','江西日报','1') insert into PAKER12203125 (pno,pna,ppr)values('000007','江南都市报','15.5') delete from PAKER12203125 where pno='000001' update PAKER12203125 set ppr=12.5 where pno='000002' update PAKER12203125 set ppr=-2 where pno='000004' 五、实验结果

相关文档
最新文档