目录
IS NULL 与IS NOT NULL —— 判断是否为NULL
各种各样的函数
根据用途,函数可以大致分为算数函数,字符串函数,日期函数,转换函数和聚合函数。
函数种类很多,无需全部记住。只需要记住具体有代表性的函数就可以了,其他的函数可以在使用的时候再进行查询。
函数的种类
- 算数函数
- 字符串函数
- 日期函数
- 转换函数
- 聚合函数
算数函数
- +(加法)
- -(减法)
- *(乘法)
- /(除法)
ABS——绝对值
ABS(数值)
NULL的绝对值时NULL
MOD——求余
MOD(被除数,除数)
SQL Server不支持,SQL Server的求余是%
由于小数计算中并没有余数概念,所以只能对整数类型的列使用MOD函数。
ROUND——四舍五入
ROUND(对象数值,保留小数的位数)
字符串函数
||——拼接
字符串1 || 字符串2
字符串拼接时,如果其中包含了NULL,那么得到的结果也是NULL。
SQL Server使用 + 拼接,
MySQL使用 CONCAT函数拼接
例如:
CONCAT(str1,str2,str3)
LENGTH——字符串长度
LENGTH(字符串)
SQL Server中使用LEnders函数来计算字符串的长度。
LOWER——小写转换
LOWER(字符串)
只针对英文字母使用。
REPLACE——字符串的替换
REPLACE(对象字符串,替换前的字符串,替换后的字符串)
例如:
str1 = abcdefabc
str2 = abc
str3 = ABC
REPLACE(str1,str2,str3)
结果为:ABCdefABC
SUBSTRING——字符串截取
MySQL
SUBSTRING(对象字符串 FROM 截取的起始位置 FOR 截取的字符数)
SQL Server
SUBSTRING(对象字符串,截取的起始位置,街区的字符数)
Oracle和DB2
SUBSTR(对象字符串,截取的起始位置,街区的字符数)
UPPER——大写转换
UPPER(字符串)
UPPER函数只针对英文字母使用。
日期函数
CURRENT_DATE——当前日期
CURRENT_DATE 函数能够返回SQL执行的日期,也就是该函数执行时的日期。
谓词
什么是谓词
谓词就是返回值为真值的函数。
LIKE谓词——字符串的部分一致查询
LIKE谓词时模糊查询,当需要进行字符串的部分一致查询时需要使用该谓词。
前方一致:
WHERE <字段> LIKE "ddd%"
中间一致:
WHERE <字段> LIKE "%ddd%"
后方一致:
WHERE <字段> LIKE "%ddd"
查询abc+任意3个字符的字符串
WHERE <字段> LIKE "abc___"
abc后方有三个下划线_
BETWEEN谓词——范围查询
使用BETWEEN可以进行范围查询,该谓词与其他谓词或者函数的不同之处在于它使用了3个参数。
例如查询销售单价为100到1000元之间
WHERE <销售单价字段> BETWEEN 100 AND 1000
IS NULL 与IS NOT NULL —— 判断是否为NULL
为了选取某些值是否为NULL,不能使用 = ,而只能使用特定的谓词 IS NULL。
IN谓词——OR的简单使用
例如要取出售价为300 500 1000的数据
WHERE <售价字段> IN(300, 500, 1000);
注意IN和NOT IN都无法取出NULL的数据。
EXIST谓词 (存在)
EXIST谓词的作用就是“判断是否存在满足某种条件的记录”。如果存在就返回真,否则返回假。
EXIST谓词的主语时记录。
EXIST只需要再右侧书写一个参数,该参数通常都会是一个子查询。
CASE表达式
什么是CASE表达式
CASE表达式是区分情况使用的。
CASE表达式的语法
CASE表达式分为简单CASE表达式和搜索CASE表达式。
CASE WHEN <判断表达式> THEN <表达式>
WHEN <判断表达式> THEN <表达式>
WHEN <判断表达式> THEN <表达式>
WHEN <判断表达式> THEN <表达式>
ELSE <表达式>
END
CASE表达式会对最初的WHEN子句中的判断表达式进行判断开始执行,类似于C语言中的 if else语句一样,要是WHEN判断表达式都错误就执行ELSE的表达式,ELSE可以不写。
CASE最后的END是不能省略的。
CASE表达式的书写位置
CASE表达式的便利之处在于它是一个表达式,可以书写到任意位置。
简单CASE表达式
跟C语言的switch case语法类似
CASE <表达式>
WHEN <表达式> THEN <表达式>
WHEN <表达式> THEN <表达式>
WHEN <表达式> THEN <表达式>
WHEN <表达式> THEN <表达式>
ELSE <表达式>
END