首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

增删改查查之高级查询

1.连接查询/多表查询 假设有二张表t1t2: t1字段(id,name,age) t2字段(id,class,score) (1)查询出学生姓名,年龄分数 mysql> SELECT name...列名称):求表列去重后个数 (4)求出score表中学生最高分数 SELECT max(score) FROM score; (5)求出score表中分数最高学号课程号 SELECT...min(score) FROM score; (7)求出分数表中最高分数最低分数分别是多少 SELECT max(score),min(score) FROM score; (8)7基础上,...分别命别名为最高分数最低分数,且取整 SELECT round(max(score)) 最高分数,round(min(score)) 最低分数 FROM score; (9)求出score表中学生平均分数...: 1.如果分组函数存在,显示分组条件字段,则需要加上分组条件 2.如果分组函数单独使用,可以不用加上分组条件 没有分组条件存在情况下,分组函数必须单独存在 如果有分组条件GROUP BY,显示结果集可以包含分组条件字段

1.2K40

MySQLconcat()、concat_ws()、group_concat()函数

语法:group_concat( distinct 连接字段 order by 排序字段 asc/desc )注意: 括号是可选分析: 通过使用distinct可以排除重复值;如果希望结果进行排序...需求1: 以stuName学生名称分组,把得分数score字段值打印一行,逗号分隔(默认) SQL如下 select stuName, GROUP_CONCAT(score) as '当前这个学生分数...#--这里我们可以使用in() 包含+ 子查询方式来 根据上面SQL结果进行匹配包含查询 学生名 SELECT stuName,score,course from student where...上面已经用一句SQL查询出了 三门课最低科目 那么我们就可以列用这个结果集来 当做另外一句SQL所要查询条件 !...想象成一张虚拟表取一个别名 t, 现在t这个是一个临时表,我们查询id,科目,分数,姓名, 就在前面加上需要字段,注意别名#--然后再使用左连接筛选出 对应结果SELECT g.

3.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

concat()、concat_ws()、group_concat()函数使用

distinct可以排除重复值;如果希望结果进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。...需求1: 以stuName学生名称分组,把得分数score字段值打印一行,逗号分隔(默认) SQL如下 select stuName, GROUP_CONCAT(score) as '当前这个学生分数...#--这里我们可以使用in() 包含+ 子查询方式来 根据上面SQL结果进行匹配包含查询 学生名 SELECT stuName,score,course from student where...上面已经用一句SQL查询出了 三门课最低科目 那么我们就可以列用这个结果集来 当做另外一句SQL所要查询条件 !...想象成一张虚拟表取一个别名 t, 现在t这个是一个临时表,我们查询id,科目,分数,姓名, 就在前面加上需要字段,注意别名 #--然后再使用左连接筛选出 对应结果 SELECT g.

68630

Hive快速入门系列(10) | Hive查询语法

4、Cluster by(字段) 除了具有Distribute by功能外,还会对字段进行排序。...(3)紧跟列名,也可以列名别名之间加入关键字‘AS’ select s_id as myid ,c_id from score; 二. 常用函数 1....分组 7.1 GROUP BY语句   GROUP BY语句通常会聚合函数一起使用,按照一个或者多个列队结果进行分组,然后每个组执行聚合操作。 1....每个MapReduce内部排序(Sort By)局部排序 Sort By:每个MapReduce内部进行排序全局结果集来说不是排序。...对于distribute by进行测试,一定要分配多reduce进行处理,否则无法看到distribute by效果。 先按照学生id进行分区,再按照学生成绩进行排序。 1.

1.2K20

JAVASQL查询语句大全,select多表查询,各种查询

order by 排序列 XXX asc 升序 order by 排序列 XXX desc 降序 – emp表中所有员工薪资进行升序(从低到高)排序显示姓名、薪资。...(1~) (2)一个学生只能属于一个班级(11),两者合并结果还是1 因此,班级表学生表是一关系 对于一两张表,可以一方添加列,保存一一方主键,从而保存两张表之间关系...保存另一张表主键,从而保存两张表之间关系 多多 (1)一个学生对应多个老师(1~) (2)一个老师也对应多个学生(1*),两者合并结果是* 因此,学生老师表是多关系 对于多关系...上面小写ab就是AB表别名: – 查询部门员工两张表 select * from dept,emp; 上面查询结果存在大量错误数据, 如果想正确显示部门及部门对应员工,可以通过where...from emp e1, emp e2 where e1.topid = e2.id; 4、(分组、聚合函数)列出最低薪资大于1500各种职位,显示职位职位最低薪资 – 先查询出各种职位最低薪资

2.2K30

【MySQL】DQL语句

