zoukankan      html  css  js  c++  java
  • 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)写出建表语句;

    create table s(id integer primary key, name varchar(20));
    create table c(id integer primary key, name varchar(20));
    create table sc(
    sid integer references s(id),
    cid integer references c(id),
    primary key(sid,cid)
    );

    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);
  • 相关阅读:
    链接被点击时不出现虚线框的方法
    label 和 legend标签的用法
    了解常见的浏览器内核 Trident,Geckos,Presto,Webkit
    DOCTYPE声明的几种类型
    Angularjs基础教程
    理解angular中的module和injector,即依赖注入
    es5 api
    css3_note
    canvas 基础知识
    uglifyjs note
  • 原文地址:https://www.cnblogs.com/yangxianyang/p/13675596.html
Copyright © 2011-2022 走看看