Java面试之SQL

Java面试之SQLJava面试之SQL

大家好,又见面了,我是你们的朋友全栈君。

1、有3 个表(15 分钟):【基础】

Student 学生表(学号,姓名,性别,年龄,组织部门)
Course 课程表(编号,课程名称)
Sc 选课表(学号,课程编号,成绩)
表结构如下:
1)写一个SQL 语句,查询选修了’计算机原理’的学生学号和姓名(3 分钟)
2)写一个SQL 语句,查询’周星驰’同学选修了的课程名字(3 分钟)
3)写一个SQL 语句,查询选修了5 门课程的学生学号和姓名(9 分钟)
答:1)SQL 语句如下:

select stu.sno, stu.sname from Student stu
where (select count(*) from sc where sno=stu.sno and cno =
(select cno from Course where cname='计算机原理')) != 0;

2)SQL 语句如下:

select cname from Course
where cno in ( select cno from sc where sno =
(select sno from Student where sname='周星驰'));

3)SQL 语句如下:

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

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

1)写出建表语句;
2)写出SQL 语句,查询选修了所有选修课程的学生;
3)写出SQL 语句,查询选修了至少5 门以上的课程的学生。
答:1)建表语句如下(mysql 数据库):

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 语句如下:

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
欲得
到如下结果: City
No 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);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106575.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月22日 下午8:20
下一篇 2022年4月22日 下午8:20


相关推荐

  • [医疗信息化][DICOM教程]DICOM标准简介[通俗易懂]

    [医疗信息化][DICOM教程]DICOM标准简介[通俗易懂][医疗信息化][DICOM教程]DICOM标准简介使用OsiriX的DICOM标准简介内容介绍什么是DICOM医院系统内的图像传输了解DICOM服务OsiriX提供的DICOM服务其他DICOM服务DICOM文件格式DICOM结构化报告符合DICOMDICOM与其他标准的互操作性结论介绍这是我有关DICOM标准的系列文章的一部分,并快速概述了DICOM标…

    2022年5月25日
    49
  • python生成时间戳_Python 获取时间戳

    python生成时间戳_Python 获取时间戳importtimetime_tup=time.localtime(time.time())printtime_tupformat_time=’%Y-%m-%d_%a_%H-%M-%S’cur_time=time.strftime(format_time,time_tup)printcur_time参考:https://blog.csdn.net/a542551042/articl…

    2022年10月3日
    2
  • pycharm打包.py程序为可执行文件exe

    pycharm打包.py程序为可执行文件exe位于开发环境下 我们可以直接通过 IDE pycharm 直接运行 当我们完成一个程序时 我们需要在独立环境下执行 因此我们需要将 py 程序打包成 windows 环境下可直接执行的 exe 文件 操作步骤如下 1 在 pycharm 中安装插件 PyInstaller nbsp 2 调出 terminal 终端 输入命令 pyinstaller F wvipvideopla py 点击回车

    2026年3月27日
    2
  • Web安全原理剖析(四)——报错注入攻击[通俗易懂]

    Web安全原理剖析(四)——报错注入攻击[通俗易懂]报错注入攻击

    2026年4月19日
    4
  • OpenClaw安装部署指南[可运行源码]

    OpenClaw安装部署指南[可运行源码]

    2026年3月14日
    2
  • 数组遍历的几种方法及用法

    数组遍历的几种方法及用法js 提供了多种遍历数组的方法 具体使用场景略有区别 在此简单介绍一下 一 forEach 方法 forEach 是最简单 最常用的数组遍历方法 它提供一个回调函数 可用于处理数组的每一个元素 默认没有返回值 以上是个简单的例子 计算出数组中大于等于 3 的元素的个数 回调函数的参数 第一个是处于当前循环的元素 第二个是该元素下标 第三个是数组本身 三个参数均可选 二 map 方法 m

    2026年3月26日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号