代码和笔记资源共享论坛提供收集第4天_第1页
代码和笔记资源共享论坛提供收集第4天_第2页
代码和笔记资源共享论坛提供收集第4天_第3页
代码和笔记资源共享论坛提供收集第4天_第4页
代码和笔记资源共享论坛提供收集第4天_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Order by2013 年 4 月 19 日09:39五校对规则,决定排序关系。按照字进行排序Order by 字段 升序|降序(asc|desc)默认 升序,asc。允许多字段排序,指的是,先按照第一个字段排序,如果说,不能区分,才使用第二个字段。以此类推。注意,如果是分组,则应该使用对分组字段进行排序的groupby 语法。limit2013 年 4 月 19 日09:50五限制获得的数量:limit 的语法:Limit offset,row_countOffset 偏移量,从 0 开始。可以省略,默认为 0.Row_count录数,如果数量大于,余下的数,则获取所有余下的即可:sele

2、ct * from teacher_class limit 3, 4;select * from teacher_class limit 5; select * from teacher_class limit 5, 100;distinct2013 年 4 月 19 日10:17五去除重复:重复的,指的是,字,都相同的,而不是部分字段相同的select days from teacher_class ;select distinct days from teacher_class ;select days, begin_date from teacher_class ;select dist

3、inct days, begin_date from teacher_class ;相对的是 all,表示 所有。默认就是 all 行为。Union2013 年 4 月 19 日10:26五联合查询:将多条 select 语句的结果,合并到一起。称之为联合操作。获得 2 个班代课最多的老师:select t_name, days from teacher_class where c_name= 1;0115 order by days desc limitselect t_name, days from teacher_class where c_name=1;0228 order by da

4、ys desc limitunion 联合使用 union 关键字 联合 两个 select 语句即可: (select t_name, days from teacher_class where c_name= 1)union(select t_name, days from teacher_class where c_name= 1)0115 order by days desc limit0228 order by days desc limit场景:获得数据的条件,出现逻辑,或者很难在一个逻辑内表示,就可以拆分成 多个逻辑,分别实现最后将结果合并到一起。Union all:环境:1,获

5、得 0115 班所有代课教师,结果按照代课天数升序排序,同时需要获得 0228 班,结果按照降序排序注意,如果 union 的结果存在重复的可以通过 union 选项 all 达到目的。,那么会消除重复.子查询2013 年 4 月 19 日11:25五场景:查询代课天数最多的哪个老师的信息。select t_name, male from teacher_class order by days limit 1;逻辑没有问题:但是出现了 代课天数一致的最多的如何处理?不能是否有重复的,或者几个重复的。换个思路:先获得最多的代课天数是多少天,Select max(days) from teache

6、r_class;再 判读哪个老师的代课天数和最大值是一样的。允许将上面的查询结果,作为一个值来使用。Var1 = Select max(days) from teacher_class;保存起来Select t_name, gender from teacher_class where days = var1;Select t_name, gender from teacher_class where days = (Selectmax(days) from teacher_class);定义:语句的查询语句,就是子查询语句。子查询分类,不同的分类,会有不同的使用方式:分类标准:子查询出现的位

7、置:子查询的返回值形式:返回值分类:单一值,一列, 多列,表(多行,多列)出现位置: where 型,where 后 from 型,from 后。 exists 型。返回一行在参与比较时,使用括号可以构建一行:(filed1, field2)select t_name, gender, c_name from teacher_class where (gender, c_name) = (select distinct gender,c_name from teacher_class where t_name= and c_name=0115 limit 1);ExistsExistbquer

8、y)判断依据:如果子查询的 可以返回数据,则认为 exists 表达式 返回真。否者,返回假。下面的两个语句完成的是同样的事情:select * from teacher_class where exists (select * from teacher whereteacher_cla=t_id);select * from teacher_class where id in (select t_id from teacher);解决思路是不一样的:exists: 先获得每一条 teacher_class 的数据,然后获得 id 字段,去 teacher 表内查找对应值,找到,说明符合条件。

9、in:先获得所有的 id 的可能性。再在检索teacher_class 数据时,判断当前的 id 是否在 id 集合内。join2013 年 4 月 19 日15:07每个实体,一个表五一个业务逻辑,使用多个实体的数据,多应该在一起使用,将多个表的连接起来。总体思路:将所有的数据,按照某种条件,连接起来,再进行筛选处理。连接的分类:根据连接的条件不同,分类入如下:内连接外连接自然连接外连接:如果负责连接的一个或多个数据不真实存在,则称之为外连接内的处理:内连接,在连接时,是可以省略连接条件的。意味着,所有的左表的数据,都要与右表的共存在 MXN 个连接做接。这种连接,就称之为,交叉连接,或者积

10、。此时可以使用 cross join 代替 innerjoin。可以通过多表查询,不使用 where,做到积。注意:中 crossjoin 与 innerjoin 相同,但在数据库的定义上,交叉连接就是积。是没有条件的 innerjoin。inner join 是默认的连接方案,可以省略 inner。有条件的内连接:会在连接时过滤的连接。where 的写法:数据过滤,理解上,数据安装交叉连接连接完成后,再做数据过滤。on 的写法:在连接时,就对数据进行判断。Using 的写法。Using 要求,负责连接的两个实体之间的字段名称,一致。建议是,在有同名字段时,使用 using ,而在通用条件时,

11、使用 on。在数据过滤时(不是指的连接过滤) 使用 where。注意,查询条件,与外连接通用(外连接,不能使用where 作为连接条件);Using:会去掉结果中的 重复字段,并放在列前。自然连接:通过自己的判断完成连接过程!不需要指定 连接条件。会使用多表内的,相同的字段,作为连接条件。自然连接分成 内外之分:内,natural join外,左外,右外。Natrual left join Natrual right joinselect * from one natural jowo;select * from one inner jowo using (public_field);sele

12、ct * from one natural left jowo;select * from one left jowo using (public_field);select * from one natural right jowo;elect * from one right jowo using (public_field);Join = inner joinCross join (交叉连接,体现上insert join)连接时,支持多表连接:select s.*, si.* from info_class as c left join info_student as s on c.id=s.class_id left joininfo_student_info ass.id=si.id where c.class_name=0331;Match left join class on match.host_id=claOn match.guest_id=claleft join class作业Select h.class_name, g.class_name, m.matchFrom match as m left join

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论