8,DQL 下面是黑马程序员展示试题库数据页面 页面上展示数据肯定是在数据库试题库表中进行存储,而我们需要将数据库数据查询出来并展示页面给用户看。...上图中是最基本查询效果,那么数据库其实是很多,不可能在将所有的数据一页进行全部展示,而页面上会有分页展示效果,如下: 当然上图中难度字段当我们点击也可以实现排序查询操作。...分别是: ASC : 升序排列 (默认值) DESC : 降序排列 注意:如果有多个排序条件,当前边条件值一样时,才会根据第二条件进行排序 8.3.2 练习 查询学生信息,按照年龄升序排列...stu; select count(english) from stu; 上面语句根据某个字段进行统计,如果字段某一行值为null的话,将不会被统计。...count(*)  > 2; where having 区别: 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后结果进行过滤。

16030

MySQL高级查询

in,not in,not existsexists可投影多列 -- 把一个查询结果 当成另一个查询 字段,条件或者表(子查询可以应用到任何位置)!...,显示分数排在前5名学员学号分数 --  不使用exists -- 01.查询“高等数学-1” 课程 对应编号 SELECT subjectNo FROM `subject` WHERE SubjectName...,显示分数排在前5名学员学号分数 -- 01.查询“高等数学-1” 课程 对应编号 SELECT subjectNo FROM `subject` WHERE SubjectName='高等数学-...--  01.任何允许使用表达式地方都可以使用子查询 --  02.只出现在子查询但是没有父查询中出现列,结果集中列不能包含!  ...笛卡尔乘积是指在数学,两个集合XY笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X成员而第二个对象是Y所有可能有序其中一个成员[1]  。

3.2K90

MySQL50题-分类总结

