• 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语句
    1. -- ----------------------------
    2. -- Table structure for c
    3. -- ----------------------------
    4. DROP TABLE IF EXISTS `c`;
    5. CREATE TABLE `c` (
    6. `C1` int(0) NULL DEFAULT NULL COMMENT '课程编号',
    7. `C2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '课程名称'
    8. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
    9. -- ----------------------------
    10. -- Records of c
    11. -- ----------------------------
    12. INSERT INTO `c` VALUES (1, '税收基础');
    13. INSERT INTO `c` VALUES (2, '税收进阶');
    14. INSERT INTO `c` VALUES (3, '语文');
    15. INSERT INTO `c` VALUES (4, '数学');
    16. INSERT INTO `c` VALUES (5, '英语');
    17. -- ----------------------------
    18. -- Table structure for s
    19. -- ----------------------------
    20. DROP TABLE IF EXISTS `s`;
    21. CREATE TABLE `s` (
    22. `S1` int(0) NOT NULL AUTO_INCREMENT COMMENT '学号',
    23. `S2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名',
    24. `S3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '单位',
    25. `S4` int(0) NOT NULL COMMENT '年龄',
    26. PRIMARY KEY (`S1`) USING BTREE
    27. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
    28. -- ----------------------------
    29. -- Records of s
    30. -- ----------------------------
    31. INSERT INTO `s` VALUES (1, '铭', '啊', 21);
    32. INSERT INTO `s` VALUES (2, '杰', '经', 20);
    33. INSERT INTO `s` VALUES (3, '云', '团', 20);
    34. INSERT INTO `s` VALUES (4, '张三', '团支书', 49);
    35. INSERT INTO `s` VALUES (5, '李斯', '战神', 80);
    36. INSERT INTO `s` VALUES (6, '童锦成', '老六', 100);
    37. -- ----------------------------
    38. -- Table structure for sc
    39. -- ----------------------------
    40. DROP TABLE IF EXISTS `sc`;
    41. CREATE TABLE `sc` (
    42. `S1` int(0) NULL DEFAULT NULL COMMENT '学号',
    43. `C1` int(0) NULL DEFAULT NULL COMMENT '课程编号',
    44. `G` int(0) NULL DEFAULT NULL COMMENT '学习成绩'
    45. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
    46. -- ----------------------------
    47. -- Records of sc
    48. -- ----------------------------
    49. INSERT INTO `sc` VALUES (1, 2, 80);
    50. INSERT INTO `sc` VALUES (2, 2, 78);
    51. INSERT INTO `sc` VALUES (3, 1, 78);
    52. INSERT INTO `sc` VALUES (1, 1, 67);
    53. INSERT INTO `sc` VALUES (2, 1, 65);
    54. INSERT INTO `sc` VALUES (3, 2, 98);
    55. INSERT INTO `sc` VALUES (4, 1, 78);
    56. INSERT INTO `sc` VALUES (5, 2, 68);
    57. INSERT INTO `sc` VALUES (1, 5, 65);
    58. INSERT INTO `sc` VALUES (4, 5, 45);
    解题
    1. (1)使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名?
    2. select * from s where s1 in(
    3. select s1 from sc where c1=(select C1 from c where C2 ='税收基础')
    4. )
    5. (2)使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位?
    6. select * from s where s1 in(
    7. select s1 from sc where c1 in(
    8. select c1 from c where c1=2)
    9. )
    10. (3)使用标准SQL嵌套语句查询不选修课程编号为’C5的学员姓名和所属单位?
    11. select * from s where s1 not in (select s1 from sc where c1=5)
    12. (4)查询选修了课程的学员人数
    13. select count(a.s1) from (select s1 from sc GROUP BY s1)a
    14. (5)查询选修课程超过5门的学员学号和所属单位?
    15. select s1,s3 from s where s1 in (
    16. select s1 from sc GROUP BY s1 HAVING count(s1)>=3
    17. )
    原件

  • 相关阅读:
    SpringBoot之ElasticsearchRestTemplate常用示例
    超360万台MySQL服务器在“裸奔”
    macbook Safari 如何打开F12 Console 控制台 开发者工具 Developer Tools
    注解 + spring aop切面+ SpringEl
    Java内存溢出(OOM)分析
    PerfView专题 (第四篇):如何寻找 C# 中程序集泄漏
    浅谈线性化
    力扣-434.字符串中的单词数
    2024广东省职业技能大赛云计算赛项实战——集群部署GitLab Runner
    内网渗透系列之mimikatz的使用以及后门植入
  • 原文地址:https://blog.csdn.net/weixin_73817220/article/details/136228708