实验五 存储过程20103191王晓燕

合集下载

网络存储过程实验报告(3篇)

网络存储过程实验报告(3篇)

第1篇一、实验背景随着互联网技术的快速发展,数据存储和传输已成为网络通信中的关键环节。

网络存储过程是数据库中的一种高级应用,它可以将多个SQL语句封装成一个存储过程,从而实现数据库的自动化管理和提高数据库的执行效率。

本实验旨在通过实践,掌握网络存储过程的创建、调用和优化方法。

二、实验目的1. 了解网络存储过程的基本概念和特点。

2. 掌握网络存储过程的创建方法。

3. 熟悉网络存储过程的调用和优化技巧。

4. 通过实验,提高数据库管理能力。

三、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 实验工具:MySQL Workbench四、实验内容1. 创建网络存储过程(1)创建一个名为“select_user_info”的存储过程,用于查询用户信息。

```sqlDELIMITER //CREATE PROCEDURE select_user_info(IN user_id INT)BEGINSELECT FROM users WHERE id = user_id;END //DELIMITER ;```(2)创建一个名为“update_user_info”的存储过程,用于更新用户信息。

```sqlDELIMITER //CREATE PROCEDURE update_user_info(IN user_id INT, IN user_name VARCHAR(50), IN user_age INT)BEGINUPDATE users SET name = user_name, age = user_age WHERE id = user_id;END //DELIMITER ;```2. 调用网络存储过程(1)调用“select_user_info”存储过程,查询用户ID为1的用户信息。

```sqlCALL select_user_info(1);```(2)调用“update_user_info”存储过程,更新用户ID为1的用户信息。

计算机软件及应用数据库函数存储过程触发器数据库安全的实验

计算机软件及应用数据库函数存储过程触发器数据库安全的实验

实验十函数一、实验目的与要求⏹理解什么是标量函数、内嵌表值函数及多语句表值函数。

⏹熟练掌握标量函数、内嵌表值函数、多语句表值函数的定义和调用。

⏹基表如下所示:⏹二、实验内容和步骤1、函数的定义对于CPXS数据库,定义完成如下功能的函数:(1)据产品名称,查询该产品的相关信息;(函数名为FU_CP)use cpxs1gocreate function FU_CP(@productname char(30))returns tableasreturn(select * from CPXSB right join XSS on CPXSB.客户编号=XSS.客户编号right join CP on CPXSB.产品编号=CP.产品编号where 产品名称=@productname)Gouse cpxs1goselect * from FU_CP('彩色电视机')go(2)按某年某季度统计给定产品名称的销售数量及销售金额;分别用名为FU1_CPXS内嵌表值函数和名为FU2_CPXS的多语句表值函数。

use cpxs1gocreate function FU12_CPXS(@year int ,@quarter int, @cpmc char(10))returns tableasreturn(select 产品名称, sum(数量) as 销售数量, sum(销售额) as 销售总额from cpxsb,cpwhere cpxsb.产品编号=cp.产品编号and 产品名称=@cpmcand datepart(year ,销售日期)=@yearand datepart(quarter,销售日期)=@quarter)Gouse cpxs1gocreate function FU2_SPXS(@year int ,@quarter int ,@cpmc char(10)) returns @xsqk table(产品名称char (10),销售数量int ,销售金额int)asbegin insert into @xsqkselect 产品名称,sum(销售额)as 销售总额,sum(数量)as 销售数量from cpxsb,cpwhere cpxsb.产品编号=cp.产品编号and 产品名称=@cpmcand datepart (year ,销售日期)=@yearand datepart (quarter, 销售日期)=@quartergroup by 产品名称returnendgo(3)根据销售商名称,统计其在某年某季度内销售商品名称、数量及金额。

第5章 实验

第5章 实验

第5章实验
set serveroutput on;
1.存储过程(in参数)
⏹创建一个带输入参数的存储过程:根据给定的部门号,输出该部门的所有员工姓名。

⏹调用此存储过程:输出30部门的员工姓名。

2.存储过程(in,out参数)
⏹创建一个带输入与输出参数的存储过程:根据给定的职员号,返回该职员的姓名与部门名。

⏹调用此存储过程:并输出2001职员的员工姓名与部门名。

3.存储过程
⏹创建存储过程:根据给定的员工编号,删除该员工的信息。

若该职员不存在,则触发自定义异常,异常触发时,输出“不存在该员工”。

⏹调用此存储过程:删除编号5002的雇员信息。

(运行两次看结果)
4.存储函数
⏹创建一个存储函数:根据给定的学号,返回该学生的总成绩。

⏹调用此存储函数:输出“05880102”学生的总成绩。

5.存储函数
⏹创建一个存储函数:根据给定的系别名称,返回该系别的学生总人数。

⏹调用此存储函数:输出“计算机系”学生的总人数。

6.存储函数
⏹创建一个存储函数:实现随机输入学生学号,返回该学生的详细信息。

⏹调用此存储函数:输出学号为‘05880101’的详细信息。

北邮大三下数据库实验五mysql版本

北邮大三下数据库实验五mysql版本

北邮⼤三下数据库实验五mysql版本实验报告学院:计算机学院课程名称:数据库系统实验名称:实验五数据库完整性与安全性实验班级:2009211311姓名:schnee学号:实验五数据库完整性与安全性实验1.实验⽬的通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现⽅法,加深对数据完整性的理解。

通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现⽅法,加深对数据库安全性的理解。

2.实验环境操作系统:Microsoft Windows 7旗舰版(32位)。

硬件:容量⾜以满⾜MySQL 5.5安装及后续实验的使⽤。

