前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java面试题总结之数据库与SQL语句

Java面试题总结之数据库与SQL语句

作者头像
AlbertYang
发布2020-09-08 14:48:57
4260
发布2020-09-08 14:48:57
举报

1、有3 个表,表结构如下:

Student 学生表(学号,姓名,性别,年龄,组织部门)

Course 课程表(编号,课程名称)

Sc 选课表(学号,课程编号,成绩)。

1)写一个SQL 语句,查询选修了’计算机原理’的学生学号和姓名。

代码语言:javascript
复制
selectstudent.sno, student.sname from student 
leftjoin sc on student.sno=sc.sno
leftjoin course on sc.cno=course.cno
wherecourse.cname='计算机原理';

2)写一个SQL 语句,查询’王小明’同学选修了的课程名字。

代码语言:javascript
复制
selectcname from Course
wherecno in ( select cno from sc where sno =
(selectsno from Student where sname='王小明'));

3)写一个SQL语句,查询选修了5 门课程的学生学号和姓名

代码语言:javascript
复制
selectstu.sno, stu.sname from student stu
where(select count(*) from sc where sno=stu.sno) = 5;

2、有三张表,学生表S,课程C,学生课程表SC,学生可以选修多门课程,一门课程可以被多个学生选修,通过SC 表关联。

1)写出建表语句;

代码语言:javascript
复制
createtable s(id integer primary key, name varchar(20));
createtable c(id integer primary key, name varchar(20));
createtable sc(
sidinteger references s(id),
cidinteger references c(id),
primarykey(sid,cid)
);

2)写出SQL 语句,查询选修了所有选修课程的学生;

代码语言:javascript
复制
selectstu.id, stu.name from s stu
where(select count(*) from sc where sid=stu.id) = (select count(*) from c);

3)写出SQL语句,查询选修了至少5 门以上的课程的学生。

代码语言:javascript
复制
selectstu.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语句如下:

代码语言:javascript
复制
select employee.name from test employee
where employee.age > (selectmanager.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语句为:

代码语言:javascript
复制
SELECTC.CITYNO, C.CITYNAME, C.STATENO, S.STATENAME
FROMCITY C, STATE S
WHEREC.STATENO=S.STATENO
ORDERBY(C.CITYNO);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AlbertYang 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档