《数据库原理》实验指导书--2011最新版 - 图文(3)

2019-01-05 12:14

DROP PROCEDURE {存储过程名}[,??]

例5-1 对MYDB数据库中的学生表建立一个带SELECT查询语句的存储过程: USE MYDB GO

CREATE PROCEDURE PROC1 @ PARAL CHAR(2) AS

SELECT SNO,SNAME,HEIGHT FROM STUDENT WHERE SEX=@PARAL RETURN

执行所建的过程: USE MYDB

EXECUTE PROC1 ‘女’

二、触发器的设计

触发器是一种特殊的存储过程, 用它来控制关联的表。 1、触发器的建立 语句格式:

CREATE TRIGGER 触发器名 ON {表名|视图名} [WITH ENCRYPTION]

{ {FOR |AFTER |INSTEAD OF} {[DELETE][,INSERT][,UPDATE]} [WITH APPEND] [NOT FOR REPLICATION] AS

[{ IF UPDATE(列名)[{AND|OR} UPDATE(列名)][,??]| IF (COLUMN_UPDATE()?)SQL 语句[,??] }

2、修改触发器

使用ALTER TRIGGER语句,其格式与CREATE TRIGGER语句的格式一致。 3、删除触发器

DROP TRIGGER {触发器名} 例 5-2 建立一个触发器,当有人试图向STUDENT表中添加或修改数据时,触发器发出一条消息(警告!)。

USE MYDB GO

CREATE TRIGGER MESSAGE1 ON STUDENT FOR INSRET,UPDATE AS RAISERROR(‘WARNING!’,10,1) GO

11

实验六 程序设计与小系统开发

实验目的

掌握SQL中的程序设计,了解VFP中面向对象程序设计的基本思想。

实验内容

1、顺序结构程序设计。 2、分支结构程序设计。 3、循环结构程序设计。

4、VFP中面向对象程序设计简介。 5、观看一个小系统实例。 6、设计一个图书管理系统。

实验环境

SQL环境。

实验过程

一、顺序结构程序设计

SQL中顺序结构程序包括的主要语句: * 定义变量(DECLARE等)语句;

* 无结构的语句(对库, 表等操作的语句); * 赋值语句(SET); * SELECT语句;

* BEGIN …… END语句; * WAITFOR语句;

* PRINT语句; * RETURN语句;

* 注释语句(/* …… */) 等.

例6-1: 由键盘输入一个三角形的三条边a,b,c, 编程计算该三角形的周长ZC与面积S。

SQL程序如下: /* 例6-1--SQL */

declare @a float,@b float,@c float,@zc float,@bzc float,@s float; select @a=3,@b=4,@c=5; select

@zc=@a+@b+@c,@bzc=@zc/2,@s=sqrt(@bzc*(@bzc-@a)*(@bzc-@b)*(@bzc-@c));

print ‘zc=’+str(@zc);

12

print ‘s=’+str(@s); return;

运行程序有下面两种方式: * 菜单方式:查询?执行。

* 工具方式: 单击绿色的右三角。 执行后,显示结果:S=6。

二、分支结构程序设计

SQL中分支结构程序包括的主要语句: * IF 语句;

* IF …… ELSE …… 语句; * CASE语句;

* 以上语句的嵌套形式.

例6-2: 判断输入的一个数N是否为负数, 若是, 输出”N<0”及该数. 说明: 本例是简单条件语句程序. SQL程序如下:

/* 例6-2--SQL */ declare @n float; set @n=-8; if @n<0

print 'n<0: '+str(@n); return;

执行后,显示结果:n<0: -8。

例6-3: 判断输入的一个考试分数G是否及格(>=60), 若是, 输出”GOOD!”及该分数, 否则, 输出” NOT PASS……”及该分数. 说明: 本例是复杂条件语句程序. SQL程序如下:

/* 例6-3--SQL */ declare @g float; set @g=88; if @g>=60

print 'GOOD! '+str(@G); else

print 'Not pass ......'; return;

执行后,显示结果:GOOD! 88。

例6-4: 判断输入的一个数S的符号, 若该数是为负数, SF=-1; 若为0, SF=0; 若为正数, SF=1. 输出该数S及结果SF.

说明: 本例是条件语句嵌套程序. SQL程序如下:

13

/* 例6-4--SQL */

declare @s real, @sf int; set @s=-18; if @s<0

set @sf=-1; else

if @s=0

set @sf=0; else

set @sf=1; print 's='+str(@s); print 'sf='+str(@sf); return;

执行后,显示结果: s= -18 sf= -1

例6-5: 生成一个管理系统的菜单,此处只显示菜单项对应的功能,到实际程序,只需换成执行具体的文件即可。

SQL程序如下: /* 例6-5--SQL */ declare @xm char(1); set @xm='1';

print space(20)+'学生信息管理系统'; PRINT ' ';

print space(5)+'1. 输入'+SPACE(30)+'2. 修改'; print space(5)+'3. 查询'+SPACE(30)+'4. 统计'; print space(5)+'5. 打印'+SPACE(30)+'0. 退出'; PRINT ' ';

PRINT SPACE(20)+'请选择项目(0---5): '; PRINT ' '; print (CASE @xm

WHEN '1' THEN '执行输入记录程序...'

WHEN '2' THEN '执行修改表结构与修改记录程序...' WHEN '3' THEN '执行查询程序...' WHEN '4' THEN '执行统计分析程序...' WHEN '5' THEN '执行打印程序...'

WHEN '0' THEN '本程序运行结束, 再见!' ELSE '选择有错误, 请重新选择!!' END);

14

PRINT ' '; return;

执行后,显示结果: 学生信息管理系统 1. 输入 2. 修改 3. 查询 4. 统计 5. 打印 0. 退出 请选择项目(0---5): 执行输入记录程序...

三、循环结构程序设计

例6-6: 求S1=1+2+3+……+1000 SQL程序:

/* 例6-6--SQL */

declare @k int,@s1 int; set @k=1; set @s1=0;

while (@k<=1000) begin

set @s1=@s1+@k; set @k=@k+1; end;

print 's1='+str(@s1); return;

执行后,显示结果: s1= 500500

例6-7: 求P1=1*2*3*……*20 SQL程序:

/* 例6-7--SQL */

declare @k int,@p1 decimal (30,0); set @k=1; set @p1=1; while (@k<=20) begin

set @p1=@p1*@k; set @k=@k+1;

15


《数据库原理》实验指导书--2011最新版 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版初中语文八年级上册课内文言文语段阅读训练试题全册

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: