|
在所有数据库操作中,查询操作都是最复杂的,不过不要紧,大家只要能紧跟着我的节奏来学习,一切都很容易。
我们先来看一下查询语句的完整语法,大家只要弄明白这一句,其余都查询方法都是它的变体,自然也就明白了。
- select [选项] 列名 [from 表名] [where 条件] [group by 分组] [order by 排序][having 条件] [limit 限制]
复制代码 语句解释:
select --是查询关键词,记住即可,不必说。
[选项] --方括号代表这个位置可写不写。常用的选项有下面这些。
- ORDER BY – 按照指定列排序返回结果的子句
- DISTINCT – 只返回结果集合内唯一行的关键词
- COUNT -- 返回匹配查询的数据行总数数值的函数
- AVG – 该函数返回指定列的平均值
- SUM –该函数把指定的列中的数字加起来
- MIN – 该函数返回列中最小的非NULL值
- MAX –该函数返回列中的最大值
- GROUP BY – 按列汇集查询函数结果的子句
复制代码 目前,这些选项大家可能不理解,没有关系,现在只要知道选项代表什么即可。
列名 --即字段名
[from 表名] --表示form和表名可写可不写,当然,如果真的不写,那么执行结果就不是查询数据表中的数据了,而是其它含义。
[where 条件] --可写可不写。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的数据。
- 注意:使用通配查询的效率不高,应当尽可能的不用。
复制代码
[group by 分组] --对查询结果进行分组,可写可不写。
例如:select avg(age),sex from stu group by sex; --含义为:在stu表中查询男生和女生的平均年龄,将查询结果按照性别分组显示。
[order by 排序] --对查询结果进行排序,可写可不写。
例如:select * from stu order by age desc; --含义为:查询stu表的全部数据,将查询结果按照年龄倒序排列。desc是倒序,asc是正序。
[having 条件] --一般不用,了解一下即可。
[limit 限制] --限制查询结果的数量。
例如:select * from stu order by age desc limit 0,3; --含义为:查询stu表的全部数据,并按照年龄倒序排列,然后输出第0到第3行。一般用来做分页。
至此,select查询语句的全部语法我们已剖析完成,select语句有很多种写法,如果不懂语法结构,将会带来非常大的困难,所以,不论如何都要先理解本文,然后再继续下面的学习。
ok,这节我们就讲到这里,下一篇继续。
|
|