你的位置:首页 > 软件开发 > 数据库 > mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

发布时间:2015-12-27 11:00:08
Sql语句一般顺序GHOL : group by,having ,order by,limit 如果是分组,应该使用对分组字段进行排序的group by语法 Limit start , ...

Sql语句

一般顺序GHOL : group by,having ,order by,limit

    如果是分组,应该使用对分组字段进行排序的group by语法

                    Limit start ,length

                   去除重复记录默认为all

Select distinct 字段  from

Select distinct * from 没用(所有字段组合不相同才认为不相同,用在这里基本没用),记录值完全一样时取其一个

Union查询

把两个select 结果union起来

( select 语句1)union(select 语句2)

mysql查询语句(mysql学习笔记七)

选出英语最高分和数学最高分的学生的id,name ,class

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

注意加括号

有重复记录时的合并

english由高到低和由低到高的结果合并

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

在符合语句中 order by功能受影响,需加上limit

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

子语句的排序

1.将子语句包裹在子括号内

2.子语句的 order by

 中有order by配合Limit使用时才生效。

原因是:union在做子语句时,会对没有limitorder by优化(忽略)

所有结果排序

只需要在最后一个select语句后增加相应排序即可。

子语句括号非必须最后一个排序默认针对所有结果。

Union检索的字段必须个数一样(否者出错),数据类型也一样(发生类型转换列名由第一个select检索列名来定

子查询

语句内部的查询语句

表中数据

mysql查询语句(mysql学习笔记七)

查出英语成绩最高的学生的信息

不用子查询:

mysql查询语句(mysql学习笔记七)

 

但有2个学生英语成绩最高且一致,这个时候在不知道表里数据的情况下就不能使用这种查询方法

   思路:先找出英语成绩最大的那个值,再找出哪些学生的英语成绩与这个最大的值相等。这样一步一步进行查询。

 mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

只检索一个字段时可以作为一个值使用,必须只检索一个字段

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

子查询分类

不同的分类会有不同的使用方式

分类标准:

子查询出现的位置

子查询的返回值形式

  返回值分类:

   单一值,单列,多列,多行多列()

mysql查询语句(mysql学习笔记七)

出现位置:

Where 型,where 

From  from

Exists

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

使用:

标量的:获得一个值后用关系运算符进行运算(> >=,< <= = <> )

列子查询(只是1):获得一列通常是对个行的一列值(一个集合)

 使用in,not in运算符

mysql查询语句(mysql学习笔记七)

查出班级为php101中所有学生的信息

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

集合操作符还有

Any(集合)  集合中的任意一个

=any(集合) 等于集合中的任意一个即可

等同于in

=All(集合) 集合中的所有元素

!=all(集合) 不等于集合中的所有元素等同于Not in

mysql查询语句(mysql学习笔记七)

mysql查询语句(mysql学习笔记七)

!=any(集合) 不等于集合中的任意一个元素成立即可,即为只要不等于其中的一个元素即为成立的。

mysql查询语句(mysql学习笔记七)

注意:这种语法不该出现在实际开发中

Some(集合) 集合中的一些

语法上与any一样

总结:

=any  等同于in

!=all 等同于 not  in

Some 和any同义

All,any ,some可以使用除了=,!=之外运算符,比in强大

返回一行

在参与比较时,使用括号可以构建一行

(field1,field2,…)

表中数据

mysql查询语句(mysql学习笔记七)

现在要查询出和贺8在同样的班级且与他math成绩一样的同学的信息

mysql查询语句(mysql学习笔记七)

子查询

mysql查询语句(mysql学习笔记七)

 

mysql查询语句(mysql学习笔记七)

返回一个表

如果用在from子句内,要求要是一个表

现在是查询结果,必须给这个查询结果起别名

 表中数据

mysql查询语句(mysql学习笔记七)

查询php103班 english不及格的学生信息

mysql查询语句(mysql学习笔记七)

必须有别名

mysql查询语句(mysql学习笔记七)

Exists

如果子查询可以返回数据则返回真,否者返回假

有以下2表

A表 

原标题:mysql查询语句(mysql学习笔记七)

关键词:MYSQL

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。