软件:数据库版本:MySQL 5.53.实验内容及过程3.1.完整性实验3.1.1.分别定义学⽣数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;其实在导⼊txt数据时,我已经定义了各个基表的主键。

CREATE TABLE sc (sno varchar(6) NOT NULL,cno varchar(3) NOT NULL,grade int(11) DEFAULT NULL,PRIMARY KEY (sno,cno)) DEFAULT CHARSET=gbk;Create Table student (sno varchar(6) NOT NULL,sname varchar(6) DEFAULT NULL,sex varchar(2) DEFAULT NULL,bdate datetime DEFAULT NULL,dept varchar(8) DEFAULT NULL,classno varchar(3) DEFAULT NULL,PRIMARY KEY (sno)) DEFAULT CHARSET=gbk;Create Table course (cno varchar(3) NOT NULL,cname varchar(12) DEFAULT NULL,lhour int(11) DEFAULT NULL,credit int(11) DEFAULT NULL,semester varchar(2) DEFAULT NULL,PRIMARY KEY (cno)) DEFAULT CHARSET=gbk;不过为了进⼀步熟悉主键的操作。

实验5 存储过程

实验5 存储过程

实验报告5课程数据库原理与应用实验名称存储过程专业班级学号姓名实验日期:年月日评分一、实验目的1.掌握编写存储过程和用户自定义函数的SQL语法;2.掌握存储过程调用方法,以及参数的传递与返回值。

3.掌握局部变量的声明、赋值和使用。

4.掌握流程控制,if语句、case语句的使用。

5.掌握游标的使用方法。

二、实验内容1.创建存储过程,指定输入参数、输出参数、返回值等。

2.调用存储过程,验证结果。

3.修改、删除存储过程。

4.设计和应用游标进行查询记录的处理。

三、实验环境(1)硬件:PC机(2)软件:Windows 操作系统、MySQL或SQL Server四、实验步骤(描述实验步骤及中间的结果或现象。

在实验中做了什么事情,怎么做的,发生的现象和中间结果)1.创建并执行存储过程。

(1)根据学生表,创建存储过程,根据学号(输入参数)能从学生表中查询学生的姓名、性别和出生年份(调用系统函数year()和now()(选做));CREATE PROCEDURE a_stu(IN iSno char(10))BEGINSELECT Sno,sname,ssex FROM studentwhere Sno=iSno;END;call a_stu(‘200215121’);⏹(2)根据学生表,创建一存储过程,能向学生表中插入一名新学生的记录,学生的学号、姓名、性别……等信息以参数形式给出。

⏹(3)创建一存储过程,根据学生的学号和课程名检索该生该课程的成绩,要求将成绩设计为输出参数的形式;2.设计和应用游标,要求能实现:⏹(1)使用游标,统计每门课程的选修人数,并将结果存入表tb_AvgGrade(该表包括课程号、课程名、选修人数3个属性),没有人选修的课程选修人数设为0。

3.创建用户自定义函数,要求能实现:⏹(1)根据输入的课程号,统计该课程平均成绩,并返回该值。

五、实验结果与讨论(描述最终得到的结果,并进行分析说明,可能的误差原因)六、总结(说明实验过程中遇到的问题及解决办法;新发现或个人的收获;未解决/需进一步研讨的问题或建议新实验方法等)。

实验教案—实验六(存储过程和触发器)(2005)

实验教案—实验六(存储过程和触发器)(2005)
[2]《数据库系统与应用》,赵致格,清华大学出版社,2005
[3]《SQL SEVER数据库原理及应用》,张莉,清华大学出版社,2005
下次实验内容
存储过程的建立、修改和执行,触发器的建立和修改,设计一组操作触发触发器的执行
在A中,提交事务
在A,B窗口分别察看customerid = 'ANTON’的记录,结果如何,为什么?
3、锁的模拟
启动两个查询分析器,分别叫(A,B)
在A中,显式启动事务,察看customerid = 'ANTON'的记录
在B中,显式启动事务,察看customerid = 'ANTON'的记录
在B中,将customerid = 'ANTON’地址更新为’AAAAAA’
1).通过试验,加深学生对事务的基本概念理解语掌握;
2).通过试验,加深学生对并发控制的基本概念理解,认识不正确的并发控制所带来的危害;
3).通过试验,加深学生对锁的基本概念的掌握与理解,认识锁带来的问题;
二、实验环境
硬件:奔腾4处理器,1.8GHz,512M内存
操作系统软件:WindowsXP
数据库系统:SQLServer 2000桌面版
(3)对视图的操作
2、难点:
设计一系列操作触发触发器的执行。
四、仪器设备及用具
硬件:每位同学分配PC机一台
软件:windows环境安装好SQL Server
五、教学过程
(一)实验预习
(1)熟悉SQL中的创建存储过程和触发器的SQL语句
(2)准备好实验所用的数据库及原始数据
(二)实验原理
在查询分析器下利用SQL命令完成对所要求的存储过程的创建和执行,完成触发器的执行和设计相应操作触发触发器的执行。

触发器与存储过程实验

触发器与存储过程实验

实验四触发器与存储过程实验
一、实验目的
使学生加深对触发器和存储过程的创建和使用。

二、实验内容和要求
1.掌握触发器的使用。

2.掌握存储过程的创建、修改和删除;掌握存储过程的执行。

具体内容如下:
(1)触发器的使用
①在数据表“学生”中创建update触发器,级联更新“选课”表相应的记录。

②利用Delete表,将“学生”表中被删除的记录存储到“学生备份”表中,以供日后的数据查询和分析。

