1.字符函数
1.1 concat(str1,str2)
字符串拼接函数,会将str1,str2两个字符串拼接
select concat('hello ','word!')
输出 hello word!
1.2 lower(str)
字符转为小写的函数,会将str中
可以
转为小写的字符转为小写,
select lower('11ABCDee@!?中')
输出 11abcdee@!?中
1.3 upper(str)
字符转为大写的函数,会将str中 可以 转为大写的字符转为大写,
select upper('11ABCDee@!?中')
输出 11ABCDEE@!?中
1.4 lpad(str,n,pad)
LPAD
是一个用于字符串操作的 SQL 函数,它用于在字符串的左侧填充指定的字符,以达到特定的长度。
在 LPAD(str, n,pad)
中:
str
是要进行填充的原始字符串。n
是目标字符串的总长度。pad
是用于填充的字符。
这个函数的作用是将字符串str
的左侧用字符pad
填充,直到整个字符串的长度达到 n
select lpad('01',5,'-')
输出 ---01
1.5 rpad(str,n,pad)
RPAD
是一个用于字符串操作的 SQL 函数,它用于在字符串的左侧填充指定的字符,以达到特定的长度。
在 RPAD(str, n,pad)
中:
str
是要进行填充的原始字符串。n
是目标字符串的总长度。pad
是用于填充的字符。
这个函数的作用是将字符串str
的右侧用字符pad
填充,直到整个字符串的长度达到 n
select rpad('01',5,'-')
输出 01---
1.6 trim(str)
作用为去除字符串开头和结尾的空格
select trim(' 111111 ')
输出 111111
1.7 substring(str,start,len)
SUBSTRING
是一个用于提取字符串的 SQL 函数。它根据指定的位置和长度,从一个字符串中提取出子字符串。
在 SUBSTRING(str,start,len)
中:
str
是要进行提取的原始字符串。start
是起始位置,表示从字符串的第一个字符开始提取(注意:在 SQL 中,字符串索引通常是从 1 开始的)。len
是要提取的字符数量。
这段代码的作用是从字符串 str
中,从第start个字符开始提取 len 个字符。结果将是 '12345'
。
select substring('1234567890',1,5)
输出 12345
2.数值函数
以下是数据库中常用的五个数学函数:CEIL
、FLOOR
、MOD
、RAND
和 ROUND
,以及每个函数的简要介绍和示例 SQL 语句。
2.1. CEIL
功能: CEIL
(或 CEILING
)函数返回大于或等于指定数字的最小整数。
示例 SQL:
SELECT CEIL(5.3) AS CeilValue; -- 返回 6
执行结果:
+-----------+
| CeilValue |
+-----------+
| 6 |
+-----------+
2.2. FLOOR
功能: FLOOR
函数返回小于或等于指定数字的最大整数。
示例 SQL:
SELECT FLOOR(5.8) AS FloorValue; -- 返回 5
执行结果:
+-----------+
| FloorValue|
+-----------+
| 5 |
+-----------+
2.3. MOD
功能: MOD
函数返回两个数相除后的余数。
示例 SQL:
SELECT MOD(10, 3) AS ModValue; -- 返回 1
执行结果:
+----------+
| ModValue |
+----------+
| 1 |
+----------+
2.4. RAND
功能: RAND
函数返回一个介于 0 和 1 之间的随机浮点数。
示例 SQL:
SELECT RAND() AS RandomValue; -- 返回一个随机数,如 0.345678
执行结果:
+---------------------+
| RandomValue |
+---------------------+
| 0.345678 | -- 这是一个示例,具体值会因执行而异
+---------------------+
2.5. ROUND
功能: ROUND
函数将数字四舍五入到指定的小数位数。
示例 SQL:
SELECT ROUND(5.6789, 2) AS RoundValue; -- 返回 5.68
执行结果:
+-----------+
| RoundValue|
+-----------+
| 5.68 |
+-----------+
3. 日期函数
在 SQL 中,有许多函数用于处理日期和时间。这些函数可以帮助我们获取当前日期和时间、进行日期计算和提取日期的特定部分。以下是一些常用的日期和时间函数,包括 CURDATE
、CURTIME
、NOW
、YEAR
、MONTH
、DAY
、DATE_ADD
和 DATEDIFF
,以及它们的示例 SQL 语句和执行结果。
3.1. CURDATE
功能: 返回当前日期,格式为 YYYY-MM-DD
。
示例 SQL:
SELECT CURDATE() AS CurrentDate;
执行结果 (假设今天是 2023-10-03):
+-------------+
| CurrentDate |
+-------------+
| 2023-10-03 |
+-------------+
3.2. CURTIME
功能: 返回当前时间,格式为 HH:MM:SS
。
示例 SQL:
SELECT CURTIME() AS CurrentTime;
执行结果 (假设当前时间是 14:30:00):
+------------+
| CurrentTime|
+------------+
| 14:30:00 |
+------------+
3.3. NOW
功能: 返回当前的日期和时间,格式为 YYYY-MM-DD HH:MM:SS
。
示例 SQL:
SELECT NOW() AS CurrentDateTime;
执行结果 (假设当前时间是 2023-10-03 14:30:00):
+---------------------+
| CurrentDateTime |
+---------------------+
| 2023-10-03 14:30:00 |
+---------------------+
3.4. YEAR
功能: 从日期中提取年份。
示例 SQL:
SELECT YEAR('2023-10-03') AS YearValue;
执行结果:
+-----------+
| YearValue |
+-----------+
| 2023 |
+-----------+
3.5. MONTH
功能: 从日期中提取月份。
示例 SQL:
SELECT MONTH('2023-10-03') AS MonthValue;
执行结果:
+-----------+
| MonthValue|
+-----------+
| 10|
+-----------+
3.6. DAY
功能: 从日期中提取天数。
示例 SQL:
SELECT DAY('2023-10-03') AS DayValue;
执行结果:
+----------+
| DayValue |
+----------+
| 3 |
+----------+
3.7. DATE_ADD
功能: 在给定日期上添加指定的时间间隔。
示例 SQL:
SELECT DATE_ADD('2023-10-03', INTERVAL 10 DAY) AS NewDate;
执行结果:
+------------+
| NewDate |
+------------+
| 2023-10-13 |
+------------+
3.8. DATEDIFF
功能: 计算两个日期之间的差异(以天数为单位)。
示例 SQL:
SELECT DATEDIFF('2023-10-13', '2023-10-03') AS DateDifference;
执行结果:
+------------------+
| DateDifference |
+------------------+
| 10|
+------------------+
4.流程函数
在 SQL 中,IF
、IFNULL
、CASE
和 WHEN
等函数用于条件判断和处理,能够根据不同的条件返回不同的结果。以下是对这些函数的详细介绍及示例。
4.1. IF
功能: IF
函数根据条件返回两个值中的一个。
示例 SQL:
SELECT IF(1 > 0, 'True', 'False') AS Result;
执行结果:
+--------+
| Result |
+--------+
| True |
+--------+
4.2. IFNULL
功能: IFNULL
函数用于检查一个值是否为 NULL
,如果是,则返回一个指定的替代值;否则返回该值本身。
示例 SQL:
SELECT IFNULL(NULL, 'Default Value') AS Result;
执行结果:
+----------------+
| Result |
+----------------+
| Default Value |
+----------------+
4.3. CASE
CASE
是一个条件表达式,允许多条件判断。
4.3.1普通用法
功能: CASE
用于在 SQL 查询中实现条件逻辑。
示例 SQL:
SELECT
CASE
WHEN 1 > 0 THEN 'Positive'
WHEN 1 < 0 THEN 'Negative'
ELSE 'Zero'
END AS NumberSign;
执行结果:
+-------------+
| NumberSign |
+-------------+
| Positive |
+-------------+
4.3.2 延申用法
SELECT (CASE
when score >= 90 then '优秀'
when score < 90 and score >= 80 then '良好' end) as '成绩'
如果 score>=90则展示
+-------------+
| 成绩 |
+-------------+
| 优秀 |
+-------------+
如果 score>=80 且 score<90则展示
+-------------+
| 成绩 |
+-------------+
| 良好 |
+-------------+