第5章 數(shù)據(jù)操作語句
習(xí)題答案
--1.查詢SC表中的全部數(shù)據(jù)
select * from SC
--2.查詢計算機系學(xué)生的姓名和年齡
select Sname,Sage from Student
where Sdept = '計算機系'
--3.查詢成績在70~80分的學(xué)生的學(xué)號、課程號和成績
select Sno,Cno,Grade from SC
where Grade between 70 and 80
--4.查詢計算機系年齡在18~20歲的男學(xué)生的姓名和年齡
select Sname,Sage from Student
where Sdept = '計算機系' and Sage between 18 and 20
--5.查詢C001課程的最高分
select max(Grade) 最高分 from SC
where Cno = 'C001'
--6.查詢計算機系學(xué)生的最大年齡和最小年齡
select max(Sage) 最大年齡,MIN(Sage) 最小年齡 from Student
where Sdept = '計算機系'
--7.統(tǒng)計每個系的學(xué)生人數(shù)
select Sdept,count(*) 人數(shù) from Student
group by Sdept
--8.統(tǒng)計每門課程的選課人數(shù)和考試最高分
select Cno 課程號,count(*) 選課人數(shù),max(Grade) 最高分 from SC
group by Cno
--9.統(tǒng)計每個學(xué)生的選課門數(shù)和考試總成績,并按選課門數(shù)升序顯示結(jié)果 select sno,count(*)選課門數(shù),sum(Grade) 總成績 from SC
group by Sno
order by count(*)
--10.查詢選修C002課程的學(xué)生的姓名和所在系
select Sname,Sdept from Student S join SC
on S.Sno = SC.Sno
where Cno = 'C002'
--11.查詢成績80分以上的學(xué)生的姓名、課程號和成績,并按成績降序排列結(jié)果 select Sname,Cno,Grade from Student S join SC
on S.Sno = SC.Sno
where Grade > 80
order by Grade DESC
--12.查詢選課門數(shù)最多的前2位學(xué)生,列出學(xué)號和選課門數(shù)
select top 2 with ties Sno,count(*) 選課門數(shù) from SC
group by Sno
order by count(*) desc
--13.查詢哪些課程沒有學(xué)生選修,要求列出課程號和課程名
select C.Cno,Cname from Course C left join SC
on C.Cno = SC.Cno
where SC.Cno is null
--14.查詢計算機系哪些學(xué)生沒有選課,列出學(xué)生姓名
select Sname 未選課的學(xué)生 from Student S left join SC
on S.Sno=SC.Sno
where Cno is null
--15.用子查詢實現(xiàn)如下查詢
--(1)查詢選修C001課程的學(xué)生的姓名和所在系
select Sname,Sdept from Student
where Sno in (
select Sno from SC
where Cno = 'C001')
--(2)查詢通信工程系成績80分以上的學(xué)生的學(xué)號和姓名
select Sno,Sname from Student
where Sno in (
select Sno from SC
where Grade >80)
--(3)查詢計算機系考試成績最高的學(xué)生的姓名
select Sname from Student
where Sdept = '計算機系' and Sno in (
select top 1 with ties Sno from SC
order by Grade desc)
--(4)查詢年齡最大的男學(xué)生的姓名和年齡
select Sname,Sage from Student
where Ssex = '男' and Sno in(
select top 1 with ties Sno from Student
order by Sage desc)
--(5)查詢C001課程的考試成績高于該課程平均成績的學(xué)生的學(xué)號和成績 select Sno,Grade from SC
where Cno = 'C001' and Grade > (
select avg(Grade) from SC
where Cno = 'C001')
--16.創(chuàng)建一個新表,表名為test,其結(jié)構(gòu)為(COL1,COL2,COL3),其中, --COL1:整形,允許空值
--COL2:普通編碼定長字符類型,長度為10,不允許空值
--COL3:普通編碼定長字符類型,長度為10,允許空值
create table test(
COL1 int,
COL2 char(10) not null,
COL3 char(10))
insert into test values(NULL,'B1',NUll)
insert into test values('1','B2','C2')
insert into test values('2','B3',NUll)
--17.將所有選修C001課程的學(xué)生成績加10分
update SC set Grade = Grade +10
where Cno = 'C001'
--18.將計算機系所有選修“計算機文化學(xué)”課程的學(xué)生的成績加10分 update SC set Grade = Grade +10
where Cno in (
select Cno from Course
where Cname = '計算機文化學(xué)')
--19.刪除成績小于50分的學(xué)生的選課記錄
delete from SC
where Grade < 50
--20.刪除計算機系VB考試成績不及格學(xué)生的VB選課記錄
delete from SC
where Cno= 'C005' and Grade < 60 and Sno in (
select Sno from Student
where Sdept = '計算機系')
--21.刪除沒人選的課程的基本信息
delete from Course
where Cno in (
select C.Cno from Course C left join SC
on C.Cno=SC.Cno
where SC.Cno is null)
轉(zhuǎn)載請保留出處,http://www.360docs.net/doc/info-b84c18b52af90242a895e5de.html
聯(lián)系客服