在SQL面试中,掌握基本的建表语句、子查询、联接操作以及聚合函数是至关重要的。以下是一些常见的SQL面试题目及其解答,这些题目涵盖了数据建模、子查询和条件查询等核心概念。 创建学生表S、课程表C和学生课程表SC的建表语句如下: ```sql 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) ); ``` 1. 查询选修了所有选修课程的学生: ```sql SELECT stu.id, stu.name FROM S stu WHERE (SELECT COUNT(*) FROM SC WHERE sid = stu.id) = (SELECT COUNT(*) FROM C); ``` 这个查询使用了子查询来比较学生选修的课程数量与所有课程的数量。 2. 查询选修了至少5门以上课程的学生: ```sql SELECT stu.id, stu.name FROM S stu WHERE (SELECT COUNT(*) FROM SC WHERE sid = stu.id) >= 5; ``` 这个查询同样利用了子查询,但这里是检查选修课程数量是否大于等于5。 对于Test表,我们需要找出所有年龄大于其所属主管年龄的员工ID和名字: ```sql SELECT employee.name FROM Test employee WHERE employee.age > (SELECT manager.age FROM Test manager WHERE manager.id = employee.manager); ``` 这里使用了嵌套的子查询来获取每个员工的主管年龄,并与员工的年龄进行比较。 对于三个表Student、Course和Sc,我们有以下问题: 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 = '周星驰')); ``` 这个查询查找与周星驰学号匹配的所有课程编号,然后在Course表中找到对应的课程名。 3. 查询选修了5门课程的学生学号和姓名: ```sql SELECT stu.sno, stu.sname FROM Student stu WHERE (SELECT COUNT(*) FROM Sc WHERE sno = stu.sno) = 5; ``` 这个查询使用了子查询来计算每个学生的选课数量,并仅返回选修5门课程的学生。 关于"小霸王"的求解问题,这是一个数字谜题,可以使用循环和条件判断来解决,但在SQL中并不常见。通常这类问题更适合编程语言如Python或Java。 给定的数据片段要求查询每门课都大于80分的学生姓名,可以使用以下查询: ```sql SELECT DISTINCT sname AS name FROM ( SELECT sname, cname, score FROM Student JOIN Sc ON Student.sno = Sc.sno JOIN Course ON Sc.cno = Course.cno ) AS student_courses WHERE score > 80 GROUP BY sname HAVING COUNT(DISTINCT cname) = (SELECT COUNT(*) FROM Course WHERE score > 80); ``` 这个查询首先将学生、选课和课程表联接,然后筛选出得分大于80的记录。通过GROUP BY和HAVING子句,我们确保了每个学生的所有课程得分都超过80,并且课程数量等于所有高分课程的数量。













剩余18页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 小学信息关键技术用计算机编辑文档北京版.doc
- 基于单片机的食堂售饭收费专业系统设计.doc
- pkpm安全计算软件学习-文档资料.ppt
- 杰图市政管线协同软件简明操作基础手册.doc
- 计算机中数据的表示 ppt.pptx
- 公司项目管理招标文件模板.doc
- C语言习题级答案2.doc
- 河北省互联网+政务服务体系建设的问题和对策研究(1)(1).docx
- 物联网应用关键技术专业人才培养专项方案.doc
- 数据库程设计基础报告.docx
- 营销类网站如何建立(古怪科技)(1).doc
- 杨桥中心校计算机校本培训考试题(1).docx
- 基于电气工程自动化的智能化技术应用分析陈密云(1).docx
- 刍议关于电力系统及自动化中计算机技术的应用策略(1).docx
- 通信公司采购实施管理办法范文模板.doc
- 程序设计基础C在线作业(1).docx


