sql语句练习:

https://blog.csdn.net/mrbcy/article/details/68965271 完成。

https://blog.csdn.net/flycat296/article/details/63681089

hive语句综合练习

以下网址中的表为背景表,完成以下练习题:

https://blog.csdn.net/mrbcy/article/details/68965271

1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数

SELECT a.* ,b.s_score AS 01_score,c.s_score AS 02_score FROM

student a

LEFT JOIN score b ON a.s_id=b.s_id AND b.c_id='01'

LEFT JOIN score c ON a.s_id=c.s_id AND c.c_id = '02'  WHERE b.s_score>c.s_score;

2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数

SELECT a.* ,b.s_score AS 01_score,c.s_score AS 02_score FROM

student a LEFT JOIN score b ON a.s_id=b.s_id AND b.c_id='01'

JOIN score c ON a.s_id=c.s_id AND c.c_id='02' WHERE b.s_score<c.s_score;

3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩

SELECT b.s_id,b.s_name,ROUND(AVG(a.s_score),2) AS avg_score FROM

student b

JOIN score a ON b.s_id = a.s_id

GROUP BY b.s_id,b.s_name HAVING ROUND(AVG(a.s_score),2)>=60;

4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩

-- (包括有成绩的和无成绩的)

SELECT b.s_id,b.s_name,ROUND(AVG(a.s_score),2) AS avg_score FROM

student b

LEFT JOIN score a ON b.s_id = a.s_id

GROUP BY b.s_id,b.s_name HAVING ROUND(AVG(a.s_score),2)<60

UNION ALL

SELECT a.s_id,a.s_name,0 AS avg_score FROM

student a

WHERE a.s_id NOT IN (

SELECT DISTINCT s_id FROM score);

-- 5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩

SELECT a.s_id,a.s_name,COUNT(b.c_id) AS sum_course,SUM(b.s_score) AS sum_score FROM

student a

LEFT JOIN score b ON a.s_id=b.s_id

GROUP BY a.s_id,a.s_name;

-- 6、查询"李"姓老师的数量

select count(t_id) from techer where t_name like '李%';

-- 7、查询学过"张三"老师授课的同学的信息

SELECT a.*

FROM student a LEFT JOIN score b ON a.s_id = b.s_id WHERE b.c_id  IN  (

SELECT c.c_id

FROM course c LEFT JOIN techer t ON c.t_id = t.t_id WHERE t.t_name = '张三'

) ;

-- 8、查询没学过"张三"老师授课的同学的信息

SELECT s.*

FROM student s LEFT JOIN (

SELECT a.s_id

FROM student a LEFT JOIN score b ON a.s_id = b.s_id WHERE b.c_id  IN  (

SELECT c.c_id

FROM course c LEFT JOIN techer t ON c.t_id = t.t_id WHERE t.t_name = '张三'

)

) ss ON s.s_id = ss.s_id WHERE ss.s_id IS NULL;

-- 9、查询学过编号为"01"并且也学过编号为"02"的课程的同学的信息

select a.* from

student a,score b,score c

where a.s_id = b.s_id  and a.s_id = c.s_id and b.c_id='01' and c.c_id='02';

-- 10、查询学过编号为"01"但是没有学过编号为"02"的课程的同学的信息

SELECT qq.*

FROM (

SELECT s.*

FROM student s LEFT JOIN score sco ON s.s_id = sco.s_id LEFT JOIN course c ON sco.c_id = c.c_id WHERE c.c_id='01'

) qq

LEFT JOIN (

SELECT stu.*

FROM student stu LEFT JOIN score mysco ON stu.s_id = mysco.s_id LEFT JOIN course cou ON mysco.c_id = cou.c_id WHERE cou.c_id='02'

) pp

ON qq.s_id = pp.s_id WHERE pp.s_id IS NULL;

-- 11、查询没有学全所有课程的同学的信息

SELECT ss.s_id

FROM (

SELECT stu.s_id,COUNT(stu.s_id) AS num

FROM student stu LEFT JOIN score sco ON stu.s_id = sco.s_id LEFT JOIN course cou ON sco.c_id = cou.c_id

GROUP BY stu.s_id

) ss WHERE ss.num < 3

