java面试题 sql_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、有如下兩張表:
表city:表state:
CityNo
CityName
StateNo
BJ
北京
Null
SH
上海
Null
GZ
廣州
GD
DL
大連
LN
欲得到如下結果:
CityNo ?City Name ?State No ?State Name
BJ北京(Null)(Null)
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);
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java面试题 sql_Java面试题总结之数据库与SQL语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么码农要了解业务呢?网友:不是敲代码
- 下一篇: Java设计模式之迭代器模式