sql面试题--业务培训(一)

题目

为管理业务培训信息,现需建立3个表:

表S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄、

表C(C#,CN)C#,CN分别代表课程编号,课程名称

表SC(S#,C#,G)S#,C#,G分别代表学号,所选的课程编号,学习成绩

(1)使用标准SQL嵌套语句查询选修课程名称为'税收基础'的学员学号和姓名?

(2)使用标准SQL嵌套语句查询选修课程编号为'C2'的学员姓名和所属单位?

(3)使用标准SQL嵌套语句查询不选修课程编号为'C5'的学员姓名和所属单位?

(4)查询选修了课程的学员人数

(5)查询选修课程超过5门的学员学号和所属单位?

建表sql语句
sql 复制代码
-- ----------------------------
-- Table structure for c
-- ----------------------------
DROP TABLE IF EXISTS `c`;
CREATE TABLE `c`  (
  `C1` int(0) NULL DEFAULT NULL COMMENT '课程编号',
  `C2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程名称'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of c
-- ----------------------------
INSERT INTO `c` VALUES (1, '税收基础');
INSERT INTO `c` VALUES (2, '税收进阶');
INSERT INTO `c` VALUES (3, '语文');
INSERT INTO `c` VALUES (4, '数学');
INSERT INTO `c` VALUES (5, '英语');

-- ----------------------------
-- Table structure for s
-- ----------------------------
DROP TABLE IF EXISTS `s`;
CREATE TABLE `s`  (
  `S1` int(0) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `S2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名',
  `S3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '单位',
  `S4` int(0) NOT NULL COMMENT '年龄',
  PRIMARY KEY (`S1`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of s
-- ----------------------------
INSERT INTO `s` VALUES (1, '铭', '啊', 21);
INSERT INTO `s` VALUES (2, '杰', '经', 20);
INSERT INTO `s` VALUES (3, '云', '团', 20);
INSERT INTO `s` VALUES (4, '张三', '团支书', 49);
INSERT INTO `s` VALUES (5, '李斯', '战神', 80);
INSERT INTO `s` VALUES (6, '童锦成', '老六', 100);

-- ----------------------------
-- Table structure for sc
-- ----------------------------
DROP TABLE IF EXISTS `sc`;
CREATE TABLE `sc`  (
  `S1` int(0) NULL DEFAULT NULL COMMENT '学号',
  `C1` int(0) NULL DEFAULT NULL COMMENT '课程编号',
  `G` int(0) NULL DEFAULT NULL COMMENT '学习成绩'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of sc
-- ----------------------------
INSERT INTO `sc` VALUES (1, 2, 80);
INSERT INTO `sc` VALUES (2, 2, 78);
INSERT INTO `sc` VALUES (3, 1, 78);
INSERT INTO `sc` VALUES (1, 1, 67);
INSERT INTO `sc` VALUES (2, 1, 65);
INSERT INTO `sc` VALUES (3, 2, 98);
INSERT INTO `sc` VALUES (4, 1, 78);
INSERT INTO `sc` VALUES (5, 2, 68);
INSERT INTO `sc` VALUES (1, 5, 65);
INSERT INTO `sc` VALUES (4, 5, 45);
解题
sql 复制代码
(1)使用标准SQL嵌套语句查询选修课程名称为'税收基础'的学员学号和姓名?
select * from s where s1 in(
select s1 from sc where c1=(select C1 from c where C2 ='税收基础')
)

(2)使用标准SQL嵌套语句查询选修课程编号为'C2'的学员姓名和所属单位?
select * from s where s1 in(
select s1 from sc where c1 in(
select c1 from c where c1=2)
)
(3)使用标准SQL嵌套语句查询不选修课程编号为'C5的学员姓名和所属单位?
select * from s where s1 not in (select s1 from sc where c1=5)
(4)查询选修了课程的学员人数

select count(a.s1) from (select s1 from sc GROUP BY s1)a

(5)查询选修课程超过5门的学员学号和所属单位?
select s1,s3 from s where s1 in (
select s1 from sc GROUP BY s1 HAVING count(s1)>=3
 )
原件
相关推荐
天天扭码3 分钟前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构
程序猿进阶4 分钟前
堆外内存泄露排查经历
java·jvm·后端·面试·性能优化·oom·内存泄露
FIN技术铺8 分钟前
Spring Boot框架Starter组件整理
java·spring boot·后端
zwjapple14 分钟前
typescript里面正则的使用
开发语言·javascript·正则表达式
小五Five15 分钟前
TypeScript项目中Axios的封装
开发语言·前端·javascript
小曲程序15 分钟前
vue3 封装request请求
java·前端·typescript·vue
前端每日三省17 分钟前
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
开发语言·前端·javascript
gma99924 分钟前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️27 分钟前
华为ASP与CSP是什么?
服务器·前端·数据库
凡人的AI工具箱30 分钟前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang