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题目精选练习的更多相关文章

  1. LeetCode SQL题目(第一弹)

    LeetCode SQL题目 注意:Leetcode上的SQL编程题都提供了数据表的架构程序,只需要将它贴入本地数据库即可调试自己编写的程序 不管是MS-SQL Server还是MySQL都需要登陆才 ...

  2. Oracle语法 及 SQL题目(一)

    目录 课例复制 SQL题目一 SQL题目二 SQL题目三 笔记 课例复制 OCM 全称:Oracle Certified Master 认证大师 含义:Oracle 原厂推出的数据库方向最高级别认证 ...

  3. Oracle语法 及 SQL题目(三)

    目录 SQL题目六 第一个问题思路(查询酒类商品的总点击量) 第二个问题思路(查询每个类别所属商品的总点击量,并按降序排列) 第三个问题思路(查询所有类别中最热门的品种(点击量最高),并按点击量降顺序 ...

  4. 网上一些sql题目的解决(网上答案+自己答案)

    此篇博客内容引自“MySQL经典练习题及答案” 废话不不多说!!! 建表.插入数据. --建表 --学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name ...

  5. 面试题中遇到的SQL题目

    1.假设有一张表示cj表 Name Subject Result 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 82 要求查询结果: 姓名 语文 ...

  6. 感觉挺有意思的SQL题目

    1.有如下数据,要求查询每个班最低分和最高分,并将最高分与最低分显示为同一列 ID Student CourseName Score1 张三 English 802 张三 Math 703 张三 Ch ...

  7. sql 题目

    1.自增列 通用: ) from table b where b.sid<a.sid) ,* from table a; ,),* from ... 第二个已经有主键自增列的就不可以用了 还有就 ...

  8. Oracle语法 及 SQL题目(二)

    目录 课例复制 思考题四 解题思路 思考题五 解题思路 课例复制 思考题四 最近,经过你的努力,你得到了一份工作,成为了百货公司的一位经理. 到位后,你发现你的销售数据库中有两张表,一个是商店促销时间 ...

  9. Leetcode中的SQL题目练习(二)

    175. Combine Two Tables https://leetcode.com/problems/combine-two-tables/description/ Description Pe ...

随机推荐

  1. InnoDB全文索引

    ### 如果想了解全文索引,可以直接将本文复制到mysql的新建查询中,依次执行,即可了解全文索引的相关内容及特性. -- InnoDB全文索引 -- 建表 CREATE TABLE fts_a ( ...

  2. javascript实现Html Table数据表分页

    直接调用: <style type="text/css">           th         {             font-size:18px;     ...

  3. python之闲聊数据类型及常用操作符

    Day 1-afternoon 所谓闲聊,也称gossip.下面开始... 整型 python3 的整型与长整型进行了无缝结合,长度不受限制. 浮点型 包括科学计数法 E.(用法同C) 布尔类型 即特 ...

  4. TCP/UDP Socket调试工具提供了TCP Server,TCP Client,UDP Server,UDP Client,UDP Group 五种Socket调试方案。

    一.TCP通信测试: 1)   创建TCP Server: 选中左方的TCP Server, 然后点击”创建”按钮,软件弹出监听端口输入框 输入监听端口后,即创建了一个在指定端口上进行监听的TCP S ...

  5. MATLAB中.m文件生成.dll

    1.配置编译环境 在命令行窗口输入: mbuild -setup 如果出现以下提示信息说明成功: 如果提示信息为: 错误使用mbuild(line 164) Unable to complete su ...

  6. VisualGC,JVMStat安装配置

    通过VisualGC工具可以通过图形化方式查看JVM垃圾收集的情况. http://www.oracle.com/technetwork/java/jvmstat-142257.html 下载 htt ...

  7. Ubuntu Linux使用sudo命令搭建java环境

    搬运stackoverflow 注意,以下所有命令需要在root权限下执行 1. 在Ubuntu下打开终端命令或用ssh连接到linux. 2. 更新仓库(只有Ubuntu17.4及以下系统可用): ...

  8. Activation HDU - 4089 (概率DP)

    kuangbin的博客 强 #include <bits/stdc++.h> using namespace std; const int MAXN = 2005; const doubl ...

  9. CF922D Robot Vacuum Cleaner 贪心+排序

    正确的贪心方法:按照比例排序. code: #include <bits/stdc++.h> #define N 200000 #define ll long long #define s ...

  10. psexec局域网执行远程命令

    执行远程命令的工具psexec.exe 下载 一.首先,被控制机器必须开启ipc$,以及admin$,否则无法执行 开启ipc$ net share IPC$ 开启admin$ net share A ...