搭建网站多少时间,高校网站建设运维体系问题,新开传奇最大网站999,百度收录提交接口教程来源#xff1a;B站视频BV1Vy4y1z7EX
001-数据库概述_哔哩哔哩_bilibili
我听课收集整理的课程的完整笔记#xff0c;供大家学习交流下载#xff1a;夸克网盘分享
本文内容为完整笔记的第六篇
分组查询DQL总结P41-P66
1、把查询结果去除重复记录 注意#xf… 教程来源B站视频BV1Vy4y1z7EX
001-数据库概述_哔哩哔哩_bilibili
我听课收集整理的课程的完整笔记供大家学习交流下载夸克网盘分享
本文内容为完整笔记的第六篇
分组查询DQL总结P41-P66
1、把查询结果去除重复记录 注意原表数据不会被修改只是查询结果去重。去重需要使用一个关键字distinct distinct只能出现在所有字段的最前方。 ename有14行job只有4行 distinct出现在jobdeptno两个字段之前表示两个字段联合起来去重。 统计一下工作岗位的数量去重后依旧可以使用分组函数 2、连接查询 2.1、什么是连接查询 从一张表中单独查询称为单表查询emp表和dept表联合起来查询数据从emp表中取员工名字从dept表中取部门名字.这种跨表查询多张表联合起来查询数据被称为连接查询。2.2、连接查询的分类 根据语法的年代分类 SQL921992年的时候出现的语法SQL991999年的时候出现的语法我们这里重点学习sQL99.这个过程中简单演示一个sQL92的例子根据表连接的方式分类 内连接 等值连接非等值连接自连接外连接 左外连接左连接右外连接右连接全连接不讲2.3、当两张表进行连接查询时没有任何条件的限制会发生什么现象 案例查询每个员工所在部门名称 两张表连接没有任何条件限制 当两张表进行连接查询没有任何条件限制的时候最终查询结果条数是两张表条数的乘积这种现象被称为笛卡尔积现象。笛卡尔发现的这是一个数学现象.2.4、怎么避免笛卡尔积现象 连接时加条件满足这个条件的记录被筛选出来 思考最终查询的结果条数是14条但是匹配的过程中匹配的次数减少了吗还是56次只不过进行了四选一。次数没有减少。select字段的时候每个字段会在两个表里面都查一遍所以给表起别名然后指定表的字段进行筛选 这里的e. d. 用的是SQL92语法 注意通过笛卡尔积现象得出表的连接次数越多效率越低尽量避免表的连接次数。2.5、内连接之等值连接。 案例查询每个员工所在部门名称显示员工名和部门名 emp e和dept d表进行连接。条件是e.deptnod.deptnoSQL92语法 SQL99语法 join前的inner被省略 条件是等量关系所以被称为等值连接。 2.6、内连接之非等值连接 案例找出每个员工的薪资等级要求显示员工名、薪资、薪资等级 条件不是一个等量关系称为非等值连接。 2.7、内连接之自连接 案例查询员工的上级领导要求显示员工名和对应的领导名技巧一张表看成两张表。 员工的领导编号 领导的员工编号 以上就是内连接中的自连接技巧一张表看做两张表。2.8、外连接 内连接A和B连接AB两张表没有主次关系。平等的。 内连接的特点完成能够匹配上这个条件的数据查询出来。 所以没有人从属四部门的时候就不会显示四部门了 外连接右外连接 right代表什么表示将join关键字右边的这张表看成主表主要是为了将这张表的数据全部查询出来捎带着关联查询左边的表.在外连接当中两张表连接产生了主次关系。外连接左外连接 带有right的是右外连接又叫做右连接。带有left的是左外连接又叫做左连接。任何一个右连接都有左连接的写法。任何一个左连接都有右连接的写法。重点是指定谁是主表outer外连接是可以省略的带着可读性强。 思考外连接的查询结果条数一定是-内连接的查询结果条数正确案例查询每个员工的上级领导要求显示所有员工的名字和领导名 因为老板没上级所以需要以员工表为主表显示所有员工来把老板一起显示出来 2.9、三张表四张表怎么连接 语法 一条SQL中内连接和外连接可以混合。都可以出现案例找出每个员工的部门名称以及工资等级要求显示员工名、部门名、薪资、薪资等级 案例找出每个员工的部门名称以及工资等级还有上级领导要求显示员工名、领导名、部门名、薪资、薪资等级 3、子查询 3.1、什么是子查询 select语句中嵌套select语句被嵌套的select语句称为子查询.3.2、子查询都可以出现在哪里呢 3.3、where子句中的子查询 案例找出比最低工资高的员工姓名和工资 3.4、from子句中的子查询 注意from后面的子查询可以将子查询的查询结果当做一张临时表-技巧案例找出每个岗位的平均工资的薪资等级第一步找出每个岗位的平均工资按照岗位分组求平均值 第二步克服心理障碍把以上的查询结果就当做一张真实存在的表t t表和s表进行表连接条件t表avgsalbetween s.losal and s.hisal 3.5、select后面出现的子查询这个内容不需要掌握了解即可 案例找出每个员工的部门名称要求显示员工名部门名 单行处理嵌套的select只是在每一行处理的时候把部门名找出来了 注意对于select后面的子查询来说这个子查询只能一次返回1条结果多于1条就报错了 4、union合并查询结果集 案例查询工作岗位是MANAGER和SALESMAN的员工直接查两种岗位的员工 通过union合并查询结果 union的效率要高一些。对于表连接来说每连接一次新表则匹配的次数满足笛卡尔积成倍的翻。。。但是union可以减少匹配的次数。在减少匹配次数的情况下还可以完成两个结果集的拼接。 union在使用的时候有注意事项吗 union在进行结果集合并的时候要求两个结果集的列数相同。 集合并时列和列的数据类型也要相同 5、limit 5.1、limit是将查询结果集的一部分取出来通常使用在分页查询当中 百度默认一页显示10条记录.分页的作用是为了提高用户的体验因为一次全部都查出来用户体验差。可以一页一页翻页看.5.2、limit怎么用呢 完整用法limit startIndexlength startIndex是起始下标length是长度.起始下标从0开始缺省用法limit 5这是取前5.按照薪资降序取出排名在前5名的员工 5.3、注意mysql当中limit在order by之后执行5.4、取出工资排名在[3-5]名的员工 5.5、取出工资排名在[5-9]名的员工 语句如下 5.6、分页 每页显示3条记录 每页显示pageSize条记录 记公式limit (pageNo-1) *pageSize, pageSize6、关于DQL语句的大总结 DQL语句 执行顺序