(2)存储过程的使用
①在Student数据库中,建立一个存储过程,要求统计计算机系学生的人数,并将人数返回给用户。

②在Student数据库中,建立一个存储过程,要求
●统计成绩大于等于90分学生的人数;
●统计成绩大于等于80分并且小于90分学生的人数,并将人数返回给用户。

三、实验报告要求
1.写出实验的内容与完成的情况。

2.实验中出现的问题和解决方法。

四、注意事项
1.注意存储过程中参数的设置。

2.注意触发器的执行。

五、思考题
1 触发器和存储过程何时执行?
2 触发器能否带参数?。

实验五存储过程、触发器的创建与管理 张俊敏

实验五存储过程、触发器的创建与管理 张俊敏

北华航天工业学院《数据库系统管理》实验报告报告题目:存储过程、触发器的创建与管理作者所在系部:计算机科学与工程系作者所在专业:计算机科学与技术作者所在班级:B08514作者姓名:张俊敏指导教师姓名:侯晓芳完成时间:2010-11-3北华航天工业学院教务处制实验五存储过程、触发器的创建与管理班级:B08514学号:10姓名:张俊敏成绩:一、实验目的1.了解存储过程的概念。

2.了解触发器与一般存储过程的区别。

3.了解存储过程、触发器的优点。

4.掌握创建、执行存储过程、触发器的方法。

5.掌握查看和修改存储过程、触发器的方法。

6.掌握删除存储过程、触发器的方法。

二、实验内容存储过程实验内容:1.新建BOOKS数据库,使用管理控制台创建名称为“图书借阅信息表”的数据表,表结构如下所示。

2.在3和借阅日期显示相应的读者借阅信息,包括读者编号、姓名、图书编码、图书状态和借阅日期。

4.执行存储过程“显示读者借阅信息”,要求显示计算机系2010-10-1的读者借阅信息。

5.使用SQL语言创建一个名为“录入学生信息”的存储过程,要求录入读者编号、姓名、性别和所在部门。

6.执行存储过程“录入学生信息”,录入的学生信息为“98418132”、“张强”、“男”、“外语”。

7.使用SQL语言创建一个名为“修改图书借阅信息”的存储过程,能够根据输入的读者姓名修改其所对应的图书借阅状态。

8.执行存储过程“修改图书借阅信息”,将读者“李明”的所有图书借阅状态修改为续借。

9.使用SQL语言创建一个名为“删除图书借阅信息”的存储过程,能够根据输入的所在部门删除该部门中所有读者的图书借阅信息。

10.执行存储过程“删除图书借阅信息”,将计算机系所有读者的图书借阅信息删除。

11.使用管理控制台查看存储过程“显示读者借阅信息”的源代码。

12.使用系统存储过程查看与存储过程“修改图书借阅信息”相关的数据库对象。

13.使用SQL语言修改存储过程“修改图书借阅信息”,能够根据输入的读者编号修改其所对应的图书借阅状态。

数据库系统原理存储过程实验

数据库系统原理存储过程实验

数据库系统原理实验五存储过程(4课时)实验过程:1.预习7.2.9节2.教师补充讲解存储过程知识3.学生根据实验报告进行实验附:创建数据库和数据表、添加数据的语句:create database shiyan5GOuse shiyan5create table students(sno char(4)primary key,sname char(8),ssex char(2))insert into students values('0001','李好','男')insert into students values('0002','张灵','女')insert into students values('0003','刘文刚','男')insert into students values('0004','孟蕾','女')create table courses(cno char(3)primary key,cname char(20))insert into courses values('001','计算机基础')insert into courses values('002','数据库')create table reports(sno char(4),cno char(3),grade numeric(5,1),primary key(sno,cno),foreign key(sno)references students(sno),foreign key(cno)references courses(cno))insert into reports values('0001','001',90)insert into reports values('0001','002',88)insert into reports values('0002','001',95)insert into reports values('0002','002',92)insert into reports values('0003','001',80)insert into reports values('0003','002',82)insert into reports values('0004','001',85)insert into reports values('0004','002',76)实验报告专业:计算机科学与技术课程:数据库系统原理。

实验五 存储过程和触发器

实验五 存储过程和触发器

实验五触发器、存储过程操作实验本实验需要2学时。

请大家先根据“触发器.doc”文档完成相关操作,再进行本次实验。

介绍完“存储过程”后,需上交本次实验报告。

一、实验目的(1)掌握SQL Server中的触发器的使用方法;(2)掌握存储过程的操作方法。

二、实验内容1. 创建、查看、修改和删除触发器。

2. 创建、查看、修改和删除存储过程。

三、实验方法1. 触发器的操作(1)建立触发器方法一:使用企业管理器首先,打开企业管理器,定位数据库并找到要创建触发器的表;然后,右击该表名,在弹出的快捷菜单中选择“设计表”,在打开的“设计表”窗口中单击按钮,打开如图1所示窗口。

图1 触发器属性窗口最后,在触发器属性窗口中输入触发器的内容,并单击“确定”按钮。

