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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值