MySQL学习之函数

 函数简介

SQL包含一系列内置函数,这些函数可以在查询中使用,以执行各种计算和数据处理任务。所谓函数, 就是输入某一值得到相应输出结果的功能,输入值称为参数(parameter), 输出值称为返回值。

根据用途,函数可以大致分为算术函数、字符串函数、日期函数、转换函数和聚合函数。

函数大致可以分为以下几种:

  •  算术函数(用来进行数值计算的函数)
  • 字符串函数(用来进行字符串操作的函数)
  • 日期函数(用来进行日期操作的函数)
  • 转换函数(用来转换数据类型和值的函数)
  • 聚合函数(用来进行数据聚合的函数)

1、算术函数

算术函数是最基本的函数;NUMERIC 是大多数 DBMS 都支持的一种数据类型,通过 NUMBERIC

( 全体位数 , 小数位数 ) 的形式来指定数值的大小。 

在主要的DBMS的函数中,数值函数是最具一致性的函数。 

1、ABS()返回函数绝对值

ABS 函数的参数为 NULL 时,结果也是 NULL。并非只有 ABS 函数如此,其实绝大多数函数对于 NULL 都返回 NULL。但是转换函数中的COALESCE函数除外。

2、COS()返回角度的余铉

3、EXP()返回数的指数值

4、MOD()返回除操作的余数

MOD 是计算除法余数(求余)的函数,是 modulo 的缩写。格式:MOD(被除数,除数)。

因为小数计算中并没有余数的概念,所以只能对整数类型的列使用 MOD 函数。

注意:主流的 DBMS 都支持 MOD 函数,只有SQL Server 不支持该函数。

5、ROUND()四舍五入

ROUND(对象数值,保留小数的位数)

6、Rand()返回一个随机数

7、Sqrt()返回一个数的平方根

8、pi()返回圆周率

2、文本函数

1、RTrim()函数去除列值右边空格

2、LTrim()去掉串左边的空格

3、Upper()函数将文本转换为大写

4、Lower()将串转换为小写

LOWER 函数 只能针对英文字母使用,它会将参数中的字符串全都转换为小写。

5、Left()返回串左边的字符

6、Right()返回串右边的字符

7、Length()返回串的长度;用于计算字符串中包含多少个字符时

SQL Server使用LEN函数来计算字符串的长度。 

8、Locate()找出串的一个子串

9、SubString()返回子串的字符;字符串的截取

SUBSTRING (对象字符串 FROM 截取的起始位置 FOR 截取的字符数)。
截取的起始位置从字符串最左侧开始计算
SELECT str1,SUBSTRING(str1 FROM 3 FOR 2) AS sub_str
FROM Table;

10、||  --  拼接函数

通过由两条并列的竖线变换而成的“||” 函数来实现字符串的拼接。
注意,|| 函数在 SQL Server 和 MySQL 中无 法使用。
SQL Server使用“+”运算符(函数)来连接字符串。
MySQL使用CONCAT函数来完成字符串的拼接。

12、REPLACE-----字符串的替换

格式:REPLACE(对象字符串,替换前的字符串,替换后的字符串)

SELECT str1, str2, str3,
REPLACE(str1, str2, str3) AS rep_str
FROM SampleStr;

Soundex是一个将任何文本串转换为描述其语音表示的字母数字模式的算法

3、日期和时间函数

1、AddDate()增加一个日期

2、AddTime()增加一个时间

3、CURRENT_DATA    返回当前日期

CURRENT_DATE 函数 能够返回 SQL 执行的日期,也就是该函数执行时的日期。由于没有参数,因此无需使用括号。
SELECT CURRENT_DATE;
SELECT CURRENT_TIME; 当前时间
SELECT CURRENT_TIMESTAMP;返回当前日期和时间
SELECT NOW();返回当前日期和时间
SELECT Date(NOW());返回当前日期

4、EXTRACT——截取日期元素 

EXTRACT 函数 可以截取出日期数据中的一部分,例如“年” ,“月”,“小时”,“秒”等。 该函数的返回值并不是日期类型而是数值类型。
语法格式:EXTRACT( 日期元素 FROM 日期 )
SELECT CURRENT_TIMESTAMP AS 当前日期,
EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year,

5、DateDiff()计算两个日期之差

DateDiff() 函数通常用于计算两个日期之间的时间间隔,并返回这个间隔的数量。 

SELECT DateDiff('year', '2020-01-01', '2023-01-01');

6、Date_Format()返回一个格式化的日期或时间

4、聚合函数

运行在行组上,计算和返回单个值的函数

1、AVG()返回某列平均值

2、COUNT()返回某列行数

3、MAX()返回某列最大值

4、MIN()返回某列最小值

5、SUM()返回某列值之和

5、条件函数

这些函数用于根据条件执行计算或返回值。例如,IF函数可以根据条件返回两个值之一,CASE表达式可以根据条件执行不同的操作。

1、IFNULL函数--判断是否为空

主要用于处理NULL 值。这个函数接受两个参数:第一个参数是可能为 NULL 的值,第二个参数是当第一个参数为 NULL时返回的值。语法格式:IFNULL(expression1, expression2)

SELECT name, IFNULL(salary, 0) AS adjusted_salary  
FROM employees;

2、IF函数--判断,流程控制

SQL中的IF函数用于在查询中执行条件逻辑。语法格式IF(condition, true_value, false_value):

如果条件为真,返回value_if_true,否则返回value_if_false。

SELECT name, age, IF(age >= 18, 'Adult', 'Minor') AS age_group  
FROM users;

3、CASE函数--搜索语句

在SQL中,CASE函数用于执行条件逻辑,它允许你根据条件选择不同的值或执行不同的操作。CASE函数可以在SELECT语句、UPDATE语句、DELETE语句等查询中广泛使用。 

SELECT   
    CASE grade  
        WHEN 'A' THEN 'Excellent'  
        WHEN 'B' THEN 'Good'  
        WHEN 'C' THEN 'Fair'  
        ELSE 'Poor'  
    END AS result  
FROM students;

6、转换函数

1、CAST——类型转换 

在 SQL 中主要有两层意思:一是数据类型的转换,简称为类型转换,在英语中称为 castA ;另一层意思是值的转换; 语法格式:CAST(转换前的值 AS 想要转换的数据类型)。
        之所以需要进行类型转换,是因为可能会插入与表中数据类型不匹配的数据,或者在进行运算时由于数据类型不一致发生了错误,又或者是进行自动类型转换会造成处理速度低下。

2、COALESCE——将NULL转换为其他值  

COALESCE SQL 特有的函数。该函数会返回可变参数 A 中左侧开始第1 个不是 NULL 的值。参数个数是可变的,因此可以根据需要无限增加。
SELECT COALESCE(NULL, 1) AS col_1,
COALESCE(NULL, 'test', NULL) AS col_2,
COALESCE(NULL, NULL, '2009-11-01') AS col_3;

你可能感兴趣的:(mysql,学习,数据库,sql)