SQL筆試題:下面是學生表(student)的結構說明


SQL筆試題:下面是學生表(student)的結構說明

SQL筆試題:下面是學生表(student)的結構說明

字段名稱

字段解釋

字段類型

字段長度

約束

s_id

學號

字符

10

PK

s_name

學生姓名

字符

50

Not null

s_age

學生年齡

數值

3

Not null

s-sex

學生性別

字符(男:1女:0)

1

Not null

下面是教師表(Teacher )的結構說明

字段名稱

字段解釋

字段類型

字段長度

約束

t_id

教師編號

字符

10

PK

t_name

教師名字

字符

50

Not null

下面是課程表(Course)的結構說明

字段名稱

字段解釋

字段類型

字段長度

約束

c_id

課程編號

字符

10

PK

c_name

課程名字

字符

50

Not null

t_id

教師編號

字符

10

Not null

下面是成績表(SC)的結構說明

字段名稱

字段解釋

字段類型

字段長度

約束

s_id

學號

字符

10

PK

c_id

課程編號

字符

10

Not null

score

成績

數值

3

Not null

1、查詢“001”課程比“002”課程成績高的所有學生的學號;

select a.s_id from (select s_id,score from SC where C_ID='001') a,(select s_id,score

from SC where C_ID='002') b
where a.score>b.score and a.s_id=b.s_id;

2、查詢平均成績大於60分的同學的學號和平均成績;

select S_ID,avg(score)
from sc
group by S_ID having avg(score) >60;

3、查詢所有同學的學號、姓名、選課數、總成績;

select Student.S_ID,Student.Sname,count(SC.C_ID),sum(score)
from Student left Outer join SC on Student.S_ID=SC.S_ID
group by Student.S_ID,Sname

4、查詢姓“李”的老師的個數;

select count(distinct(Tname))
from Teacher
where Tname like '李%';

5、查詢沒學過“葉平”老師課的同學的學號、姓名;

select Student.S_ID,Student.Sname
from Student
where S_ID not in (select distinct( SC.S_ID) from SC,Course,Teacher where SC.C_ID=Course.C_ID and Teacher.T#=Course.T# and Teacher.Tname='葉平');

6、查詢學過“001”並且也學過編號“002”課程的同學的學號、姓名;

elect Student.S_ID,Student.Sname from Student,SC where Student.S_ID=SC.S_ID and SC.C_ID='001'and exists( Select * from SC as SC_2 where SC_2.S_ID=SC.S_ID and SC_2.C_ID='002');

7、查詢學過“葉平”老師所教的所有課的同學的學號、姓名;

select S_ID,Sname
from Student
where S_ID in (select S_ID from SC ,Course ,Teacher where SC.C_ID=Course.C_ID and Teacher.T#=Course.T# and Teacher.Tname='葉平' group by S_ID having count(SC.C_ID)=(select count(C_ID) from Course,Teacher where Teacher.T#=Course.T# and Tname='葉平'));

8、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名;

Select S_ID,Sname from (select Student.S_ID,Student.Sname,score ,(select score from SC SC_2 where SC_2.S_ID=Student.S_ID and SC_2.C_ID='002') score2
from Student,SC where Student.S_ID=SC.S_ID and C_ID='001') S_2 where score2 < score;

9、查詢所有課程成績小於60分的同學的學號、姓名;

select S_ID,Sname
from Student
where S_ID not in (select S.S_ID from Student AS S,SC where S.S_ID=SC.S_ID and score>60);

10、查詢沒有學全所有課的同學的學號、姓名;

select Student.S_ID,Student.Sname
from Student,SC
where Student.S_ID=SC.S_ID group by Student.S_ID,Student.Sname having count(C_ID) <(select count(C_ID) from Course);

11、查詢至少有一門課與學號為“1001”的同學所學相同的同學的學號和姓名;

select distinct S_ID,Sname from Student,SC where Student.S_ID=SC.S_ID and SC.C_ID in (select C_ID from SC where S_ID='1001');

12、查詢至少學過學號為“001”同學所有一門課的其他同學學號和姓名;

select distinct SC.S_ID,Sname
from Student,SC
where Student.S_ID=SC.S_ID and C_ID in (select C_ID from SC where S_ID='001');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM