S2_day_04高级查询

本文通过多个实际案例,深入浅出地介绍了SQL语言在数据库查询中的应用技巧,包括子查询、连接查询、条件判断及更新操作等核心内容。
--预习

select studentno,studentname, sex ,borndate,address from student 
where borndate>(select borndate from student where studentname='夏一桐')


select studentname,studentno from student where studentno in 
(
select studentno from  result 
where subjectid=(
select subjectid from subject
where subjectname='走进Java编程世界'

)and studentresult> 60

)
select studentno,studentname from student 
where studentno in
 --A级
(
select studentno from result
 where subjectid = 
 --B级
(
select subjectid from subject
where subjectname='走进Java编程世界'

)and examdate=
--B级
(
select max(examdate) from result
where subjectid=
(
--C级
select subjectid from subject
where subjectname='走进Java编程世界'
)

)

)



--上节复习

declare @subjectID int
select @subjectID=subjectid from subject
where subjectname='走进Java编程世界'

declare @date datetime
select @date=MAX(examdate) from  result 
where subjectid =@subjectID 

select studentname ,等级=
case 
when studentresult >90 then 'A'
when studentresult >80 then 'B'
when studentresult >70 then 'C'
when studentresult >60 then 'D'
else 'E'
end
 --案例:检查“oop”课程最近一次考试。--如果有80分以上的成绩,则每人提2分;
	--否则,每人提5分。最终的成绩不得大于100分
	if exists (
	select studentresult from result
	where subjectid=
	(
	
	select subjectid from subject
	where subjectname='oop'
	
	
	)and examdate =
	(
	select MAX(examdate) from result
	where subjectid=
	(
	select subjectid from subject
	where subjectname='oop'
	)
	
	)
	and studentresult>80
	
	
	)
	begin
	update result set studentresult=100
	where subjectid=
	(

	select subjectid from subject
	where subjectname='oop'
	
	
	)and examdate =
	(
	select MAX(examdate) from result
	where subjectid=
	(
	select subjectid from subject
	where subjectname='oop'
	)
	)
	and studentresult>98
	
	update result set studentresult+=2
	where subjectid=
	(
	
	select subjectid from subject
	where subjectname='oop'
	
	
	)and examdate =
	(
	select MAX(examdate) from result
	where subjectid=
	(
	select subjectid from subject
	where subjectname='oop'
	)
	)and studentresult<=98
	end
	else
	begin 
	update result set studentresult+=5
	where subjectid=
	(
	select subjectid from subject
	where subjectname='oop'
	
	
	)and examdate=
	(
	select MAX (examdate) from result
	where subjectid=
	(
	select subjectid from subject
	where subjectname='oop'
	)
	
	)
	
	
	end
	
	
--检查是否正确	
	select * from result
	where subjectid=
	(

	select subjectid from subject
	where subjectname='oop'
	
	
	)and examdate =
	(
	select MAX(examdate) from result
	where subjectid=
	(
	select subjectid from subject
	where subjectname='oop'
	)
	)

--上机4
--检查并更新S1的学生为S2

--查询是否存在S1学生
if exists(
select studentname ,gradeid from student
where gradeid in
(
select gradeid from grade
where gradename='S1'

)


)
--如果存在 将S1的年级编号改为S2的年级编号
begin

update student set gradeid=2
 where gradeid in
(
select gradeid from grade
where gradename='S1'

)
end



--进行检查是否将S1的年级编号改为S2的年级编号
select studentname ,gradeid from student
where gradeid in
(
select gradeid from grade
where gradename='S2'

)

from student,result where student.studentno=result.studentnoand subjectid =@subjectID


乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值