MYSQL
select +列名(全部*)
计数函数:AVG(列名)返回某列的平均值
COUNT()返回某列的行数(count(*)表示对表中行的数目进行计数,不管对表列中包含的是空值还是非空值。
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和
distinct去重,只包含不同值 eg:count (distinct city) as 城市 #返回不同城市的数目,命名为城市
时间函数now()
date()
week()
year()eg:where year(列名)=2019
date_add()对时间进行加减法 eg: select date_add(date(now()),interval 1 day),如果负数,则为减法。
datediff()求时间的间隔。datediff(date1,date2)
timediff()求时间间隔
文本函数
条件函数
if null(字段,null)看字段是否为空,不为空则返回该字段,为空则返回函数里的第二个参数的值。
null if (字段,字段/字符串)看两类字段是否相同
from+表名
where
连接符:and,or,in(作用=or)not(否定其后条件的关键字eg:not city=‘上海’)
判断符号:= 等于
<>不等于
<=小于等于大于
=大于等于
between and 在指定的两个值之间
is null 为NULL值
通配符:like%表示任何字符出现任意次数
_匹配单个字符
group by+列名:数据分组,维度分组
通过在group by 添加多个字段,可以对数据切分不同的维度进行比价o
HAVING语句:通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。查找 Person 表中所有重复的电子邮箱:select Email from Person group by Email having count(Email) > 1;
order by+列名:排序
降序排序:DESC 升序排序:ASC
去重排序:distinct
常搭配限制语句:limit(只返回不超过n行的数据)selete * from testtable limit 2,1;(limit X,Y 中X表示跳过X个数据,读取Y个数据,即第三条数据读取,一二条跳过)
selete * from testtable limit 2 offset 1;(offset X是跳过X个数据,limit Y是选取Y个数据,是从数据库中的第二条数据开始查询两条数据,即第二条和第三条)
*应该保证它是select语句中最后一条子句!
SELECT DISTINCT Salary
FROM Employee
ORDER BY Salary DESC
LIMIT 1 OFFSET 1
XMind: ZEN - Trial Version