下图是MySQL练习题中涉及到4张表和它们具体字段: 学生表 课程表 成绩表 教师表 所有的题目都是根据4张表来进行出题,涉及到了很多MySQL/SQL知识点,希望想提升SQL读者朋友有所帮助....s_id = s2.s_id -- 学生成绩表关联 and c_id in (select c_id from Score where s_id=01) -- 课程进行限制,只01学生课程内...;t2t1相同 order by 3 desc; -- 19、按照各科成绩进行排序,并且显示排名 select * from (select t1.c_id,...c on sc.c_id = c.c_id where sc.s_score < 60; -- 36、查询任何一门课程成绩都在75分以上学生姓名、课程名分数 select s.s_name...= s.c_id group by c.c_id -- 课程编号 order by 3 desc; -- 分组后排序,降序方式 -- 18、查询各科成绩最高分、最低分和平均分:以如下形式显示

73810

学生成绩管理系统数据库设计–MySQLSQL Server

没选课学生显示总成绩为 0 4.2.2.4. if 或 case 语句 – 2题 4.1 若学号sid为学生座位编号,现开始座位号调整,奇数号偶数号对调,如12调、34调…等, 如果最后一位为奇数...,则不调换座位,查询调换后学生座位号(sid)、姓名,按sid排序 4.2 查询各科成绩最高分、最低分和平均分: 以如下形式显示:课程id、课程名、选修人数、最高分、最低分、平均分、及格率、中等率...按各科成绩进行排序,并显示排名 分数重复时保留名次空缺,即名次不连续 6.5 查询各科成绩,按各科成绩进行排序,并显示排名 分数重复时不保留名次空缺,即名次连续 6.6 查询学生 赵雷 变形 课程成绩排名...:学生信息,分数,排名 分数重复时不保留名次空缺,即名次连续 6.7 查询课程 时空穿梭 成绩第2-4名学生,要求显示字段:学号、姓名、课程名、成绩 分数重复时不保留名次空缺,即名次连续 6.8...:课程编号,课程名称,[100-85],[85-70],[70-60],[60-0] 分别所占百分比 结果:保留2位小数 6.11 查询各科成绩前三名记录,按照课程编号分数排序 分数重复时,重复分数按照一名算

6.6K33

Oracle数据库学习

索引 ---- 关系数据库,如果有上万甚至上亿条记录,查找记录时候,想要获得非常快速度,就需要使用索引。 索引是关系数据库某一列或多个列进行排序数据结构。...但是,很多时候,我们并不希望获得所有记录,而是根据条件选择性地获取指定条件记录,例如,查询分数80分以上学生记录。一张表有数百万记录情况下,获取所有记录不仅费时,还费内存网络带宽。...例如,指定条件“分数80分或以上学生”,写成WHERE条件就是SELECT * FROM students WHERE score >= 80。...SELECT语句可以对结果进行重命名。 排序 ---- 排序 我们使用SELECT查询时,细心读者可能注意到,查询结果集通常是按照id排序,也就是根据主键排序。这也是大部分数据库做法。...这种多表查询又称笛卡尔查询,使用笛卡尔查询时非常小心,由于结果集是目标表行数乘积,两个各自有100行记录进行笛卡尔查询将返回1万条记录,两个各自有1万行记录进行笛卡尔查询将返回1亿条记录

1.8K40

数据分析sql面试必会6题经典_数据分析师SQL面试必备50题

”张三”老师可学生,这些学生以外学生就是没学过”张三”老师课 (2) teacher表获取”张三”t_idcourse表获取所有老师t_id课程c_idscore表获取学生S_id...s_id”01″课程分数,并按按分数降序排序 (2)将上面结果作为表a与student表内连接,最后输出学生信息 select b....(2) 查询每个学生平均成绩,就需要对s_id进行group by (3) 使用rank()函数平均分排序打名次 select a.s_id, avg(b.s_score) as avg_score...=b.s_id group by a.s_id; 24、查询各科成绩前三名记录(不考虑成绩并列情况) 解题思路: (1) 首先使用row_number()函数score表中所有课程进行分组并每门课程所有学生分数进行排序...解题思路: (1) score表操作即可 (2) 求每门课平均成绩,需要先课程编号进行group by (3) 最后使用order by平均成绩升序排序,平均成绩相同时按课程号降序排列 select

1.3K10

常见SQL面试题:经典50例

; 查询各科成绩最高最低分, 以如下形式显示:课程号,最高分,最低分 /* 分析思路 select 查询结果 [课程ID:是课程号别名,最高分:max(成绩) ,最低分:min(成绩)] from... 最高分,min(成绩) as 最低分 from score group by 课程号; 查询每门课程被选修学生数 /* 分析思路 select 查询结果 [课程号,选修课程学生数:汇总函数count...“每个”就是分组了 平均成绩大于60分,就是对分组结果指定条件 分析思路 select 查询结果 [学号,平均成绩:汇总函数avg(成绩)] from 从哪张表查找数据 [成绩成绩表,所以查找是成绩表...60学生学号,结果按按分数降序排列 /*  分析思路 select 查询结果 [] from 从哪张表查找数据 [成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group... by 分组 [没有] having 对分组结果指定条件 [] order by 查询结果排序[查询结果按按分数降序排列]; */ select 学号 from score where 课程号='04

1.9K20

sql语句面试经典50题_sql基础知识面试题

group by子句后出现),MySQL可以不用 having 对分组结果指定条件 如:[大于60分] order by 查询结果排序 如:[增序: 成绩 ASC / 降序: 成绩...; 查询各科成绩最高最低分, 以如下形式显示:课程号,最高分,最低分 /* 分析思路 select 查询结果 [课程ID:是课程号别名,最高分:max(成绩) ,最低分:min(成绩)] from...最高分,min(成绩) as 最低分 from score group by 课程号; 查询每门课程被选修学生数 /* 分析思路 select 查询结果 [课程号,选修课程学生数:汇总函数count...“每个”就是分组了 平均成绩大于60分,就是对分组结果指定条件 分析思路 select 查询结果 [学号,平均成绩:汇总函数avg(成绩)] from 从哪张表查找数据 [成绩成绩表,所以查找是成绩表...[学生选修人数(超过2人课程才统计):每门课程学生人数>2] order by 查询结果排序[查询结果按人数降序排序,若人数相同,按课程号升序排序]; */ select 课程号, count(学号

2.8K20

面试 SQL整理 常见SQL面试题:经典50题

group by子句后出现),MySQL可以不用 having 对分组结果指定条件 如:[大于60分] order by 查询结果排序 如:[增序: 成绩 ASC / 降序: 成绩...; 查询各科成绩最高最低分, 以如下形式显示:课程号,最高分,最低分 /* 分析思路 select 查询结果 [课程ID:是课程号别名,最高分:max(成绩) ,最低分:min(成绩)] from...最高分,min(成绩) as 最低分 from score group by 课程号; 查询每门课程被选修学生数 /* 分析思路 select 查询结果 [课程号,选修课程学生数:汇总函数count...“每个”就是分组了 平均成绩大于60分,就是对分组结果指定条件 分析思路 select 查询结果 [学号,平均成绩:汇总函数avg(成绩)] from 从哪张表查找数据 [成绩成绩表,所以查找是成绩表...[学生选修人数(超过2人课程才统计):每门课程学生人数>2] order by 查询结果排序[查询结果按人数降序排序,若人数相同,按课程号升序排序]; */ select 课程号, count(学号

2.2K10

面试中经常被问到 50 个 SQL 题,必须拿下!

; 查询各科成绩最高最低分, 以如下形式显示:课程号,最高分,最低分 /* 分析思路 select 查询结果 [课程ID:是课程号别名,最高分:max(成绩) ,最低分:min(成绩)] from...最高分,min(成绩) as 最低分 from score group by 课程号; 查询每门课程被选修学生数 /* 分析思路 select 查询结果 [课程号,选修课程学生数:汇总函数count...“每个”就是分组了 平均成绩大于60分,就是对分组结果指定条件 分析思路 select 查询结果 [学号,平均成绩:汇总函数avg(成绩)] from 从哪张表查找数据 [成绩成绩表,所以查找是成绩表...60学生学号,结果按按分数降序排列 /* 分析思路 select 查询结果 [] from 从哪张表查找数据 [成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group...[学生选修人数(超过2人课程才统计):每门课程学生人数>2] order by 查询结果排序[查询结果按人数降序排序,若人数相同,按课程号升序排序]; */ select 课程号, count(学号

3.1K30

常见SQL面试题:经典50例

; 查询各科成绩最高最低分, 以如下形式显示:课程号,最高分,最低分 /* 分析思路 select 查询结果 [课程ID:是课程号别名,最高分:max(成绩) ,最低分:min(成绩)] from...最高分,min(成绩) as 最低分 from score group by 课程号; 查询每门课程被选修学生数 /* 分析思路 select 查询结果 [课程号,选修课程学生数:汇总函数count...“每个”就是分组了 平均成绩大于60分,就是对分组结果指定条件 分析思路 select 查询结果 [学号,平均成绩:汇总函数avg(成绩)] from 从哪张表查找数据 [成绩成绩表,所以查找是成绩表...60学生学号,结果按按分数降序排列 /* 分析思路 select 查询结果 [] from 从哪张表查找数据 [成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group...[学生选修人数(超过2人课程才统计):每门课程学生人数>2] order by 查询结果排序[查询结果按人数降序排序,若人数相同,按课程号升序排序]; */ select 课程号, count(学号

6.5K42

平平无奇SQL面试题:经典50例

查询各科成绩最高最低分, 以如下形式显示:课程号,最高分,最低分 /* 分析思路 select 查询结果 [课程ID:是课程号别名,最高分:max(成绩) ,最低分:min(成绩)] from...最高分,min(成绩) as 最低分 from score group by 课程号; 查询每门课程被选修学生数 /* 分析思路 select 查询结果 [课程号,选修课程学生数:汇总函数count...60学生学号,结果按按分数降序排列 /* 分析思路 select 查询结果 [] from 从哪张表查找数据 [成绩表score] where 查询条件 [课程编号为“04”且分数小于60] group...by 分组 [没有] having 对分组结果指定条件 [] order by 查询结果排序[查询结果按按分数降序排列]; */ select 学号 from score where 课程号='04...[学生选修人数(超过2人课程才统计):每门课程学生人数>2] order by 查询结果排序[查询结果按人数降序排序,若人数相同,按课程号升序排序]; */ select 课程号, count(学号

2.5K60

HiveSQL分析函数实践详解

order by 按照uid排序”序号“相同元素进行求和,不同”序号“数累加求和 如果将”序号“认为是分组的话,个人理解这是一个分组求和并累加过程 即分组内求和,分组间累加。...框架是窗口进行进一步分区,框架有两种范围限定方式: 一种是使用 ROWS 子句,通过指定当前行之前或之后固定数目的行来限制分区行数。...学生成绩分析 表:Enrollments (student_id, course_id) 是主键。...1)查询每位学生获得最高成绩和它所对应科目,若科目成绩并列,取 course_id 最小一门。查询结果需按 student_id 增序进行排序。...by student_id order by student_id; 2)查询每一科目成绩最高最低分数学生,输出course_id,student_id,score 我们可以按科目查找成绩最高同学最低同学

18010

数据库基础(四) Sql语句速查(转)

2, image.png 查询各科成绩最高最低分, 以如下形式显示:课程号,最高分,最低分 /* 分析思路 select 查询结果 [课程ID:是课程号别名,最高分:max(成绩) ,最低分:min...查询每门课程被选修学生数 /* 分析思路 select 查询结果 [课程号,选修课程学生数:汇总函数count] from 从哪张表查找数据 [成绩表score] where 查询条件 [没有]...image.png 查询平均成绩大于60分学生学号和平均成绩 /* 题目翻译成大白话: 平均成绩:展开来说就是计算每个学生平均成绩 这里涉及到“每个”就是分组了 平均成绩大于60分,就是对分组结果指定条件...分析思路 select 查询结果 [学号,平均成绩:汇总函数avg(成绩)] from 从哪张表查找数据 [成绩成绩表,所以查找是成绩表score] where 查询条件 [没有] group...by 查询结果排序[课程号从大到小排列:降序desc]; */ select 课程号 from score where 成绩<60 order by 课程号 desc; order by 查询结果排序

73280
领券