聚合函数包括:count(),sum(),avg(),max(),min()
为聚合结果指定条件时候,使用having子句
Order by 后面多个排序键,规则优先使用左侧的键,如果存在相同值,在接着参考右侧的键。
使用 HAVING 子句时 SELECT 语句的顺序
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
视图view不能使用order by,使用更新或者插入比较多限制,不推荐对视图进行upadate或者insert
函数:
算法函数:+-*/
ABS(数值): 计算绝对值。
MOD(被除数,除数) : 求余数。 mod(7,3) = 1;
ROUND(对象值,保留小数的位数): 四舍五入;
字符串连接 || ,mysql为CONCAT(str,str2….);
LENGTH(字符串): 计算字符串的长度;
LOWER(str):小写转换;
UPPER(STR) :大写转换;
REPLACE(对象字符串,替换前的字符串,替换后的字符串):
SUBSTRING(对象字符串 FROM 截取的起始位置 FOR 截取的字符数):起始位置第一个是1 – mysql
SUBSTR(对象字符串 , 截取的起始位置 , 截取的字符数):起始位置第一个是1 – oracle
CURRENT_DATE: 日期函数 select CURRENT_DATE; 2018–06-13
CURRENT_TIME :时间函数 select CURRENT_TIME; 09:31:30
CURRENT_TIMESTAMP :当前日期和时间 select CURRENT_TIMESTAMP; 2018-06-13 09:34:26
EXTRACT( 日期元素 FROM 日期 ):
SELECT CURRENT_TIMESTAMP,
EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year,
EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS month,
EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS day,
EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS hour,
EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS minute,
EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS second;
CAST(转换器的值 AS 想要转换的数据类型):
SELECT CAST(‘0001’ AS SIGNED INTEGER) AS int_col; – mysql
SELECT CAST(‘2018-12-14’ AS DATE) AS date_col; – mysql
SELECT CAST(‘0001’ AS INTEGER) AS int_col FROM DUAL; – oracle
SELECT CAST(‘2018-12-14’ AS DATE) AS date_col FROM DUAL; — oracle
COALESCE(数据1,数据2,数据3…): 该函数会返回可变参数中左侧开始第1个不是 NULL 的值。参数个数是可变的,因此可以根据需要无限增加。参数都是null,返回null
谓词:
Like, between ? in ?, in null , is not null, in
EXIST
CASE WHEN < 求值表达式 > THEN < 表达式 >
WHEN < 求值表达式 > THEN < 表达式 >
WHEN < 求值表达式 > THEN < 表达式 >
.
.
.
ELSE < 表达式 >
END
集合运算: UNION (并集)、 INTERSECT (交集)、 EXCEPT (差集)
Oracle中的except改为minus
Inner join ,left join ,right join