必威体育Betway必威体育官网
当前位置:首页 > IT技术

SQL——存储过程

时间:2019-10-25 10:45:47来源:IT技术作者:seo实验室小编阅读:77次「手机版」
 

sql 存储过程

存储过程:存储在数据服务器端执行的一组T-sql语句的集合。(相当于函数

1.①在stuinfo数据库中创建一个存储过程p1,查询指定学号的学生的姓名和平均分,要求姓名和平均分使用返回参数。

②执行该存储过程查询学号为101的学生的姓名和平均分。

		create procedure select_name_avg 
		@stu_no   char(5),
		@stu_name char(10) output,
		@stu_greed float output
		as 
			begin
				select @stu_name = sname, @stu_greed = AVG(degree)
				from score, student
				where student.sno = @stu_no and student.sno = score.sno
				group by student.sno, student.sname
			end
		declare @stu_n char(10);
		declare  @stu_d float;
		execute select_name_avg '101', @stu_n output, @stu_d output;
		select @stu_n, @stu_d

2.①在stuinfo数据库中创建存储过程P2,根据指定的学号和课程号判断成绩等级(A、B、C、D、E) (如果degree>=90则为A,依次类推,不及格为E)。

②执行该存储过程查看学号为101、课程号为3-105的成绩等级。

	create procedure p2
	@stu_no char(5),
	@stu_co char(6),
	--@stu_de float,
	@stu_re char(5) output
	as
		begin 
			declare @stu_de float
			select  @stu_de = degree
			from score
			where sno = @stu_no and cno = @stu_co
		end
		begin
			if(@stu_de < 60)			set @stu_re = 'E';
			if(@stu_de between 60 and 70)set @stu_re = 'D';
			if(@stu_de between 70 and 80) set @stu_re = 'C';
			if(@stu_de between 80 and 90) set @stu_re = 'B';
			if(@stu_de >= 90)				set @stu_re = 'A';
		end	 
		declare @x  char(5)
		execute p2 '101', '3-105', @x output
		select @x

3.①在stuinfo数据库中创建存储过程P3,检查指定学号的学生是否有选课。有就输出其姓名、课程名和成绩,没有就输出“该生无选课”。

②执行该存储过程分别查看学号为101和888学生的选课情况。

create procedure p3
		@stu_no char(5)
		as 
			begin
				declare @c char(6) 
				select @c = cno
				from score
				where sno = @stu_no
			end
			begin 
				if(@c is null) print '该学生未选课'
				else 
					select sname, cname, degree
					from student, score, course
					where student.sno = @stu_no and student.sno = score.sno and score.cno = course.cno
			end
		execute p3 '101';
		execute p3 '888'

4.①在orderManagement数据库中创建存储过程P5,查询指定年份的销售总额。

②执行该存储过程查看2001年的销售总额。要求执行完存储过程后按如下格式输出数据:

2001年的销售总额:

----------------------------

******元

	create procedure p5
	@y char(5)
	as 
		begin
			declare @tot_m int
			select @tot_m = SUM(单价 * 数量)
			from order_detail, order_list
			where order_detail.订单号 = order_list.订单号 and year(order_list.订购日期) = @y
		end
		begin
			print @y + '年的销售总额:';
			print '-------------------';
			print @tot_m ;
		end
	execute p5 '2001'

5.①在OrderManagement数据库中创建存储过程P6,修改指定订单号和器件号的单价。

②执行该存储过程将订单号为OR-01C、器件号为P1001的单价修改为1000。

create procedure p6
	@dno char(6),
	@qno char(5),
	@mon int
	as
		begin
		    update order_detail
		    set 单价 = @mon
		    where  订单号 = @dno and 器件号 = @qno
		end
	execute p6 'OR-01C', 'P1001', 1000;

6.①在OrderManagement数据库中创建存储过程P7,查询订单中至少订购了“cpu P4 1.4G”和“CPU P4 1.4G”这两种器件的订单号。

②执行该存储过程。

	create procedure p7
	as
	begin
		select distinct 订单号
		from order_detail
		where  订单号 in(
			select 订单号
			from order_detail
			where 器件名 = 'CPU P4 1.4G'
		) 
		and 订单号 in(
			select 订单号
			from order_detail
			where 器件名 = '内存'
		)
	end
	execute p7 

文章最后发布于: 2018-12-13 21:01:07

相关阅读

MYSQL使用PMM进行性能监控

文章目录简介安装安装PMMServerPMM client 安装使用pmm-adminOPTIONSpmm-admin add查看各种信息是否能够连接pmm服务器获取PMM客

MySQL数据库--命令行操作

查看服务器mysql服务有没有开启: ps -ef | grep mysql 登录到MySQL: mysql -h 主机名 -u 用户名 -p -h : 该命令用于指定客户

软文写作培训:写作是一个挖需求、给方案的过程

写作是一个挖需求、给方案的过程其次,无疑,软文是具有很明显目标的,大多数软文写手,本质是坐在键盘后面的指挥者,需要挑逗动机、引发需

mssql2005数据导入mysql

SQL SERVER数据导入MYSQL 工具: Navicat for MySQL  1,创建目标数据库 点击创建好的目标数据库kdd表一项,在右边会出现导入向导 选

虚拟存储器

一.虚拟存储器的基本概念 1,常规存储器管理不足的原因:   1)常规存储器管理方式的特征 一次性: 作业在运行前一次性地全部装入内存

分享到:

栏目导航

推荐阅读

热门阅读