方法二:使用CREATE TRIGGER语句语法:CREATE TRIGGER <触发器名>ON { <表名> | <视图名>}{ FOR | INSTEAD OF | AFTER}{ [UPDATE] [,] [INSERT] [,] [DELETE]}AS<SQL 语句块>(2)查看触发器方法一:使用企业管理器方法二:使用T-SQL语句- sp_help <触发器名>- sp_helptext <触发器名>- sp_depends <触发器名>(3)修改触发器方法一:使用企业管理器方法二:使用ALTER TRIGGER语句语法:ALTER TRIGGER <触发器名>ON { <表名> | <视图名>}{ FOR | INSTEAD OF | AFTER}{ [UPDATE] [,] [INSERT] [,] [DELETE]} AS<SQL 语句块>(4)删除触发器方法一:使用企业管理器方法二:使用DROP TRIGGER语句语法为:DROP TRIGGER <触发器名>2. 存储过程的操作(1)建立存储过程方法一:使用建立存储过程向导方法二:使用企业管理器方法三:使用SQL语句(CREATE PROCEDURE)语法:CREATE PROC[EDURE] <存储过程名>[{@<参数名> <数据类型>}]AS {<SQL语句> | <语句块> }(2)查看存储过程方法一:使用企业管理器方法二:使用SQL语句(系统存储过程)- sp_help <存储过程名>- sp_helptext <存储过程名>- sp_depends <存储过程名>(3)修改存储过程方法一:使用企业管理器方法二:使用SQL语句(ALTER PROCEDURE)语法为:ALTER PROC[EDURE] <存储过程名>[{@<参数名> <数据类型>}]AS {<SQL语句>| <语句块> }(4)删除存储过程方法一:使用企业管理器方法二:使用DROP PROCEDURE语句语法为:DROP PROCEDURE <存储过程名>四、实验内容1、在学生表student上建立一个DELETE类型的触发器tr_delete,触发动作是显示信息“已删除学生表中的数据”。

实验五 存储过程与触发器

实验五  存储过程与触发器

北京林业大学2013学年—2014学年第1学期数据库原理与应用实验报告书专业:信息管理与信息系统班级:姓名:学号:实验地点:计算机中心机房任课教师:实验题目:实验五存储过程与触发器实验环境: Windows 200X Server、SQL Server 200X实验目的、内容、实现方法、实验结果及结论分析等:1. 创建触发器给选课表SC创建触发器trigger_sc1,功能如下:(1)使用SQL的ALTER语句给学生表S增加一个字段sum_credit,数据类型int。

use sdbalter table s add sum_credit int【分析】用alter创建一个触发器,在s表中增加一个字段sum_credit,add表示增加的字段,int是该字段的数据类型。

(2)给选课表SC创建一个插入触发器和一个删除触发器。

功能是当向表SC中插入1条记录时,自动在S表中总学分sum_credit中增加相应的学分; 当在表SC中删除1条记录时,自动在S表中总学分sum_credit中减去相应的学分。

插入触发器:use sdbgocreate trigger trigger_sc1on scfor insertasdeclare @xh char(4),@kh char(2),@xf intselect @xh = sno,@kh = cnofrom insertedselect @xf = period/20from cwhere cno=@khupdate sset sum_credit = isnull(sum_credit,0)+@xf where sno = @xhgo删除触发器:use sdbgocreate trigger trigger_sc2on scfor deleteasdeclare @xh char(4),@kh char(2),@xf intselect @xh = sno,@kh = cnofrom deletedselect @xf = period/20from cwhere cno=@khupdate sset sum_credit = isnull(sum_credit,0)-@xf where sno = @xhgo【分析】一个表中可以创建几个触发器,此处要求给sc表创建两个触发器:删除触发器和插入触发器。

实验五

实验五

实验五MySQL的存储过程一、实验目的:存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。

存储过程分为两类:1. 系统提供的存储过程; 2. 用户自定义存储过程。

存储过程具有的优点: 1. 存储过程允许标准组件式编程; 2. 存储过程能够实现较快的执行速度; 3. 存储过程能够减少网络流量; 4. 存储过程可被作为一种安全机制来充分利用。

存储过程是可复用的组件!想象一下如果你改变了主机的语言,这对存储过程不会产生影响,因为它是数据库逻辑而不是应用程序。

存储过程是可以移植的!本次实验了解 MySQL 存储过程的创建、修改和删除的方法和步骤,掌握在 Navicat for MySQL 中对存储过程的进行创建、修改和删除,掌握在 MySQL Command Line Client 中调用带参数和不带参数的存储过程。

二、实验要求:1、实验前:预习实验内容,学习相关知识。

2、实验中:按照实验内容要求进行实验,做好实验记录。

3、实验后:分析实验结果、总结实验知识,得出结论,按格式写出实验报告。

在整个实验过程中,要独立思考、独立按时完成实验任务。

三、实验步骤:1、创建及调用不带参数的存储过程:(1)双击桌面Navicat for MySQL 快捷方式,连接到mysql 数据库上。

点击查询->新建查询,输入如下语句,确定MySQL 数据库版本: Select VERSION();然后点击运行。

输入如下语句,创建示例数据库:CREATE DATABASE db5536; USE db5536; 点击查询->新建查询,输入如下语句,创建示例表和插入演示数据:CREATE TABLE cqupt (s1 INTEGER); INSERT INTO cqupt V ALUES (5);(2)MySQL Command Line Client 中创建存储过程:在登录界面输入密码mysql。

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

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

数据库基础与实践实验报告实验五存储过程和触发器班级:惠普测试142学号:**********姓名:***日期:2016-11-141 实验目的:1)掌握SQL进行存储过程创建和调用的方法;2)掌握SQL进行触发器定义的方法,理解触发器的工作原理;3)掌握触发器禁用和重新启用的方法。

2 实验平台:操作系统:Windows xp。

实验环境:SQL Server 2000以上版本。

3 实验内容与步骤利用实验一创建的sch_id数据库完成下列实验内容。

1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。

存储过程定义代码:CREATE PROCEDURE JSXX_PROCASSELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND o=o存储过程执行语句与执行结果截图:EXECUTE JSXX_PROC2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。

