Sql题目精选练习
1.每日经典sql
1.1.1 根据三张关系表查询雇员中工资最高的雇员的员工姓名、工资和部门号。
salary(工资表) employee(员工表) department(部门表)

Sql语句:
SELECT
emp.ename AS '姓名',
sal.sal AS '薪资',
dep.depname AS '部门'
FROM
employee AS emp
INNER JOIN salary AS sal
INNER JOIN department dep ON dep.salid = sal.salid
AND dep.empid = emp.empid
AND sal.sal = ( SELECT max( sal ) FROM salary )
1.1.2 找出各月倒数第3天受雇的所有员工.
emp(练习表)
Sql语句:
SELECT
*
FROM
emp
WHERE --关键点:last_day()函数返回日期的最后一天
hiredate = last_day( hiredate ) -2
1.1.3 显示所有员工的姓名,用a替换所有"A"
Sql语句:
SELECT REPLACE --replace函数 替换一些字符
( ename, 'A', 'a' ) name,
job,
hiredate
FROM
emp;
1.1.4 显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.
Sql语句:
SELECT
ename,
--t o_char函数是用来截取时间的 to_char ( hiredate, 'yyyy' ) YEAR,
to_char ( hiredate, 'mm' ) months
FROM
emp
ORDER BY
months,
YEAR ASC;
1.1.5 显示姓名字段的任何位置包含"A"的所有员工的姓名.
Sql语句:
SELECT -- racle instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。
ename
FROM
emp
WHERE
instr( ename, 'A', 1 ) > 0;
1.1.6 列出薪金比“SMITH”多的所有员工. --upper函数 小写字符转化成大写的函数
Sql语句:
SELECT
ename,
sal
FROM
emp
WHERE
sal > ( SELECT sal FROM emp WHERE upper( ename ) = 'SMITH' );
1.1.7 列出受雇日期早于其直接上级的所有员工
Sql语句:
SELECT
e.ename,
m.ename
FROM
emp e,
emp m
WHERE
e.mgr = m.empno
AND ( e.hiredate < m.hiredate );
2.1.1 50道经典的Sql题。

