Mysql复习笔记(day04 函数 ,SQL顺序)

  1. 单行函数(部分,具体可参考帮助文档)
    1.1 数值函数
    ABS(X) 取绝对值 , SIGN(X)取符号(正数返回一,负数返回-1,零返回0)
    PI() 返回圆周率的值 , CEIL(X)/CEILING(X) 向上取整 , FLOOR(X)向下取整
    LEAST(e1,e2,e3…)获取最小值 GREATEST(e1,e2,e3…)获取最大值
    MOD(x,y)取余 ,相当于 x%y RAND() 取1以内的随机数, RAND(X),取固定的"随机数"
    ROUND(X) 四舍五入 , ROUND(X,Y)四舍五入,保留Y位 ,如果Y为负,在整数里四舍五入如:ROUND(123 ,-1)=120 , ROUND(153,-2) =200
    TRUNCATE(X,Y)截断 ,和上面的ROUND类似,只不过不会四舍五入.
    SQRT(X),开根号 , RANDIANS(X)角度转化为弧度, DEGREES(X)弧度转化为角度
    SIN(X) ,返回X的正弦值, ASIN(X)返回X的反正弦值
    COS(X),返回X的余弦值,ACOS(X)返回X的反余弦值
    TAN(X),返回X的正切值,ATAN(X)返回X的反正切值
    ATAN2(m,n) 返回两个参数的反正切值
    COT(X) 返回X的余切值
    POW(X,Y)/POWER(X,Y) 取指数 即 X的Y次方 , EXP(X) 以e为底的指数 即 e的X次方
    LN(X)/LOG(X) 以 e为底的对数函数 , LOG2(X) 以2为底的对数函数, LOG10(X)以10为底的对数函数.
    BIN(X) 转化为2进制 , HEX(X)转化为16进制 , OCT(X) 转化为8进制
    CONV(x,f1,f2) 将 f1 进制 的X 转化为 f2进制

    1.2 字符串函数
    ASCII(X)获得其ASCII值 , CHAR_LENGTH(X)获取字符串长度 LENGTH(X)获取字符串所占字节
    CONCAT(X,X2,X3…)连接所有字符串 CONCAT_WS(Y,X,X2,X3…)使用字符串Y连接所有字符串
    INSERT(Str,X,Y,str2) 将Str中的第X到第Y个字符替换为str2(字符串的索引是从一开始的)
    REPLACE(str,a,b)将str中的字符串替换为b字符串
    UPPER(X)将字符串变为大写 , LOWER(X)将字符串变为小写
    LEFT(X,n) 从左开始,取n个字符, RIGHT(X,n)从右开始,取N个字符
    …略…

    1.3 日期和时间函数
    CURDATE() 获取当前日期的 年月日
    CURTIME() 获取当前日期的 时分秒
    NOW() 获取当前系统日期和时间
    UNIX_TIMESTAMP() 获取当前时间的时间戳
    UNIX_TIMESTAMP(date)获取指定时间的时间戳
    FROM_UNIXTIME(timestamp) 将时间戳转化为普通格式的时间
    …略…
    1.4 流程控制函数
    IF(VALUE,VALUE1,VALUE2) VALUE成立返回VALUE1否则返回VALUE2
    IFNULL(VALUE1,VALUE2) 如果VALUE1不为NULL返回VALUE1 否则返回VALUE2
    CASE WHEN 条件 THEN …WHEN … THEN … ELSE … END 当WHEN成立执行后面的THEN,都不成立执行ELSE(相当于if -else)
    CASE expr WHEN 常量 1THEN … WHEN 常量2 THEN… WHEN… THEN… ELSE … END (相当于switch case)
    1.5 加密函数
    MD5(X)对 X进行加密 , SHA(X) 对 X进行加密

  2. 聚合函数
    SUM(X) 查询到所有的X的总和, AVG(X)查询到所有X的平均值
    MAX(X)查询到所有X的最大值 , MIN(X) 查询到所有X的最小值
    COUNT(*) 查询结果的行数, COUNT(1) 查询结果的行数
    COUNT(字段名)查询结果中该字段的行数(不包括空值,即NULL)
    以上几个函数,都会自动忽略空值
    GROUP BY 字段名, 根据字段名分组,然后查询 (SELECT 中出现的字段(菲钻石),必须出现在GROUP BY中, 而GROPU 中出现的字段, 可以不出现在SELECT中)
    HAVING …条件 类似于WHERE…条件 跟在GROUP BY 的后面
    当条件中有聚合函数时,需要使用HAVING , 没有聚合函数两个都可以使用,建议用在WHERE中(HAVING适用范围更高,WHERE效率更高)

  3. SQL原理
    总体SQL写法

SELECT (DISTINCT) ... , ...(可以有聚合函数)
FROM .... (RIGHT/LEFT) JOIN .... ON  多表连接条件
WHERE .... (AND/OR...)不包含聚合函数的过滤条件
GROUP BY ... , ...
HAVING 包含聚合函数的过滤条件
ORDER BY .. ,... (ASC/DESC) 排序
LIMIT ... ,...(LIKE)

SQL执行顺序
FROM -> ON->JOIN->WHERE->GROUP BY ->HAVING->SELECT->DISTINCT->ORDER BY ->LIMIT

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值