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 ...
随机推荐
- jquery中prop,attr,data的区别
这两天翻了jq的源码,今天看到了jq关于数据存储的几个方法,遂总结一下,和小伙伴没分享一下,哪里说的不对,还望批评指正~~~ 废话不多说,直接上代码: $(function(){ $('#div1') ...
- python:pycharm中使用pandas读取中文路径报错问题的解决方案
假如你的文件路径名是这样的,例如:test.csv 只要它是小文件(大文件采用分块读取,后续会补上文件分块读取的相关博客),你的内存扛得住,那就直接 import pandas as pd test ...
- Java 基础 面向对象- 成员内部类/局部内部类/举例Comparable 接口的匿名内部类
笔记: package 任务135; /**类的 内部类, *1.相当于说, 我们可以在类的内部再定义类, * 2.成员内部类: * a.是外部类的一个成员,4个修饰符:static, final , ...
- python_网络编程socketserver模块实现多用户通信
服务端: import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): #在这个函数里面 ...
- django创建路径导航
路径导航 : 1.怎样设置需要登录但又不需要验证权限的路径 : 在settings中定义一个列表,列表中以正则的方式放入需要登录但无需验证的权限的项.在 ...
- Python中的基本类型简介
1.变量 变量不仅可以是数字,还可以是任意数据类型 命名规范:变量是用一个变量名表示,变量名必须是大小写英文.数字和下划线_的组合,且不能用数字开头 python中等号“=”是赋值语句,可以把任意数据 ...
- Java8-Lambda-No.02
public class Lambda2 { @FunctionalInterface public static interface Converter<F, T> { T conver ...
- Nginx location规则匹配
^~ 标识符匹配后面跟-一个字符串.匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~ /images/ , 在匹配了/images/这个字符串后就停止对后续的正则匹配 = 精 ...
- python执行playbook
from collections import namedtuple from ansible.parsing.dataloader import DataLoader from ansible.va ...
- learning express step(十三)
learning express error handle code: const express = require('express'); const app = express(); app.g ...