-- 12、查询至少有一门课与学号为"01"的同学所学相同的同学的信息

SELECT stu.*

FROM student stu LEFT JOIN

(

SELECT s.s_id

FROM score s WHERE s.c_id IN(

SELECT  c_id FROM score WHERE s_id = '01'

)GROUP BY s_id

) pp ON stu.s_id = pp.s_id WHERE pp.s_id IS NOT  NULL;

mysql的sql语句练习的2个网址的更多相关文章

  1. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  2. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  3. MySQL数据库sql语句的一些简单优化

    1.查询条件的先后顺序 有多个查询条件时,要把效率高能更精确筛选记录的条件放在后边.因为MySQL解析sql语句是从后往前的(不知是否准确). 例: select a.*,b.* from UsrIn ...

  4. mysql下sql语句 update 字段=字段+字符串

    mysql下sql语句 update 字段=字段+字符串   mysql下sql语句令某字段值等于原值加上一个字符串 update 表明 SET 字段= 'feifei' || 字段; (postgr ...

  5. MySQL数据库SQL语句基本操作

    一.用户管理: 创建用户: create user '用户名'@'IP地址' identified by '密码'; 删除用户: drop user '用户名'@'IP地址'; 修改用户: renam ...

  6. mysql执行sql语句过程

    开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库 ...

  7. MySQL与SQL语句的操作

    MySQL与SQL语句的操作 Mysql比较轻量化,企业用的是Oracle,基本的是熟悉对数据库,数据表,字段,记录的更新与修改 1. mysql基本信息 特殊数据库:information_sche ...

  8. mysql 操作sql语句 目录

    mysql 操作sql语句 操作数据库 mysql 操作sql语句 操作数据表 mysql 操作sql语句 操作数据表中的内容/记录

  9. 不登录到MySQL执行SQL语句

    mysql -e 不登录到MySQL执行SQL语句 mysql -u root -p -e "SHOW DATABASES"

随机推荐

  1. 深度解密Go语言之 map

    目录 什么是 map 为什么要用 map map 的底层如何实现 map 内存模型 创建 map 哈希函数 key 定位过程 map 的两种 get 操作 如何进行扩容 map 的遍历 map 的赋值 ...

  2. bzoj 2131: 免费的馅饼【dp+树状数组】

    简单粗暴的dp应该是把馅饼按时间排序然后设f[i]为i接到馅饼能获得的最大代价,转移是f[i]=max(f[j])+v[i],t[j]<=t[i],2t[i]-2t[j]>=abs(p[i ...

  3. bzoj 1176 [Balkan2007]Mokia 【CDQ分治】

    W过大,很难在线维护,考虑离线算法 给每个操作加一个时间属性n,显然,对于n=i的询问,对它有影响的修改只在n<i中,所以可以CDQ(因为是按时间序读进来的,所以不用排序了 对于统计矩形和,可以 ...

  4. UVA - 10564 Paths through the Hourglass

    传送门:https://vjudge.net/problem/UVA-10564 题目大意:给你一张形如沙漏一般的图,每一个格子有一个权值,问你有多少种方案可以从第一行走到最后一行,并且输出起点最靠前 ...

  5. Photoshop下载

    Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件.Photoshop主要处理以像素所构成的数字图像.使用其众多的编修与绘图工具,可以有效地进行图片编 ...

  6. C#批量插入Sybase数据库,Anywhere 8

    数据库版本是Adaptive Server Anywhere 8 1.添加引用,程序集 iAnywhere.Data.AsaClient.这个和SQLServer的System.Data.SqlCli ...

  7. spring mvc No mapping found for HTTP request with URI [/web/test.do] in DispatcherServlet with name 'spring'

    原因: spring-servlet.xml 中 <context:component-scan base-package="com.test.controller" /&g ...

  8. JavaScript--数组常用方法总结

    JavaScript--数组常用方法总结 测试模板: var arr = ["a", "b", "c", "d", &q ...

  9. 18.3.2从Class上获取信息(内部类接口等)

    内部类 接口.枚举.注释类型

  10. PHP生成和获取XML格式数据

    在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的X ...