系统:win 11 ,环境搭建和win10操作差不多;
MySQL版本:8.0;开发工具:DBeaver;
逻辑上的脉络比较乱,只是按学习进度随笔记一下
函数
算数函数
1.ABS( 数值 ):求绝对值
当 ABS 函数的参数为NULL时,返回值也是NULL。
2.MOD( 被除数,除数 ):求余数
小数没有余数的概念,只能对整数列求余数。
注意:主流的 DBMS 都支持 MOD 函数,只有SQL Server 不支持该函数,其使用%符号来计算余数。
3.ROUND( 对象数值,保留小数的位数 ):四舍五入
注意:当参数“保留小数的位数”为变量(即不是一个const integar)时,可能会遇到错误,请谨慎使用变量。
字符串函数
1.CONCAT(str1, str2, str3):拼接
2.LENGTH( 字符串 ):求字符串长度
3.LOWER( 字符串 ) :字符串转换为小写
注意:LOWER 函数只能针对英文字母使用,它会将参数中的字符串全都转换为小写。该函数不适用于英文字母以外的字符;不影响原本就是小写的字符。
3.5 类似地, UPPER( 字符串 ):字符串转换为大写
4.REPLACE( 对象字符串,替换前字符,替换用字符 ) :字符串替换
即,把“对象字符串”里的“替换前字符”变成“替换用字符”
5.SUBSTRING(对象字符串 FROM 截取的起始位置 FOR 截取的字符数): 字符串截取
注意截取的起始位置从字符串最左侧开始计算,索引值起始为1。
6.SUBSTRING_INDEX (原始字符串, 分隔符,n):自定义步长索引截取字符串
该函数用来获取原始字符串按照分隔符分割后第 n 个分隔符之前(或之后)的子字符串;支持正向和反向索引,索引起始值分别为 1 和 -1。
7.REPEAT (string, n):字符串string重复n次
日期函数
1.CURRENT_DATE -- 获取当前日期
2.CURRENT_TIME -- 当前时间
3.CURRENT_TIMESTAMP -- 当前日期和时间
4.EXTRACT (日期元素 FROM 日期) -- 截取日期元素
该函数的返回值并不是日期类型而是数值类型。
转换函数
1.CAST(转换前的值 AS 想要转换的数据类型):数值类型转换
2.COALESCE(数据1,数据2,数据3……) :将NULL转换为其他值
该函数会返回数据中左侧开始第1个不是NULL的值;数据的个数是可变的,因此可以根据需要无限增加。
谓词
谓词就是返回值为真值的函数(真值包括TRUE / FALSE / UNKNOWN)。
谓词主要有以下几个:
LIKE:用于字符串模糊查询,查询格式比较多,大体可以分为前方一致、中间一致和后方一致三种类型。
BETWEEN:用于范围查询,格式为BETWEEN a AND b,且注意为闭区间。
IS NULL / IS NOT NULL:判断是否是NULL;注意不能用“= null”替代,后者是不正确的用法。
IN / NOT IN :判断是否存在于;可以是(NOT)IN <集合1> OR <集合2> OR …,也可以用(NOT)IN (<集合1>,<集合2>, ... )。其集合也可以是一个子查询。
EXISTS / NOT EXISTS:判断是否存在满足某种条件的记录。
CASE表达式
条件分支,有点像switch
CASE WHEN <求值表达式> THEN <表达式>
WHEN <求值表达式> THEN <表达式>
WHEN <求值表达式> THEN <表达式>
…
ELSE <表达式>(这个可以省略不写,不写时默认ELSE NULL)
END (函数必备)