2.1.2 查询“3-105”课程比“6-166”课程成绩高的所有学生的学号
Sql语句:
SELECT
*
FROM
SCORE A
WHERE
A.Cno = '3-105'
AND A.Degree > ( SELECT B.Degree FROM SCORE B WHERE B.Cno = '6-166' AND A.Sno = B.Sno )
2.1.2 查询平均成绩大于80分的同学的学号和平均成绩
Sql语句:
SELECT
Sno '学号',
avg( Degree ) '平均成绩'
FROM
score
GROUP BY
Sno
HAVING
avg( Degree ) > 80
2.1.3 查询所有同学的学号、姓名、选课数、总成绩
Sql语句:
SELECT
A.Sno '学号',
A.Sname '姓名',
count( Cno ) '选课数',
sum( B.Degree ) '成绩'
FROM
student A
INNER JOIN score B ON A.Sno = B.Sno
GROUP BY
A.Sno
2.1.4 查询姓“李”的老师的个数
Sql语句:
SELECT
count( 1 )
FROM
teacher A
WHERE
SUBSTR( A.Tname, 1, 1 ) = '李'
2.1.5 查询没学过“李诚”老师课的同学的学号、姓名 --应该有比这个简便的方法但是我想不到
Sql语句:
SELECT
*
FROM
student
WHERE
sno NOT IN (
SELECT
S.sno
FROM
student S
INNER JOIN score SC ON S.Sno = SC.Sno
AND Sc.Cno IN ( SELECT B.Cno FROM teacher A INNER JOIN course B ON A.Tno = B.Tno AND A.Tname = '李诚' )
)
2.1.6 查询学过“3-105”并且也学过编号“3-245”课程的同学的学号、姓名;
Sql语句:
--第一种方式
SELECT
Sno '学号',
Sname '姓名'
FROM
student
WHERE
Sno IN (
SELECT
A.Sno
FROM
score A
WHERE
A.Cno = '3-105'
AND A.Sno IN ( SELECT B.Sno FROM score B WHERE B.Cno = '3-245' )
)
--第二种方式
SELECT
stu.Sno '学号',
stu.Sname '姓名'
FROM
student AS stu,
score sc,
score c
WHERE
stu.Sno = sc.Sno
AND sc.Sno = c.Sno
AND sc.Cno = '3-105'
AND c.Cno = '3-245'
Sql题目精选练习的更多相关文章
- LeetCode SQL题目(第一弹)
LeetCode SQL题目 注意:Leetcode上的SQL编程题都提供了数据表的架构程序,只需要将它贴入本地数据库即可调试自己编写的程序 不管是MS-SQL Server还是MySQL都需要登陆才 ...
- Oracle语法 及 SQL题目(一)
目录 课例复制 SQL题目一 SQL题目二 SQL题目三 笔记 课例复制 OCM 全称:Oracle Certified Master 认证大师 含义:Oracle 原厂推出的数据库方向最高级别认证 ...
- Oracle语法 及 SQL题目(三)
目录 SQL题目六 第一个问题思路(查询酒类商品的总点击量) 第二个问题思路(查询每个类别所属商品的总点击量,并按降序排列) 第三个问题思路(查询所有类别中最热门的品种(点击量最高),并按点击量降顺序 ...
- 网上一些sql题目的解决(网上答案+自己答案)
此篇博客内容引自“MySQL经典练习题及答案” 废话不不多说!!! 建表.插入数据. --建表 --学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name ...
- 面试题中遇到的SQL题目
1.假设有一张表示cj表 Name Subject Result 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 82 要求查询结果: 姓名 语文 ...
- 感觉挺有意思的SQL题目
1.有如下数据,要求查询每个班最低分和最高分,并将最高分与最低分显示为同一列 ID Student CourseName Score1 张三 English 802 张三 Math 703 张三 Ch ...
- sql 题目
1.自增列 通用: ) from table b where b.sid<a.sid) ,* from table a; ,),* from ... 第二个已经有主键自增列的就不可以用了 还有就 ...
- Oracle语法 及 SQL题目(二)
目录 课例复制 思考题四 解题思路 思考题五 解题思路 课例复制 思考题四 最近,经过你的努力,你得到了一份工作,成为了百货公司的一位经理. 到位后,你发现你的销售数据库中有两张表,一个是商店促销时间 ...
- Leetcode中的SQL题目练习(二)
175. Combine Two Tables https://leetcode.com/problems/combine-two-tables/description/ Description Pe ...
随机推荐
- Linux服务器TIME_WAIT进程的解决与原因
linux服务器上tcp有大量time_wait状态的解决方法和原因解释 毫无疑问,TCP中有关网络编程最不容易理解的是它的TIME_WAIT状态,TIME_WAIT状态存在于主动关闭socket连接 ...
- C#单元测试小例子
步骤简略,特别处进行说明. 以VS2015为例. 1.创建一个解决方案方案,如添加一个ConsoleApplication1的解决方案. 2.在解决方案的默认项目中,添加一个Calc类 3.将Calc ...
- 2018VUE面试题总结
Vue面试题 一:什么是MVVM MVVM是是Model-View-ViewModel的缩写,Model代表数据模型,定义数据操作的业务逻辑,View代表视图层,负责将数据模型渲染到页面上,Vie ...
- webdriver对各种浏览器的支持
1.Firefox WebDriver实现了FireFoxDriver,无需用户下载FireFoxDriver. 优点:FireFoxDriver对页面的自动化测试支持得比较好,很直观地模拟页面的操作 ...
- [Google Guava] 1.2-前置条件
原文链接 译文链接 译者: 沈义扬 前置条件:让方法调用的前置条件判断更简单. Guava在Preconditions类中提供了若干前置条件判断的实用方法,我们强烈建议在Eclipse中静态导入这些方 ...
- 爬取前尘无忧python职位信息并保存到mongo数据库
1.re实现 import re,os import requests from requests.exceptions import RequestException MAX_PAGE = 10 # ...
- CKEditor5 输入文字时拼音和汉字同时输入问题
在使用 CKEditor5 + vue 时,出现输入文字时,拼音和文字一起输入到编辑器到问题.与之前项目中使用 ckeditor 的区别是,这次项目是在 python 架构下局部引入 ckeditor ...
- pyinstaller打包程序包含openpyxl库问题解决
带有openpyxl库时,直接打包,总会失败: 原因:看本地文件...Anaconda3\Lib\site-packages\PyInstaller\hooks\hook-openpyxl.py 发现 ...
- 006_linux驱动之_ioremap函数使用
(一)学习linux驱动之初,对ioremap函数的个人理解 (二)博客:实验探究 ioremap 这篇文章作者通过验证来阐述自己的观点,个人觉得挺好的 (三)函数原型 基本简介 void * __i ...
- MySQL Index 索引提示:force or use
一.使用索引提示(Index Hint)的条件 1.Mysql优化器错误的选择了某个索引.这种情况很少发生,需要做数据库的表.索引的统计分析. 2.某个SQL语句可选择的索引非常多,这个时候优化器执行 ...
