• mysql使用--表达式和函数


    1.表达式
    如:1+1,一般包含操作数,运算符。
    _1.操作数
    MYSQL中最常用的操作数有以下几种
    (1).常数
    (2).列名,针对某个具体的表,它的列名可被当作表达式的一部分
    (3).函数调用
    一个函数用于完成某个特定的功能。比如NOW()获取当前时间。
    (4).其他表达式
    一个表达式也可作为一个操作数与另一个操作数形成一个更复杂的形式。

    _2.运算符
    常用的有
    (1).算术运算符

    运算符示例描述
    +a+b加法
    -a-b减法
    *a*b乘法
    /a/b除法
    DIVa DIV b除法,取商的整数部分
    %a%b取余
    --a取负值

    DIV取商的整数部分,/会保留小数部分。
    (2).比较运算符

    运算符示例解释
    =a=b等于
    <=>a<=>b等于(NULL值安全等于)
    <>或!=a<>b不等于
    <a小于
    <=a<=b小于或等于
    >a>b大于
    >=a>=b大于等于
    BETWEENa BETWEEN b AND ca需满足b<=a<=c
    NOT BETWEENa NOT BETWEEN b AND ca需不满足b<=a<=c
    INa IN (b1, b2)a是b1,b2中的某个
    NOT INa NOT IN (b1, b2, b3)a不是b1,b2中的某个
    IS NULLa IS NULL
    IS NOT NULLa IS NOT NULL
    LIKEa LIKE ba匹配b
    NOT LIKEa NOT LIKE b不匹配

    比较表达式结果要么1(TRUE),要么0(FALSE)
    (3).逻辑运算符

    运算符示例描述
    NOT(也可写作!)NOT a对a取反
    AND(也可写作&&)a AND b
    OR(也可写作
    XORa XOR ba和b有且只有一个为真时,表达式为真

    _3.表达式的使用
    _3.1.作为计算字段放在SELECT子句中
    如:SELECT number, score+100 FROM student_score;
    还有像这样的:SELECT 1, ‘a’ FROM student_score;
    查询处理为:
    (1).基于FROM结合WHERE得到结果集。
    (2).对结果集每一行结合SELECT语句得到最终集中一行结果。

    _3.2.作为搜索条件放在WHERE子句
    基于FROME结合WHERE得到结果集时,对FROM得到表的每一行采用WHERE表达式,结果为TRUE,此行加入结果集。

    _3.3.表达式中的NULL
    _3.3.1.NULL作为算术符的操作数时,表达式的结果都为NULL
    如:1+NULL结果是NULL,NULL*1结果也是NULL
    _3.3.2.除<=>、IS NULL、IS NOT NULL外,NULL作为其余比较运算符的操作数时,表达式的结果都为NULL。
    如:1=NULL结果是NULL,2>NULL结果是NULL。
    IS NULL,IS NOT NULL用于判断某个值是否为NULL,结果只能是0或1。
    <=>的操作数不包含NULL时,等价于=;当<=>的一个操作数为NULL,另一个不为NULL时,结果为0;两个操作数都为NULL时,结果为1;

    2.函数
    _1.字符串处理函数

    名称调用示例结果描述
    LEFTLEFT(‘abc123’, 3)abc提取左边指定长度串
    RIGHTRIGHT(‘abc123’, 3)123
    LENGTHLENGTH(‘abc’)3
    LOWERLOWER(‘ABC’)abc
    UPPERUPPER(‘abc’)ABC
    LTRIMLTRIM(’ abc’)abc
    RTRIMRTRIM('abc ')abc
    SUBSTRINGSUBSTRING(‘abc123’, 2, 3)bc1
    CONCATCONCAT(‘abc’, ‘123’, ‘xyz’)abc123xyz
    CHAR_LENGTHCHAR_LENGTH(‘狗哥’)2给定字符串的字符数量

    _2.日期和时间处理函数

    名称示例结果描述
    NOWNOW()2021-05-11 17:10:43当前日期和时间
    CURDATECURDATE()2021-05-11
    CURTIMECURTIME()17:10:43
    DATEDATE(‘2021-05-11 17:10:43’)2021-05-11将给定日期和时间值的日期提取出来
    DATE_ADDDATE_ADD(‘2021-05-11 17:10:43’, INTERVAL 2 DAY)2021-05-13 17:10:43
    DATE_SUBDATE_SUB(‘2021-05-11 17:10:43’, INTERVAL 2 DAY)2021-05-09 17:10:43
    DATEDIFFDATEDIFF(‘2021-05-11’, ‘2021-05-17’)-6
    DATE_FORMATDATE_FORMAT(NOW(), ‘%m-%d-%Y’)05-11-2021
    YEARYEAR(‘2021-05-11 17:10:43’)2021
    MONTHMONTH(‘2021-05-11 17:10:43’)5
    DAYDAY(‘2021-05-11 17:10:43’)11
    HOURHOUR(‘2021-05-11 17:10:43’)17
    MINUTEMINUTE(‘2021-05-11 17:10:43’)10
    SECONDSECOND(‘2021-05-11 17:10:43’)43

    _2.1.使用DATE_ADD,DATE_SUB时,可自定义增加或减去的时间间隔的单位。

    单位描述
    MICROSECOND毫秒
    SECOND
    MINUTE分钟
    HOUR小时
    DAY
    WEEK星期
    MONTH
    QUARTER季度
    YEAR

    如:SELECT DATE_ADD(‘2021-05-11 17:10:43’, INTERVAL 2 MINUTE)

    _2.2.使用DATE_FORMAT需注意,可通过一些所谓的格式符来自定义日期和时间的显示格式。

    格式符含义
    %b简写的月份名称(Jan、、、)
    %D带英文后缀的月份中的日期(0th,1st,…)
    %d数字格式的月份中的日期(00,01,…)
    %f微妙(000000~999999)
    %H24小时制的小时(00~23)
    %h12小时制的小时(01~12)
    %i数值格式的分钟(00~59)
    %M月份名(January,…)
    %m数值形式的月份(00~12)
    %p上午或下午(AM代表上午,PM代表下午)
    %S秒(00~59)
    %s秒(00~59)
    %W星期名(Sunday,…)
    %w周内第几天(0=星期日,…)
    %Y4位数字形式的年(例如2019)
    %y2位数字形式的年(例如19)

    _2.3.数值处理函数

    名称示例结果描述
    ABSABS(-1)1
    PiPI()3.141593
    COSCOS(PI())-1
    SINSIN(PI())1
    TANTAN(0)0
    POWPOW(2, 2)4
    SQRTSQRT(9)3
    MODMOD(5, 2)1
    RANDRAND()0.7537623539136372
    CEILCEIL(2.3)3
    FLOORFLOOR(2.3)2

    _2.4.流程控制表达式和函数
    CASE WHEN 表达式1 THEN 结果1 [WHEN 表达式1 THEN 结果1 …] [ELSE 默认结果] END
    如:SELECT number, score, CASE WHEN score < 60 THEN ‘不及格’ WHEN score < 90 THEN ‘及格’ ELSE ‘优秀’ END As level FROM student_score;

    CASE表达式还有第二种形式:
    CASE 待比较表达式 WHEN 表达式1 THEN 结果1 [WHEN 表达式2 THEN 结果2 …] [ELSE 默认结果] END
    它的含义是:
    (1).待比较表达式值和表达式1值相同时,整个CASE值是结果1
    (2).待比较表达式值和表达式2值相同时,整个CASE值是结果2

    (3).待比较表达式值和所有WHEN后的表达式值都不同,则整个CASE表达式的值就是ELSE之后的默认结果。
    如:SELECT name, department, CASE deparement WHEN ‘计算机学院’ THEN ‘1级学科’ WHEN ‘航天学院’ THEN ‘2级学科’ END AS 学院类别 FROM student_info;

  • 相关阅读:
    前端需要去了解的nodejs知识(fs文件处理)
    英国增加了新的化合物半导体集群
    解密prompt系列27. LLM对齐经验之如何降低通用能力损失
    华为被迫开源,从认知到落地SpringBoot企业级实战手册(完整版)
    零代码编程:用ChatGPT批量采集bookroo网页上的英文书目列表
    2022牛客多校3补题
    我的创作纪念日
    远程debug调试
    【iMessage苹果相册推位置推】“MFI授权计划”是指一个零丁的苹果程序开发
    Spring Boot 接口数据加解密,so easy!
  • 原文地址:https://blog.csdn.net/x13262608581/article/details/134468198