H埋土数据库实验(56)

系列文章目录

数据库实验5

数据库实验6

文章目录

  • 数据库实验5
  • 数据库实验6

1.实验目的

(1)掌握SQL插入、修改、删除语法。

(2)掌握SQL Server查询分析器的使用方法;

2.实验内容

1. 创建1门课程“CS-001”,其名称为“Weekly Seminar”,学分为0.5

2.创建课程“CS-001”在2009年秋季学期的一个课程段,sec_id设置为1

3.让Comp. Sci.系的每个学生选修上述课程段

4.给Comp. Sci.系每位教师涨10%的工资

5.把每个tol_cred属性上取值超过100的学生作为同系的教师插入,工资为10000美元

6.删除所有未开设过(未出现在section表中)的课程

7.删除所有在Taylor教学楼工作的教师信息

8.删除工资低于大学平均工资的教师信息

三、实验步骤

1. SQL查询语句分析与设计。

2. 查询分析器中撰写语句

3. 查询并观察执行结果

4. 撰写查询报告

5. 完成上述8个查询实验(截图并说明,有SQL语句,有运行结果)

四、实验设备及软件环境:

PC机,SQL Server 2019

五、实验过程及结果:

名称:DXJG数据库。

实验结果

1..创建1门课程“CS-001”,其名称为“Weekly Seminar”,学分为0.5

insert into course
value('001','Weekly Seminar',NULL,0.5);

2.创建课程“CS-001”在2009年秋季学期的一个课程段,sec_id设置为1

insert into section
values('001','1','Fall',2009,NULL,NULL,NULL);

 3.让Comp. Sci.系的每个学生选修上述课程段

insert into takes
select ID,'001','1','Fall',2009,NULL
from student
where dept_name='Comp.Sci.';

4.给Comp. Sci.系每位教师涨10%的工资

update instructor
set salary=salary*1.1
where dept_name='Comp.Sci.';

5.把每个tol_cred属性上取值超过100的学生作为同系的教师插入,工资为10000美元

insert into instructor(ID,name,dept_name,salary)
select ID,name,dept_name,10000.00
from student
where tot_cred>=100;

6.删除所有未开设过(未出现在section表中)的课程

delete from course
where course_id not in(select course_id
from section);

7.删除所有在Taylor教学楼工作的教师信息

delete from instructor
where dept_name in(select dept_name from department where building='Taylor');

 8.删除工资低于大学平均工资的教师信息

delete from instructor
where salary<(select avg(salary)
from instructor);

 

一、实验目的:

(1)掌握SQL函数、过程、触发器语法;

(2)掌握SQL函数、过程、触发器的使用方法。

二、实验内容:

1.创建一个SQL函数,用于统计特定年度和学期,讲授课程的每个教师,所教授不同学生的总人数。

2.创建一个SQL存储过程,实现上述函数表达的内容

3.为了维护关系student的tot_cred属性,创建与关系takes的插入操作相关的触发器,在takes更新时,使其对于能够影响tot_cred值的所有更新都有效

三、实验设备及软件环境:

     SQL Server Management Studio 18

  • 实验过程及结果:

1.创建一个SQL函数,用于统计特定年度和学期,讲授课程的每个教师,所

教授不同学生的总人数。

 

2.创建一个SQL存储过程,实现上述函数表达的内容

 

 3.为了维护关系student的tot_cred属性,创建与关系takes的插入操作相关的触发器,在takes更新时,使其对于能够影响tot_cred值的所有更新都有效

create TRIGGER Statistics_count ON takes
FOR UPDATE 
AS 
--声明变量 
DECLARE @ID varchar(5) 
DECLARE @cridit numeric(2,0) 
DECLARE @COURSE_ID varchar(8)
declare @ograde varchar(2)
declare @ngrade varchar(2)
--提取插入的数据 
SELECT @ID=ID,@COURSE_ID=course_id,@ngrade=grade FROM inserted 
select @ograde=grade from deleted
--提取课程学分 
SELECT @cridit = course.credits 
FROM takes join course ON (TAKES.course_id = Course.course_id) 
WHERE TAKES.ID = @ID and course.course_id=@COURSE_ID 
--更新总学分 
if (@ograde = 'F' or @ograde is null) and (@ngrade != 'F' and @ngrade is not null)
begin
UPDATE Student SET tot_cred = tot_cred + @cridit 
WHERE ID = @ID 
end
GO


总结

 以上是数据库56的实验,仅供参考。。。

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值