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

2024-02-22 14:04

本文主要是介绍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语句
-- ----------------------------
-- 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);
解题
(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)
原件

这篇关于sql面试题--业务培训(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/735480

相关文章

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID