Java面試題總結之數據庫與SQL語句


 

1、有3 個表,表結構如下:

Student 學生表(學號,姓名,性別,年齡,組織部門)

Course 課程表(編號,課程名稱)

Sc 選課表(學號,課程編號,成績)

  

1)寫一個SQL 語句,查詢選修了’計算機原理’的學生學號和姓名。

select student.sno, student.sname from student

left join sc on student.sno=sc.sno

left join course on sc.cno=course.cno

where course.cname='計算機原理';

2)寫一個SQL 語句,查詢’王小明’同學選修了的課程名字。

select cname from Course

where cno in ( select cno from sc where sno =

(select sno from Student where sname='王小明'));

3)寫一個SQL 語句,查詢選修了5 門課程的學生學號和姓名

select stu.sno, stu.sname from student stu

where (select count(*) from sc where sno=stu.sno) = 5;

2、有三張表,學生表S,課程C,學生課程表SC,學生可以選修多門課程,一門課程可以被多個學生選修,通過SC 表關聯。

1)寫出建表語句;

select stu.sno, stu.sname from student stu

where (select count(*) from sc where sno=stu.sno) = 5;

2)寫出SQL 語句,查詢選修了所有選修課程的學生;

select stu.id, stu.name from s stu

where (select count(*) from sc where sid=stu.id) = (select count(*) from c);

 

3)寫出SQL 語句,查詢選修了至少5 門以上的課程的學生。

select stu.id, stu.name from s stu

where (select count(*) from sc where sid=stu.id)>=5;

 

3、數據庫表(Test)結構如下:

ID

NAME

AGE

MANAGER(所屬主管人ID)

106

A

30

104

109

B

19

104

104

C

20

111

107

D

35

109

112

E

25

120

119

F

45

null

要求:列出所有年齡比所屬主管年齡大的人的ID 和名字?

答:SQL 語句如下:

select employee.name from test employee

where employee.age > (select manager.age from test manager

where manager.id=employee.manager);

 

4、有如下兩張表:

citystate

CityNo

CityName

StateNo

BJ

北京

Null

SH

上海

Null

GZ

廣州

GD

DL

大連

LN

欲得到如下結果:

CityNo  City Name  State No  State Name

BJ       北京      NullNull

DL      大連         LN      遼寧

GZ      廣州        GD      廣東

SH      上海      Null  Null

寫出相應的SQL 語句。

答:SQL 語句為:

SELECT C.CITYNO, C.CITYNAME, C.STATENO, S.STATENAME

FROM CITY C, STATE S

WHERE C.STATENO=S.STATENO

ORDER BY(C.CITYNO);

 


免責聲明!

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



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