渗透多知识点的50个数据库题目
根据给定文件中的标题、描述、标签以及部分内容,可以总结出以下相关知识点: ### SQL基础概念及用法 #### 1. 基本表结构 - **学生表(Student):** 包含学号(S#)、学生姓名(Sname)、学生年龄(Sage)、学生性别(Ssex)。 - **课程表(Course):** 包含课程编号(C#)、课程名字(Cname)、教师编号(T#)。 - **成绩表(SC):** 包含学号(S#)、课程编号(C#)、成绩(score)。 - **教师表(Teacher):** 包含教师编号(T#)、教师名字(Tname)。 #### 2. SQL查询语句详解 - **子查询:** 使用`SELECT`子句嵌套在另一个`SELECT`语句中,用于获取内层查询的结果作为外层查询的条件或数据源。 - **示例1:** 查询“001”课程比“002”课程成绩高的所有学生的学号。 ```sql SELECT a.S# FROM (SELECT S#, score FROM SC WHERE C# = '001') a, (SELECT S#, score FROM SC WHERE C# = '002') b WHERE a.score > b.score AND a.S# = b.S#; ``` - **聚合函数:** `AVG`, `COUNT`, `SUM`等用于对数据进行统计分析。 - **示例2:** 查询平均成绩大于60分的同学的学号和平均成绩。 ```sql SELECT S#, AVG(score) FROM sc GROUP BY S# HAVING AVG(score) > 60; ``` - **示例3:** 查询所有同学的学号、姓名、选课数、总成绩。 ```sql SELECT Student.S#, Student.Sname, COUNT(SC.C#), SUM(score) FROM Student LEFT OUTER JOIN SC ON Student.S# = SC.S# GROUP BY Student.S#, Sname; ``` - **模式匹配:** 使用`LIKE`关键字进行模糊匹配。 - **示例4:** 查询姓“李”的老师的个数。 ```sql SELECT COUNT(DISTINCT Tname) FROM Teacher WHERE Tname LIKE '李%'; ``` - **连接查询:** 使用`JOIN`关键字将多个表连接起来进行查询。 - **示例5:** 查询没学过“叶平”老师课的同学的学号、姓名。 ```sql SELECT Student.S#, Student.Sname FROM Student WHERE S# NOT IN ( SELECT DISTINCT(SC.S#) FROM SC, Course, Teacher WHERE SC.C# = Course.C# AND Teacher.T# = Course.T# AND Teacher.Tname = '叶平' ); ``` - **示例6:** 查询学过“001”并且也学过编号“002”课程的同学的学号、姓名。 ```sql SELECT Student.S#, Student.Sname FROM Student, SC WHERE Student.S# = SC.S# AND SC.C# = '001' AND EXISTS ( SELECT * FROM SC AS SC_2 WHERE SC_2.S# = SC.S# AND SC_2.C# = '002' ); ``` #### 3. 复杂查询 - **存在性子查询:** 使用`EXISTS`关键字来判断子查询结果是否存在。 - **示例7:** 查询学过“叶平”老师所教的所有课的同学的学号、姓名。 ```sql SELECT S#, Sname FROM Student WHERE S# IN ( SELECT S# FROM SC, Course, Teacher WHERE SC.C# = Course.C# AND Teacher.T# = Course.T# AND Teacher.Tname = '叶平' GROUP BY S# HAVING COUNT(SC.C#) = ( SELECT COUNT(C#) FROM Course, Teacher WHERE Teacher.T# = Course.T# AND Tname = '叶平' ) ); ``` - **比较子查询:** 在查询中使用子查询获取特定值,并与查询结果进行比较。 - **示例8:** 查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名。 ```sql SELECT S#, Sname FROM ( SELECT Student.S#, Student.Sname, score, (SELECT score FROM SC AS SC_2 WHERE SC_2.S# = Student.S# AND SC_2.C# = '002') AS score2 FROM Student, SC WHERE Student.S# = SC.S# AND C# = '001' ) S_2 WHERE score2 < score; ``` #### 4. 其他高级用法 - **排除条件:** 使用`NOT IN`或`NOT EXISTS`来筛选不符合条件的数据。 - **示例9:** 查询所有课程成绩小于60分的同学的学号、姓名。 ```sql SELECT S#, Sname FROM Student WHERE S# NOT IN ( SELECT Student.S# FROM Student, SC WHERE S.S# = SC.S# AND score > 60 ); ``` - **示例10:** 查询没有学全所有课的同学的学号、姓名。 ```sql SELECT Student.S#, Student.Sname FROM Student, SC WHERE Student.S# = SC.S# GROUP BY Student.S#, Student.Sname HAVING COUNT(C#) < (SELECT COUNT(C#) FROM Course); ``` #### 5. 实战应用 - **相似条件查询:** 使用`IN`关键字或`EXISTS`结合子查询来找出与某个标准相似的数据。 - **示例11:** 查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名。 ```sql SELECT S#, Sname FROM Student, SC WHERE Student.S# = SC.S# AND C# IN ( SELECT C# FROM SC WHERE S# = '1001' ); ``` 这些题目涵盖了SQL语言的基础语法到复杂查询的各种应用场景,对于学习和掌握SQL语言来说是非常全面且实用的练习材料。通过这些练习,不仅可以帮助学习者熟悉基本的SQL语句,还能进一步提升处理复杂数据查询的能力,对于应对数据库相关的考试或面试都有很大的帮助。
剩余6页未读,继续阅读
- 粉丝: 61
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 串口转网络模块源码,uart tcp ip 以太网关模块 stm32f107主控,曾经量产过 pcb ad10工程 mcu keil工程 上位机 vc6工程 提供所有设计文件源码,可学习,可生
- MW54 微型涡喷发动机 涡轮喷气发动机 平面图纸+三维建模,文件格式是STP,通用格
- 码垛机图纸,伺料码垛机图纸,腻子粉码垛机图纸,可借鉴学习,参考设计
- 共90套左右各类污水处理设备三维模型,管道设备三维模型,石油化工设备三维模型 sw打开,大部分是可以编辑修改尺寸的 有装配体模型,有零部件模型
- springboot 集成 lemon-imui vue tio 完成即时通讯
- 30天开发操作系统 第 13 天 - 定时器 v2.0
- 基于React框架的Airbnb风格民宿租赁门户网站设计源码
- 燃料电池汽车Cruise整车仿真模型(燃料电池电电混动整车仿真模型) 1.基于Cruise与MATLAB Simulink联合仿真完成整个模型搭建,策略为多点恒功率(多点功率跟随)式控制策略,策略模
- 基于Vue3、uniapp的树洞公众号语聊搭子陪玩社交社区论坛礼物特效IM聊天系统设计源码
- comsol 离散裂隙 两相流模型
- FLAC3D后处理,将云图转为三维,可视化更强 图一为flac原图,图二图三为处理后的图 内容包括:案例文件,fish代码和matlab代码
- 汽车BCM程序源代码 国产车BCM程序源代码 外部灯光:前照灯、小灯、转向灯、前后雾灯、日间行车灯、倒车灯、制动灯、角灯、泊车灯等 内部灯光:顶灯、钥匙光圈、门灯 前后雨
- 纯电动汽车仿真、纯电动公交、纯电动客车、纯电动汽车动力性仿真、经济性仿真、续航里程仿真 模型包括电机、电池、车辆模型 有两种模型2选1: 1 完全用matlab simulink搭建的模型 2用
- 电机控制器,两种基于滑模观测器的PMSM无感矢量控制仿真(开关设置区分): 1. PLL+滑模(降低高频开关噪声); 2. arctan+滑模; 有配套算法原理资料
- 包含光热电站的综合能源系统优化运行规划(MATLAB+cplex) 采用Matlab程序Yalmip+Cplex求解 系统中包含电、热、冷、气 系统中机组有:风力,光伏,燃气轮机,P2G, 电制冷,O
- 双馈风力发电系统模型 Matlab simulink仿真运行 可直接跑