存储过程定义代码:CREATE PROCEDURE XM_PROC @sname VARCHAR(100)ASBEGINIF EXISTS(SELECT NULL FROM S WHERE sn=@sname)SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE o=o AND SC.sno=S.sno ANDS.sn=@snameELSEPRINT'无该姓名的同学。

'END运行截图:3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业),统计并显示该专业各年龄段男、女生人数。

如果没有该专业,则显示“无此专业”。

存储过程定义代码:CREATE PROCEDURE XBNL_PROC@departName VARCHAR(30)='计算机',@begin INT,@end INTASDECLARE @numOfBoys INTDECLARE @numOfGirls INTDECLARE @d# VARCHAR(3)DECLARE @result VARCHAR(50)BEGINSELECT @d# = dno FROM D WHERE dn=@departNameIF @d# IS NOT NULLBEGINSELECT @numOfBoys =COUNT(sno)FROM S WHERE age BETWEEN @begin AND @end AND dno=@d# AND sex='男'SELECT@numOfGirls =COUNT(sno)FROM S WHERE age BETWEEN@begin AND@end AND dno=@d# AND sex='女'SET @result = @departName+'专业年龄在'+CAST(@begin AS VARCHAR(3))+'-'+CAST(@end AS VARCHAR(3))+'之间的男生有'+CAST(@numOfBoys AS VARCHAR(3))+'人,'+'女生有'+CAST(@numOfGirls AS VARCHAR(3))+'人'ENDELSESET @result='无此专业。

新编[计算机]实验五 数据完整性与存储过程

新编[计算机]实验五  数据完整性与存储过程

实验五数据完整性与存储过程一、数据完整性1.实验目的1)掌握域完整性的实现方法。

2)掌握实体完整性的实现方法。

3)掌握参照完整性的方法。

2.实验内容1)使用界面方式创建规则对象,并绑定到列,实现域完整性。

2)为表添加一个标识列,实现实体完整性。

3)为两表建立关联,实现参照完整性。

3.实验步骤1)实现域完整性①启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。

②选择要创建规则对象的数据库文件夹,并在右边的对象窗口中选择其中的“规则”对象。

选择“操作”菜单中的“新建规则”命令,打开“规则属性”对话框。

③设置形如“(区号)电话号码”的联系电话格式检查规则,单击“确定”按钮,完成规则对象的定义。

④打开“规则”对象,并选中刚才定义的规则对象RO_联系电话格式。

选择“操作”菜单中的“属性”命令,打开“规则属性”对话框。

⑤单击“绑定列”按钮,打开“将规则绑定到列”对话框,完成到列的绑定,关闭“规则属性”对话框。

⑥在对象窗口中选择并打开其中的“表”对象,选中XSQK表并打开。

⑦在表中分别插入两行新记录,其中一行的联系电话格式为指定的格式,另一行的联系电话格式为非法格式。

当插入第一行时,系统成功地插入了新数据行,但无信息返回;而在插入第二行时系统提示错误信息,拒绝接受非法格式的联系电话,从而保证了域完整性。

⑧单击“确定”按钮,取消插入,并关闭表的数据记录窗口。

2)实现实体完整性①在对象窗口中选择并打开其中的“表”对象,选中KC表。

②选择“操作”菜单中的“设计表”命令,打开表编辑器窗口。

③添加一个标识列,种子值为1,递增量也为1。

④点击快捷工具拦上的快捷按钮,完成标识列的添加,然后关闭编辑窗口。

⑤选中KC表并打开表的数据记录窗口。

可以看到,系统自动为每行的标识列填充了值,并从1开始,依次递增,这样,表中的每一数据行都可以由标识列唯一标识,实现了实体完整性。

⑥关闭表的数据记录窗口。

山东建筑大学 计算机学院 实验报告

山东建筑大学 计算机学院 实验报告

山东建筑大学计算机学院实验报告
班级:计科122班姓名:李燕学号:20121111046 实验成绩:
课程:数据库同组者:实验日期:
实验5存储过程和触发器
一.实验内容
1.创建一个InsertS的存储过程,向S中插入一条记录,新记录的值由参数提供。

如果未提供所在城市的值,由参数的默认值‘济南’代替。

并验证该存储过程的执行情况。

2.创建一个InsertS的存储过程,向S中插入一条记录,新记录的值由参数提供。

如果未提供所在城市的值,由参数的默认值‘济南’代替。

并验证该存储过程的执行情况。

3.3创建一个InsertS的存储过程,向S中插入一条记录,新记录的值由参数提供。

如果未提供所在城市的值,由参数的默认值‘济南’代替。

并验证该存储过程的执行情况。

4.4在S表中增加一列属性,属性名为AvgQty,表示供应商的平均供应数量,创建一个触发器,使得当向SPJ表中插入数据时,AvgQty也做相应修改。

5创建一个供应历史表hspj(sno,pno,jno,qty,username,modifydate),记录供应变化情况。

实现这样的约束控制:如果spj表中的某条供应记录的qty发生改变,就在hspj表中插入一行历史记录,其中username为操作的用户名,modifydate为操作的时间。

二.实验总结
三.通过此次实验加深了对存储过程和触发器的理解,掌握了存储过程和触发器的创建和使用,理解它们的执行方式的不同,理解并体会了存储过程和触发器的区别和联系。

MySQL实验报告5(存储过程与函数)(1)(1)

MySQL实验报告5(存储过程与函数)(1)(1)

四、实验内容及程序代码1.sch数据表的表结构如表7.1所示,sch表的数据如表7.2。

