聚合函数

聚合函数 count,max,min,avg,sum… select count (*) from T_Employee
select Max(FSalary) from T_Employee

排序 ASC升序 DESC降序 select * from T_Employee order by Fage

先按年龄降序排列。如若岁数相近,则按工资升序排列 select * from
T_Employee order by FAge DESC,FSalary ASC

order by 要放在 where 子句之后

通配符过滤 通配符过滤用like 单字符通配符_’ 多字符通配符%’ select *
from T_Employee where FName like ‘_erry’

NULL 是不知底的野趣,并不是未有

SQL ISNULL(卡塔尔、NVL(State of Qatar、IFNULL(卡塔尔(قطر‎ 和 COALESCE(State of Qatar 函数请看上边包车型的士 Products 表:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder 1 computer 699 25
15 2 printer 365 36 3 telephone 280 159 57

如果 UnitsOnOrder 是可选的,并且能够满含 NULL 值。

咱俩利用如下 SELECT 语句:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder卡塔尔国FROM
Products在地点的例证中,假使有 UnitsOnOrder 值是 NULL,那么结果是 NULL。

微软的 ISNULL(卡塔尔国 函数用于规定如何地理 NULL 值。

NVL(State of Qatar, IFNULL(卡塔尔国 和 COALESCE(State of Qatar 函数也足以达到规定的标准相像的结果。

在这,大家盼望 NULL 值为 0。

下边,如果 UnitsOnOrder 是 NULL,则不实惠总结,由此只要值是 NULL 则
ISNULL(State of Qatar 再次回到 0

用SQL语句询问NULL的数目不能够用=或 而用is NULL大概is not NULL select *
from T_Employee where FName is NULL

in(23,25卡塔尔(قطر‎同有时间包容三个值。相当于 23 or 25

between 20 and 30 相称介于20到30以内的数

BETWEEN 操作符在 WHERE
子句中利用,成效是选项介于五个值期间的数量范围。BETWEEN 操作符操作符
BETWEEN … AND
会选用介于三个值时期的数码范围。那些值能够是数值、文本恐怕日期。

SQL BETWEEN 语法SELECT column_name(s)FROM table_nameWHERE
column_nameBETWEEN value1 AND value2原始的表 (在实例中利用:卡塔尔Persons
表:

Id LastName FirstName Address City 1 亚当斯 John Oxford Street London 2
Bush George Fifth Avenue York 3 Carter Thomas Changan Street Beijing 4
Gates Bill Xuanwumen 10 Beijing BETWEEN 操作符实比如需以字母顺序显示介于
亚当斯和 Carter之间的人,请使用下边包车型地铁 SQL:

SELECT * FROM PersonsWHERE LastNameBETWEEN ‘Adams’ AND
‘Carter’结果集:Id LastName FirstName Address City 1 Adams John Oxford
Street London 2 Bush George Fifth Avenue New York

更加多详细内容请查看:mysql教程-sql.htm”>

group by分组

GROUP BY 语句GROUP BY
语句用于结合合计函数,根据多少个或多少个列对结果集进行分组。

SQL GROUP BY 语法SELECT column_name,
aggregate_function(column_name)FROM table_nameWHERE column_name
operator valueGROUP BY column_name

select FAge, count(*) from T_Employee Group by Fage
先把类似的Fage分一组,再总结每一组的个数

group
by子句要放在where子句之后。假诺想取某些年龄段人数大于1的,无法用where
count 1 ,因为聚合函数不能够放在where子句之后。要用having子句
Having是对分组后的列实行过滤,能用的列和select中的相仿。如下例中则不能够用having
Fsalary二〇〇二 只可以用where Fsalary二零零三 select FAge, count(*) from
T_Employee Group by FAge having count(*) 1;

约束结果集的界定 select Top 3 * from T_Employee order by FSalary DESC

从第六名带头选3个.2005后能够用Row_Number函数 select Top 3 * from
T_Employee where FNumber not in(select TOP 5 FNumber from T_Employee
order by FSalary DESC) order by FSalary DESC

发表评论

电子邮件地址不会被公开。 必填项已用*标注