Mysql数据库核心技术(十六)-查询数据(一)-剖析select语句的完整语法
在所有数据库操作中,查询操作都是最复杂的,不过不要紧,大家只要能紧跟着我的节奏来学习,一切都很容易。我们先来看一下查询语句的完整语法,大家只要弄明白这一句,其余都查询方法都是它的变体,自然也就明白了。
select [选项] 列名 语句解释:
select --是查询关键词,记住即可,不必说。
[选项] --方括号代表这个位置可写不写。常用的选项有下面这些。
ORDER BY – 按照指定列排序返回结果的子句
DISTINCT – 只返回结果集合内唯一行的关键词
COUNT -- 返回匹配查询的数据行总数数值的函数
AVG – 该函数返回指定列的平均值
SUM –该函数把指定的列中的数字加起来
MIN – 该函数返回列中最小的非NULL值
MAX –该函数返回列中的最大值
GROUP BY – 按列汇集查询函数结果的子句目前,这些选项大家可能不理解,没有关系,现在只要知道选项代表什么即可。
列名 --即字段名
--表示form和表名可写可不写,当然,如果真的不写,那么执行结果就不是查询数据表中的数据了,而是其它含义。
--可写可不写。where条件非常之多,但是没有办法,这个必须得掌握,在下面的讲解中我们会对where条件进行详细说明。这里先罗列如下:
=等于
<> 不等于
!= 不等于
< 小于
> 大于
!< 不小于
!> 不大于
<= 小于等于
>= 大于等于
用法:
例如:WHERE 列名 = 10;in 在范围内 例如:WHERE 列名 in (值1,值2)
not in 不在范围内例如:WHERE 列名 not in (值1,值2)
between..and... 在之间 例如 WHERE 列名 between 5 and 10;
not between...and... 不在之间 例如 WHERE 列名 not between 5 and 10;
is null 为空 例如 WHERE 列名 is null;
is not null不为空 例如 WHERE 列名 is not null;and和or --多条件查询,例如:where 列名1 = 值1 and 列名2 <= 值2;
like 通配查询,包括%和_两种。
%匹配任何字符0次或多次。
_匹配1个字符。
举个栗子:
WHERE 列名 like 'Fish%'; --表示在指定列的所有数据中匹配前面是Fish的数据。
WHERE 列名 like '_inch'; --表示在指定列的所有数据中匹配任意一个字符+inch的数据。
注意:使用通配查询的效率不高,应当尽可能的不用。
--对查询结果进行分组,可写可不写。
例如:select avg(age),sex from stu group by sex;--含义为:在stu表中查询男生和女生的平均年龄,将查询结果按照性别分组显示。
--对查询结果进行排序,可写可不写。
例如:select * from stu order by age desc; --含义为:查询stu表的全部数据,将查询结果按照年龄倒序排列。desc是倒序,asc是正序。
--一般不用,了解一下即可。
--限制查询结果的数量。
例如:select * from stu order by age desc limit 0,3; --含义为:查询stu表的全部数据,并按照年龄倒序排列,然后输出第0到第3行。一般用来做分页。
至此,select查询语句的全部语法我们已剖析完成,select语句有很多种写法,如果不懂语法结构,将会带来非常大的困难,所以,不论如何都要先理解本文,然后再继续下面的学习。
ok,这节我们就讲到这里,下一篇继续。
学会了,消化中。。。 讲的非常好,浅显易懂~ 讲的真心好 希望楼主发布更多教程,喜欢看。 学会了,继续 呦西,原来如此 支持楼主,多多分享 看完教程后全部能理解,就是记不住,看来还是练的少 楼主的mysql讲的透彻。