表7.1 sch 表结构字段名数据类型主键外键非空唯一自增id INT(10) 是否是是否name V ARCHAR(50) 否否是否否class V ARCHAR(50) 否否是否否表7.2 sch 表的内容id name class1 李明C12 小梅C21)建表sch并插入数据。

2)创建一个存储函数,用来统计表sch中的记录数。

delimiter $$create PROCEDURE count_sch5(out size int)BEGINselect count(*) into size from sch;END$$delimiter;3)创建一个存储过程,通过调用存储函数的方法来获取表sch中的记录数和sch表中id 的和。

delimiter $$create PROCEDURE count_sch2(out s_a int,out s_id int)BEGINselect count(*) into s_a from sch;select sum(id) as s_id from sch;END$$delimiter;2.创建一存储过程insert_student_condition_user,利用自定义错误触发条件定义,当插入学生的性别不是“男”或“女”时结束存储过程,并提示“学生性别不正确”。

表7.3 student表结构字段名数据类型主键外键非空唯一自增sno Char(10) 是否是是否sname VARCHAR(20) 否否是否否ssex CHAR(2) 否否是否否Sage smallint 否否是否否Sdept VARCHAR(30) 否否是否否enterdate datetime 否否是否否delimiter $$create PROCEDURE insert_student_condition_user(in sno int,in sname VARCHAR(20),in ssex varchar(2),in sage int,in sdept varchar(30))BEGINDECLARE continue handler for sqlstate '42S02' select '学生性别不正确';if ssex='男' or ssex='女' THENinsert into student values(sno,sname,ssex,sage,sdept);end if;end$$ delimiter;call insert_student_condition_user(1,'pqw','他',20,'C1');call insert_student_condition_user(4,'pqw','1',20,'C1');drop PROCEDURE insert_student_condition_user;3.创建一存储过程update_student_borthyear,在学生表(表结构如表7.3)中添加字段”borthyear”(出生年份),在存储过程中利用游标,通过学生年龄计算出出生年份并修改表中对应字段。

数据库系统原理实验指导书参考答案计本1电商

数据库系统原理实验指导书参考答案计本1电商

浙江树人大学信息科技学院《数据库系统原理》实验指导书适合专业:计算机科学与技术本科专业编写部门:电子商务教研室编写日期:2012.02实验一:SQL Server 2005服务器管理... 错误!未定义书签。

实验二:创建和管理数据库.............. 错误!未定义书签。

实验三:数据定义 .............................. 错误!未定义书签。

实验四:数据更新 .............................. 错误!未定义书签。

实验五:数据查询1——简单查询... 错误!未定义书签。

实验六:数据查询(2)—连接查询错误!未定义书签。

实验七:数据查询(3)—综合........ 错误!未定义书签。

实验八:视图 ...................................... 错误!未定义书签。

实验九:约束、默认、规则.............. 错误!未定义书签。

实验十:存储过程 .............................. 错误!未定义书签。

实验十一:触发器(1).................... 错误!未定义书签。

实验十二:触发器(2).................... 错误!未定义书签。

实验十三:安全性管理 ...................... 错误!未定义书签。

实验十四:数据库的备份与还原...... 错误!未定义书签。

实验一:SQL Server 2005服务器管理一、实验目的通过实验使学生掌握SQL Server 2005数据库服务器启动、暂停、停止的方法;掌握SQL Server 2005数据库服务器的注册方法。

二、原理解析1、SQL Server 2005服务器注册注册服务器就是在SQL Server Management Studio中登记服务器,然后把它加入到一个指定的服务器组中,并在SQL Server Management Studio中显示SQL Server服务器的运行状态和在SQL Server Management Studio连接时自动启动SQL Server服务器。

奚通 (4)

奚通 (4)

安庆职业技术学院电子信息系
实验报告(SQL Server)姓名:奚通学号:1110332017
二、执行上述存储过程
三、查看上述存储过程
四、修改和删除上述存储过程
五、带参数的存储过程
(1)使用输入参数
根据读者编号,查询读者的当前借书的记录\
(2)使用输出参数
根据读者的编号,查询读者的到期的图书个数
(3)通过return返回值
根据指定的图书编号,查找是否借出,并将其值返回
六、创建借书存储过程borrowbook(p215)
七、创建还书存储过程returnbook(p216)
四、操作过程及实验结果
详细记录在操作过程中出现的问题及解决方法。

记录实验的结果(或截图,以供教师审阅。

)。

实验7_存储过程应用初步

实验7_存储过程应用初步

《数据库原理及应用》课程实验报告实验名称存储过程应用初步实验序号实验日期班级学号姓名院系计算机科学与信息工程学院专业计算机科学与技术指导教师成绩一、实验目的和要求1. 理解存储过程的作用;2.初步掌握存储过程的创建方法;3.初步掌握存储过程的执行方法。

4. 这个实验所涉及的容不属于《数据库原理及应用》课知识,是扩充知识,主要是为即将到来的课程设计做部分准备工作。

二、实验预习容1.上网查找资料---存储过程是数据库中的一个怎样的对象;主要应用在哪些方面;存储过程的类型等基本知识。

2.创建存储过程的方法,包括有参数和无参数的存储过程。

其中可能涉及到变量、系统函数SQL控制流语句等容。

三、实验项目摘要1.针对“图书-借阅”涉及的5表,自行设计3个存储过程(要有实际意义),执行它们,看结果是否是你所需要的;2.针对“供应”涉及的4表,设计3个存储过程(要有实际意义),执行它们,看结果是否是你所需要的。

说明:设计的存储过程不可以太过简单(如只有一个简单查询),要会设计带参数的存储过程。

