where group by having 的区别
where是用来筛选from的指定的操作所选定的row
group by 是用来筛选 where子句的输出
having是从分组的结果中筛选行
SELECT COUNT(userId),LEFT(tdr.createTime,10) FROM t_digcost_record tdr WHERE 1=1 AND tdr.createTime BETWEEN ‘2018-01-04 00:00:00’ AND ‘2018-01-10 23:59:59’ GROUP BY LEFT(tdr.createTime,10);
SELECT * FROM user WHERE name LIKE ‘_A’
——查询 以任意字符+A 开头的name 的记录
SELECT * FROM t_user WHERE role BETWEEN 1 AND 4;
查询角色是1到4之间的 包含 1和4的记录
关联表 查询:
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
判断null值 ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SELECT UCASE(PASSWORD) FROM USER 查询结果转换成大写类型的结果LCASE(clumn)把查询出来的结果转换成小写
SELECT MID(PASSWORD,1,5) FROM USER; 返回密码的前4位,如果省略1,则截取从第5个往后的
SELECT LEN(column_name) FROM table_name返回列的长度
SELECT ROUND(column_name,decimals) FROM table_name
——四舍五入的列,和四舍五入的小数位数
now()函数 返回的是数据库的当前时间;
select format(now(),’YYYY-MM-DD’)as date from user;