sql 語(yǔ)句練習(xí)與答案
發(fā)布日期:2022-01-02 15:41 | 文章來(lái)源:源碼中國(guó)
S#學(xué)號(hào),sname姓名,difdate日期,班級(jí)grade
2課程表 course
c#課程號(hào) ,名字cname
3成績(jī)單score
s#學(xué)號(hào) c#課程號(hào) 成績(jī)score
--1統(tǒng)計(jì)每個(gè)班級(jí)有多少人
select grade,count(sname) from ze_student group by grade; --2、2007級(jí)的各學(xué)生的平均成績(jī) 沒有成績(jī)的為0;
select a.sname,(select avg(nvl(b.score,0)) from ze_score b where b.s#=a.s#) from ze_student a where grade=2007; --3 每科 平均成績(jī)和最高成績(jī) 最低成績(jī) 2007級(jí) 保留2位小數(shù)點(diǎn) 四舍五入
select b.c#,avg(b.score),max(b.score),min(nvl(b.score,0)) from ze_student a,ze_score b where b.s# = a.s# and a.grade =2007 group by b.c#; --4 給2007級(jí) 數(shù)學(xué)加5分
update ze_score
set score=nvl(score,0)+5
where s# in (select s# from ze_student where grade=2007) and c# =(select c# from ze_course where cname='數(shù)學(xué)'); --5 90分以上的為優(yōu)秀 90到85為良好,60分 不及格 各人平均成績(jī)
select s#, c,
case
when c>=90 then '優(yōu)秀'
when c<90 and c>=60 then '及格'
else '不及格' end as jige
from (select s#,avg(nvl(score,0)) as c from ze_score group by s# ) order by jige desc;
--6 求同月出生的 人數(shù)
select to_char(difdate,'mm') as 月份,count(s#) as 出生人數(shù) from ze_student group by to_char(difdate,'mm'); --7 各科的及格率和平均成績(jī) 截取 保留2位
--及格率
select c#,avg(nvl(score,0))as 平均成績(jī),sum(nvl(score,0))as 總成績(jī), count(s#) as 各科人數(shù),
trunc(sum(
case when nvl(score,0)>60 then '1'
else '0' end)/count(s#),2) as 及格率
from ze_score group by c#; --每人的及格率
select s#, avg(nvl(score,0))as 平均成績(jī),sum(nvl(score,0))as 總成績(jī), count(c#) as 總科目,
sum(
case when nvl(score,0)>60 then 1
else 0 end
)/count(c#) as 及格率
from ze_score group by s#;
--8刪除 姓名是張三 的大學(xué)語(yǔ)文 成績(jī)
select * from ze_score where s# in (select s# from ze_student where sname in '張三') and c#=(select c# from ze_course where cname ='大學(xué)語(yǔ)文'); --9 將數(shù)學(xué)替換成高等數(shù)學(xué)
update ze_course set cname='高等數(shù)學(xué)'where cname like '%數(shù)學(xué)%'; --10 格式化 ,顯示 將學(xué)號(hào)修改成S開頭 不足12位補(bǔ)0;
--查詢
select concat('S',lpad(s#,11,0)) as s# from ze_score ;
select concat('S',lpad(s#,11,0)) as s# from ze_student ; --格式化
update ze_score set s#= concat('S',lpad(s#,9,0));
update ze_student set s#= concat('S',lpad(s#,9,0)); 四個(gè)足球隊(duì) select a.name,b.name from qiu a,qiu b where a.name<b.name; commit
rollback
服務(wù)器類型
服務(wù)器協(xié)議
全局?jǐn)?shù)據(jù)庫(kù)名稱
服務(wù)器IP地址
服務(wù)器端口號(hào)
用戶名和密碼
--1統(tǒng)計(jì)每個(gè)班級(jí)有多少人
select grade,count(sname) from ze_student group by grade; --2、2007級(jí)的各學(xué)生的平均成績(jī) 沒有成績(jī)的為0;
select a.sname,(select avg(nvl(b.score,0)) from ze_score b where b.s#=a.s#) from ze_student a where grade=2007; --3 每科 平均成績(jī)和最高成績(jī) 最低成績(jī) 2007級(jí) 保留2位小數(shù)點(diǎn) 四舍五入
select b.c#,avg(b.score),max(b.score),min(nvl(b.score,0)) from ze_student a,ze_score b where b.s# = a.s# and a.grade =2007 group by b.c#; --4 給2007級(jí) 數(shù)學(xué)加5分
update ze_score
set score=nvl(score,0)+5
where s# in (select s# from ze_student where grade=2007) and c# =(select c# from ze_course where cname='數(shù)學(xué)'); --5 90分以上的為優(yōu)秀 90到85為良好,60分 不及格 各人平均成績(jī)
select s#, c,
case
when c>=90 then '優(yōu)秀'
when c<90 and c>=60 then '及格'
else '不及格' end as jige
from (select s#,avg(nvl(score,0)) as c from ze_score group by s# ) order by jige desc;
--6 求同月出生的 人數(shù)
select to_char(difdate,'mm') as 月份,count(s#) as 出生人數(shù) from ze_student group by to_char(difdate,'mm'); --7 各科的及格率和平均成績(jī) 截取 保留2位
--及格率
select c#,avg(nvl(score,0))as 平均成績(jī),sum(nvl(score,0))as 總成績(jī), count(s#) as 各科人數(shù),
trunc(sum(
case when nvl(score,0)>60 then '1'
else '0' end)/count(s#),2) as 及格率
from ze_score group by c#; --每人的及格率
select s#, avg(nvl(score,0))as 平均成績(jī),sum(nvl(score,0))as 總成績(jī), count(c#) as 總科目,
sum(
case when nvl(score,0)>60 then 1
else 0 end
)/count(c#) as 及格率
from ze_score group by s#;
--8刪除 姓名是張三 的大學(xué)語(yǔ)文 成績(jī)
select * from ze_score where s# in (select s# from ze_student where sname in '張三') and c#=(select c# from ze_course where cname ='大學(xué)語(yǔ)文'); --9 將數(shù)學(xué)替換成高等數(shù)學(xué)
update ze_course set cname='高等數(shù)學(xué)'where cname like '%數(shù)學(xué)%'; --10 格式化 ,顯示 將學(xué)號(hào)修改成S開頭 不足12位補(bǔ)0;
--查詢
select concat('S',lpad(s#,11,0)) as s# from ze_score ;
select concat('S',lpad(s#,11,0)) as s# from ze_student ; --格式化
update ze_score set s#= concat('S',lpad(s#,9,0));
update ze_student set s#= concat('S',lpad(s#,9,0)); 四個(gè)足球隊(duì) select a.name,b.name from qiu a,qiu b where a.name<b.name; commit
rollback
服務(wù)器類型
服務(wù)器協(xié)議
全局?jǐn)?shù)據(jù)庫(kù)名稱
服務(wù)器IP地址
服務(wù)器端口號(hào)
用戶名和密碼
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章