查询

来源:互联网 发布:淘宝低价引流软件 编辑:程序博客网 时间:2024/06/11 17:36
SELECT [DISTINCT] {*|列名[别名],....}
FROM 表名
[WHERE 过滤条件]
[ORDER BY 列1 ,列2....]






查询操作的分类
-投影操作
制定查询结果中能显示哪些列
-选择操作
制定哪些行出现在结果中
-排序操作
制定查询的结果以什么样的顺序显示




列别名
使用别名 ,在多个同样的列名的时候,使用别名更容易区分.
在列名或表明用AS关键字来提供别名,
SELECT 列A AS A, 列B AS B, 列C AS C FROM 表明 AS T
当使用表的别名是,可以再同一SQL语句中的列名使用别名,例如
SELCLET T.列A AS A ,T.列B AS B,T.列C AS C FROM 表名AS T


返回限定行数查询
select 列1 列2 from t_student LIMIT 开始序号,返回的行数
如果用1个参数 表示从第一行开始返回指定行数的结果
如果用2个参数,则表示从指定行开始。
注意:limit序号从0开始,limit只能用于mysql中。
运算符  含义
= 是否相等
!= 是否不等
^= 是否不等
<> 是否不等
> 大于
>= 大于或等于
< 小于
<= 小于或等于






AND
OR
between and
age in(18,20,22)
age not in(18,20,22)




like 
通配符
_通配符  任何单个字符
%通配符  包含零个或多个任意字符




处理空值数据
不能用=null 应该用 is null 或者is not null
使用任何比较运算符来匹配null得到的都是false比如null=null返回false.


select * from 表 order by 列a,列b,列c


可以对字母数字时间等排序.


ASC 表示升序排序 DESC 表示降序排序 order by默认升序排序




查询SQL的执行顺序
第一步 执行FROM
第二步 where 条件过滤
第三步 执行select投影列
第四步 执行order by排序






聚合函数和分组


聚合函数的分类:                         
COUNT 统计行数量
SUM:获取单个列的合计值
AVG:计算某个列的平均值
MAX:计算列的最大值
MIN:计算列的最小值


select count (计数规范)FROM 表名




* 计算所有选择的行 包括null值
all列 计算指定列的所有非空值行,如果仅仅是指定列而不带ALL或者DISTINC,这是默认操作
DISTINCT 计算指定列的所有唯一非空值行.去掉重复的记
统计某列合计值
select sum() from 表明;
select sum(all 年龄) from 表明


select sum(age)as '总年龄' ,MAX(age)as '最大年龄' ,MIN(age) as  '最小年龄'
,AVG(age) as '平均年龄' from person;


SQL提供了一种技术,可以将表中的行分组,然后在每个组上应用聚合函数.
select 列A ,聚合函数(聚合函数规范)FROM 表明
where 过滤条件
group by 列A...
分组group by 子句是在where条件过滤后的结果中完成,如果没有where条件则直接对FROM表中的数据进行分组.
GROUP BY会将制定列中有相同数据的分为一组.






select  班级, count(班级) from 学生表 GROUP BY 班级;


having子句
having子句在group by 子句后执行


标准结构
select 列A,聚合函数(聚合函数规范)FROM 表名
where 过滤条件
group by 列A
having 过滤条件




select 班级,avg(年龄) from 学生表
group by 班级
having avg(年龄)>20




二者都是过滤条件,where运行在分组前,因此不能执行任何聚合函数.Having是运行在分组后,只能用作聚合函数的过滤.






SQL执行顺序
FROM
WHERE条件过滤
GROUP BY 分组
SELECT 投影列
HAVING条件过滤
ORDER BY 排序
0 0
原创粉丝点击