自学内容网 自学内容网

sql 语句相关的函数

1. 聚合函数

这些函数用于对一组值进行计算,并返回单个值。

1.COUNT(): 计算行数。count
SELECT COUNT(*) FROM students;

2.SUM(): 求和。sum
SELECT SUM(salary) FROM employees;

3.AVG(): 计算平均值。avg
SELECT AVG(score) FROM test_scores;

4.MAX(): 找到最大值。max
SELECT MAX(age) FROM users;

5.MIN(): 找到最小值。min 
SELECT MIN(price) FROM products;

2. 字符串函数

1.CONCAT(): 连接两个或多个字符串。concat
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;

2.LENGTH(): 返回字符串的长度。length
SELECT LENGTH(name) FROM customers;

3.UPPER(): 将字符串转换为大写。upper
SELECT UPPER(title) FROM books;
4.LOWER(): 将字符串转换为小写。lower
SELECT LOWER(description) FROM products;

5.SUBSTRING(): 提取字符串的一部分。substring
SELECT SUBSTRING(email, 1, 5) FROM users;

3. 日期/时间函数

1.NOW(): 返回当前日期和时间。now
SELECT NOW();

2.CURDATE(): 返回当前日期。curdate
SELECT CURDATE();

3.DATEDIFF(): 计算两个日期之间的差异。datadiff
SELECT DATEDIFF('2024-01-01', '2023-01-01') AS days_difference;

4.DATE_FORMAT(): 格式化日期。date_fromat
SELECT DATE_FORMAT(order_date, '%Y-%m-%d') FROM orders;

4. 数学函数

1.ABS(): 返回绝对值。abs
SELECT ABS(-10) AS absolute_value;

2.CEIL(): 向上取整。ceil
SELECT CEIL(4.3) AS rounded_up;

3.FLOOR(): 向下取整。floor
SELECT FLOOR(4.7) AS rounded_down;

4.POWER(): 计算幂。power
SELECT POWER(2, 3) AS two_cubed;  -- 2^3 = 8

5. ROUND():取整round

ROUND 是一个常用的数学函数,用于对数字进行四舍五入。它可以在 SQL 查询中使用,以便将某个数值字段的结果四舍五入到指定的小数位数。

ROUND(number, decimals)
  • number: 要四舍五入的数字或表达式。
  • decimals: 指定要保留的小数位数。如果这个参数为 0,则会将数字四舍五入到最接近的整数。
SELECT ROUND(3.14159, 2) AS rounded_value;

5. 条件函数

1.CASE: 条件表达式。case
SELECT 
    name,
    CASE 
        WHEN score >= 90 THEN 'A'
        WHEN score >= 80 THEN 'B'
        ELSE 'C'
    END AS grade
FROM students;

2.IF(): 简单的条件判断。if
SELECT IF(is_active, 'Active', 'Inactive') AS status FROM users;

6.日期函数(提取日期数据)

1.DAY(data),day

返回日期data是这个月的第几天

2.DAYOFWEEK(date),dayofweek

返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

1

select DAYOFWEEK('1998-02-03')

-> 3

3.WEEKDAY(date),weekday

返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

1

mysql> select WEEKDAY('1997-10-04 22:23:00');

-> 5

4.DAYOFMONTH(date),dayofmonth

返回date的月份中日期,在1到31范围内。

1

mysql> select DAYOFMONTH('1998-02-03');

-> 3

5.DAYOFYEAR(date),dayofyear

返回date在一年中的日数, 在1到366范围内。

1

mysql> select DAYOFYEAR('1998-02-03');

-> 34

6.MONTH(date),month

返回date的月份,范围1到12。

1

mysql> select MONTH('1998-02-03');

-> 2

7.DAYNAME(date),dayname

返回date的星期名字。

1

mysql> select DAYNAME("1998-02-05");

-> 'Thursday'

8.MONTHNAME(date),monthname

返回date的月份名字。

1

mysql> select MONTHNAME("1998-02-05");

-> 'February'

9.QUARTER(date),quarter

返回date一年中的季度,范围1到4。

1

mysql> select QUARTER('98-04-01');

-> 2

10.WEEK(date),week

对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。

1

mysql> select WEEK('1998-02-20');

-> 7

11.WEEK(date,first),week

2个参数形式WEEK()允许你指定星期是否开始于星期天或星期一。
如果第二个参数是0,星期从星期天开始,
如果第二个参数是1,从星期一开始。

1

mysql> select WEEK('1998-02-20',0);

-> 7

1

mysql> select WEEK('1998-02-20',1);

-> 8

12.YEAR(date),year

返回date的年份,范围在1000到9999。

1

mysql> select YEAR('98-02-03');

-> 1998

13.HOUR(time),hour

返回time的小时,范围是0到23。

1

mysql> select HOUR('10:05:03');

-> 10

14.MINUTE(time),minute

返回time的分钟,范围是0到59。

1

mysql> select MINUTE('98-02-03 10:05:03');

-> 5

15.SECOND(time),secone

回来time的秒数,范围是0到59。

1

mysql> select SECOND('10:05:03');

-> 3

16.PERIOD_ADD(P,N),period_add

增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。

1

mysql> select PERIOD_ADD(9801,2);

-> 199803

17.PERIOD_DIFF(P1,P2),period_diff

返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。

1

mysql> select PERIOD_DIFF(9802,199703);

-> 11


 


原文地址:https://blog.csdn.net/2302_80364740/article/details/142860727

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!