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

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

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

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

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

 

 

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

  
  1. select student.sno, student.sname from student
  2. left join sc on student.sno=sc.sno
  3. left join course on sc.cno=course.cno
  4. where course.cname='计算机原理';

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


  
  1. select cname from Course
  2. where cno in ( select cno from sc where sno =
  3. (select sno from Student where sname='王小明'));

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


  
  1. select stu.sno, stu.sname from student stu
  2. where (select count(*) from sc where sno=stu.sno) = 5;

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

1)写出建表语句;


  
  1. create table s(id integer primary key, name varchar(20));
  2. create table c(id integer primary key, name varchar(20));
  3. create table sc(
  4. sid integer references s(id),
  5. cid integer references c(id),
  6. primary key(sid,cid)
  7. );

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


  
  1. select stu.id, stu.name from s stu
  2. where (select count(*) from sc where sid=stu.id) = (select count(*) from c);

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


  
  1. select stu.id, stu.name from s stu
  2. 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 语句如下:


  
  1. select employee.name from test employee
  2. where employee.age > (select manager.age from test manager
  3. 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 语句为:


  
  1. SELECT C.CITYNO, C.CITYNAME, C.STATENO, S.STATENAME
  2. FROM CITY C, STATE S
  3. WHERE C.STATENO=S.STATENO
  4. ORDER BY(C.CITYNO);

 

 

文章来源: albertyang.blog.csdn.net,作者:Albert Yang,版权归原作者所有,如需转载,请联系作者。

原文链接:albertyang.blog.csdn.net/article/details/90486227

(完)