同学们可以根据自己对知识的掌握情况,自行决定如何设计。

四、实验结果与分析1.(1)创建(无参数)查询‘文学’类图书中出版时间最早的最早的图书信息的存储过程并执行:1、书写T-SQL语句,创建过程一:CREATE PROCEDURE GUOCHENG_ONE AS/*新建过程一*/SELECT图书名,作者,FROM BOOKS,BOOKCATEGORYWHERE出版日期IN(SELECT MIN(出版日期)FROM BOOKSWHERE BOOKS.种类编号=BOOKCATEGORY.种类编号AND种类名称='文学')/*T-SQL语句*/GOII、执行过程一:EXECUTE GUOCHENG_ONE /*执行该存储过程功能*/(或者:EXEC GUOCHENG_ONE )(2)(单个参数)查询:设置一个存储过程GUOCHENG_TWO,通过指定可变的读者,显示其所借阅的图书的图书名:I、先以一个“具体的”书写T-SQL语句,检验语法错误;无误后以变量代替“具体的”,进而创建过程二:SELECT图书名FROM BOOKSWHERE图书编号IN(SELECT图书编号FROM BORROWWHERE读者编号IN(SELECT读者编号FROM READERSWHERE='于志强'))CREATE PROCEDURE GUOCHENG_TWO NAME varchar(10)AS/*新建过程二*/SELECT图书名FROM BOOKSWHERE图书编号IN (SELECT图书编号FROM BORROWWHERE读者编号IN (SELECT读者编号FROM READERSWHERE=NAME ))GO/*过程功能*/II、执行上述过程,即随意指定读者,查询其借阅图书的图书名:EXECUTE GUOCHENG_TWO NAME='明'/*执行该存储过程功能*/EXECUTE GUOCHENG_TWO NAME='明'/*执行该存储过程功能*/(3)设置(多个参数)插入一条记录的过程;完成后并执行该过程将:“读者编号:1243;:翟萌;种类编号:2;工作单位:交通大学;住址:桃苑小区3-415;联系:83839228;登记日期:2014-04-15;性别:男”这些容添加到到表READERS中:I、创建向表READER插入记录的过程如下:CREATE PROCEDURE GUOCHENG_THREEREADERS_NUMBER nchar(10),NAME varchar(20),RANGE_NUMBER int,COMPANY varchar(50), ADD varchar(100),TEL varchar(20),DATE datetime,SEX char(2)AS/*新建过程三*/INSERT INTO READERS VALUES(READERS_NUMBER,NAME,RANGE_NUMBER ,COMPANY,ADD,TEL,DATE,SEX)/*过程功能*/GOII、执行该过程,将记录插入到表中:EXECUTE GUOCHENG_THREEREADERS_NUMBER='1243',NAME='翟萌',RANGE_NUMBER='2',COMPANY='交通大学', ADD='桃苑小区-415',TEL='83839228',DATE='2014-04-15',SEX='男'/*执行该存储过程功能*/2.(1)创建带输出参数的存储过程,要求求出零件表P中所有蓝色零件重量的平均值,并将结果通过输出变量返回给用户:I、创建具有上述功能的带输出参数的存储过程:CREATE PROCEDURE GUOCHENG_FOUR PJZ INT OUTPUTAS/*创建过程四*/SELECT PJZ=AVG(WEIGHT)FROM零件表PWHERE COLOR ='蓝'/*过程功能*/GOII、执行该过程:DECLARE PJZ INTEXECUTE GUOCHENG_FOUR PJZ OUTPUTPRINT'零件表中所有蓝色零件的平均重量为'+STR(PJZ)GO(2)创建带输入输出参数的存储过程,要求求出“用户指定的供应商”提供给“用户指定的工程”的”所有零件重量”的平均值,并将结果通过输出变量返回给用户:I、创建具有上述功能的带输入输出参数的存储过程:CREATE PROCEDURE GUOCHENG_FIVE GYSN NCHAR(10),GCN NCHAR(10),PJZ INT OUTPUTAS/*创建过程四*/SELECT PJZ=AVG(WEIGHT)FROM零件表PWHERE PN IN(SELECT PNFROM供应关系表SPJWHERE SN IN(SELECT SNFROM供应关系表SPJWHERE SN=GYSN)AND JN IN(SELECT JNFROM供应关系表SPJWHERE JN=GCN))/*过程功能*/GOII、假设用户指定供应商为S4,工程为J4,执行上述过程:DECLARE PJZ INTEXECUTE GUOCHENG_FIVE 'S5','J4',PJZ OUTPUTPRINT'零件的平均值为'+STR(PJZ)GO(3)(无参数)更新“供应商表”用户指定值的供应表信息:I、创建具有上述功能的存储过程:CREATE PROCEDURE GUOCHENG_SIX GYSN NCHAR(10),GYSNAME NCHAR(10),CSM VARCHAR(50)AS/*创建过程六*/UPDA TE供应商表SSET SNAME=GYSNAME,CITY=CSMWHERE SN=GYSN /*过程功能*/GOII、指定S4,修改名称为“SN8”,城市为“土耳其”:附:之前实验报告修改实验五1.1)查询“计算机科学”这类图书中的定价最高的图书书名和定价;SELECT图书名,价格AS定价FROM Books,BookCategoryWHERE价格=(SELECT MAX(价格)FROM BooksWHERE Books.种类编号=BookCategory.种类编号AND种类名称='计算机科学')实验六3.导入“图书借阅”5表的关系图;导入供应商等四表的关系图。

巧用存储过程

巧用存储过程

巧用存储过程
谢华
【期刊名称】《怀化学院学报》
【年(卷),期】2003(022)005
【摘要】在编写Client/server系统中,应用程序访问后台数据库有多种方式.通过示例介绍,使用存储过程能较快地访问后台数据库,实现数据的高速交换.
【总页数】2页(P84-85)
【作者】谢华
【作者单位】怀化学院,计算机系,湖南,怀化,418008
【正文语种】中文
【中图分类】TP311.135.4
【相关文献】
1.巧用游戏巧用故事巧用儿歌 [J], 夏婷婷
2.巧用存储过程进行数据处理 [J], 许菱; 秦晓海; 孔令新
3.测试你的存储过程——采取这些步骤来塑造你的存储过程 [J], DANSawyer 毛颉
4.汽油存储过程VOCs排放影响因素研究 [J], 王燕军;吉喆;谢琼;滕琦;唐祎骕;白艳英
5.MySQL存储过程在软件测试中的应用 [J], 林慧
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五存储过程
学号:20103191 姓名:王晓燕专业:应用物理班级:2010232
一、实验目的
(1)掌握T-SQL流控制语句。

(2)掌握创建存储过程的方法。

(3)掌握存储过程的执行方法。

(4)掌握存储过程的管理和维护。

二、实验内容
1、创建简单存储过程
(1)创建一个名为stu_pr的存储过程:该存储过程能查询出051班学生的所有资料,包括学生的基本信息、学生的选课信息(含未选课同学的信息)。

要求在创建存储过程前请判断该存储过程是否已创建,若已创建则先删除,并给出“已删除!”信息,否则就给出“不存在,可创建!”的信息,并创建该存储过程。

存储过程的创建语句:if exists (select name from sysobject where name=’stu_pr’and type=’p’)
Drop procedure stu_pr
go
create procedure stu_pr
As select * from student left outer join sc on(student.sno=sc.sno)
go
存储过程的执行测试结果:
2、创建带参数的存储过程
(1)创建一个名为stu_proc1的存储过程:查询某系、某姓名的学生的学号、姓名、年龄,选修课程名、成绩。

系名和姓名在调用该存储过程时输入,其默认值分别为“%”与“林%”。

执行该存储过程,用多种参数加以测试。

存储过程的创建语句:create procedure stu_proc1 @sdept char(10)=”%”,@sname varchar(8)=”林%“
As select student.sno,sname,datediff(year,birth,getdate())
age,ame,grade
From student,sc,course
Where syudent.sno=sc.sno and o=o and sdept=@sdept and sname=@sname
go
存储过程的执行测试结果:
(2)创建一个名为student_sc的存储过程:可查询出某学号段的同学的学号、姓名、总成绩。

(学号起始号与终止号在调用时输入,可设默认值)。

执行该存储过程。

存储过程的创建语句:create procedure student_sc @start char(8),@end char(8) As select student.sno,sname,sum(grade)
From student,sc
Where student.sno between @start and @end
And student.sno=sc.sno
group by student.sno,sname
go
存储过程的执行测试结果:
3、创建带输出参数的存储过程
(1)创建一个名为course_average的存储过程,可查询某门课程考试的平均成绩。

平均成绩可以输出,以便进一步调用。

存储过程的创建语句:create procedure course_average @cno char(3),@aver int output
As select @aver=average(grade) from sc where cno=@cno
go
declare @aver int
execute course_average '001',@aver output
print'该课程的平均分:'+cast(@aver as char(8))
存储过程的执行测试结果:
(2)创建一执行该存储过程的批处理,要求当平均成绩小于60时,显示信息为:“XX课程的平均成绩为:XX,其平均分未达60分”。

超过60时,显示信息为:“XX课程的平均成绩为:XX”。

批处理语句:declare @aver int
execute course_average '002',@aver output
if @aver<60
print'001 课程的平均分为:'+cast(@aver as char(8))+'其平均分未达'
else print'该课程平均分大于'
执行测试结果:
4、创建带重编译及加密选项的存储过程
创建一个名为update_sc、并带重编译及加密选项的存储过程,可更新指定学号、指定课程号的学生的课程成绩。

(学号、课程号由调用时输入)
存储过程的创建语句:create procedure update_sc @sno char(8),@cno char(3) With encryption
As update sc set grade='60'where sno=@sno and cno=@cno
存储过程的执行测试结果:
5、使用T-SQL语句管理和维护存储过程
(1)使用sp_helptext查看存储过程student_sc的定义脚本。

结果:
(2)使用select语句查看student_sc存储过程的定义脚本。

(提示:通过查询表sysobjects和表syscomments,存储过程的名称保存在表sysobjects的name列,定义脚本保存在表syscomments的text列。


(select text from sysobjects, syscomments where name=’student_sc’and sysobjects.id=syscomments.id)
结果:
(3)将存储过程stu_pr改为查询学号为2011001的学生的详细资料。

(提示:使用alter procedure语句修改)
结果:alter procedure stu_pr
As select * from student where sno=’20110001’
(4)删除存储过程stu_pr。

(提示:使用drop procedure语句删除)
结果:drop procedure stu_pr
6、使用SQL Server Management Studio管理存储过程
(1)在SQL Server Management Studio中重新创建刚删除的存储过程stu_pr。

结果:create procedure stu_pr
As select * from student where sno=’20110001’
(2)查看存储过程stu_pr,并将该过程修改为查询051班女生的所有资料。

结果:execute sp_helptext stu_pr
Union
Alter procedure stu_pr
As slect * from student where classno=’051’ and sex=’女‘
(3)删除存储过程stu_pr。

结果:
11。

相关文档
最新文档