MySQL 函数参考手册(MySQL 高级函数)

目录

MySQL BIN() 函数

MySQL BINARY 函数

MySQL CASE 函数

MySQL CAST() 函数

MySQL COALESCE() 函数

MySQL CONNECTION_ID() 函数

MySQL CONV() 函数

MySQL CONVERT() 函数

MySQL CURRENT_USER() 函数

MySQL DATABASE() 函数

MySQL IF() 函数

MySQL IFNULL() 函数

MySQL ISNULL() 函数

MySQL LAST_INSERT_ID() 函数

MySQL NULLIF() 函数

MySQL SESSION_USER() 函数

MySQL SYSTEM_USER() 函数

MySQL USER() 函数

MySQL VERSION() 函数


MySQL BIN() 函数

【实例】

返回 15 的二进制表示:

SELECT BIN(15);

【定义和用法】

BIN() 函数以字符串值的形式返回数字的二进制表示形式。

【语法】

BIN(number)

【参数值】

参数 描述
number 必需。一个数字

【技术细节】

适用于: From MySQL 4.0

【实例】

返回 111 的二进制表示:

SELECT BIN(111);

【实例】

返回 8 的二进制表示:

SELECT BIN(8);

MySQL BINARY 函数

【实例】

将值转换为二进制字符串:

SELECT BINARY "W3Schools.cn";

【定义和用法】

​BINARY 函数将值转换为二进制字符串。

这个函数相当于使用CAST(value AS BINARY)。

【语法】

BINARY value

【参数值】

参数 描述
value 必需。要转换的值

【技术细节】

适用于: From MySQL 4.0

【实例】

这里 MySQL 对   "HELLO" 和 "hello" 进行逐个字符的比较并返回 1(因为逐个字符的基础上,它们是等价的):

SELECT "HELLO" = "hello";

【实例】

这里 MySQL 对   "HELLO" 和 "hello" 进行逐字节比较并返回 0(因为逐字节地,它们是不等价的):

SELECT BINARY "HELLO" = "hello";

MySQL CASE 函数

【实例】

遍历条件并在满足第一个条件时返回一个值:

SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN "The quantity is greater than 30"
    WHEN Quantity = 30 THEN "The quantity is 30"
    ELSE "The quantity is under 30"
END
FROM OrderDetails;

【定义和用法】

CASE 语句遍历条件并在满足第一个条件时返回一个值(如 IF-THEN-ELSE 语句)。 因此,一旦条件为真,它将停止读取并返回结果。

如果没有条件为真,它将返回 ELSE 子句中的值。

如果没有ELSE部分且没有条件为真,则返回NULL。

【语法】

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

【参数值】

参数 描述
condition1, condition2, ...conditionN 必需。条件。 它们的评估顺序与列出的顺序相同
result1, result2, ...resultN 必需。条件为真时返回的值

【技术细节】

适用于: From MySQL 4.0

【实例】

以下 SQL 将按城市对客户进行排序。 但是,如果 City 为 NULL,则按 Country 排序:

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);

MySQL CAST() 函数

【实例】

将值转换为 DATE 数据类型:

SELECT CAST("2017-08-29" AS DATE);

【定义和用法】

CAST() 函数将一个值(任何类型)转换为指定的数据类型。

注:另见CONVERT()函数。

【语法】

CAST(value AS datatype)

【参数值】

参数 描述
value 必需。要转换的值
datatype 必需。要转换成的数据类型。可以是以下之一:
描述
DATE 将 value 转换为 DATE。格式:"YYYY-MM-DD"
DATETIME 将 value 转换为 DATETIME。格式:"YYYY-MM-DD HH:MM:SS"
TIME 将 value 转换为 TIME。格式:"HH:MM:SS"
CHAR value转换为CHAR(固定长度字符串)
SIGNED 将 value 转换为 SIGNED(带符号的 64 位整数)
UNSIGNED 将 value 转换为 UNSIGNED(无符号 64 位整数)
BINARY 将 value 转换为 BINARY(二进制字符串)

【技术细节】

适用于: From MySQL 4.0

【实例】

将值转换为 CHAR 数据类型:

SELECT CAST(150 AS CHAR);

【实例】

将值转换为 TIME 数据类型:

SELECT CAST("14:06:10" AS TIME);

【实例】

将值转换为 SIGNED 数据类型:

SELECT CAST(5-10 AS SIGNED);

MySQL COALESCE() 函数

【实例】

返回列表中的第一个非空值:

SELECT COALESCE(NULL, NULL, NULL, 'W3Schools.cn', NULL, 'Example.com');

【定义和用法】

COALESCE() 函数返回列表中的第一个非空值。

【语法】

COALESCE(val1, val2, ...., val_n)

【参数值】

参数 描述
val1, val2, val_n 必需。要测试的值

【技术细节】

适用于: From MySQL 4.0

【实例】

返回列表中的第一个非空值:

SELECT COALESCE(NULL, 1, 2, 'W3Schools.cn');

MySQL CONNECTION_ID() 函数

【实例】

返回当前连接的唯一连接 ID:

SELECT CONNECTION_ID();

【定义和用法】

CONNECTION_ID() 函数返回当前连接的唯一连接 ID。

【语法】

CONNECTION_ID()

【技术细节】

适用于: From MySQL 4.0

MySQL CONV() 函数

【实例】

将数字从数字基系统 10 转换为数字基系统 2:

SELECT CONV(15, 10, 2);

【定义和用法】

CONV() 函数将一个数字从一个数字基系统转换为另一个,并将结果作为字符串值返回。

注:如果任何参数为 NULL,此函数将返回 NULL。同时查看BIN()函数。

【语法】

CONV(number, from_base, to_base)

【参数值】

参数 描述
number 必需。一个数字
from_base number的数字基系统(2到36之间的数字)
to_base 要转换为的数字基系统(2 到 36 或 -2 到 -36 之间的数字)

【技术细节】

适用于: From MySQL 4.0

【实例】

将数字从数字基系统 2 转换为数字基系统 10:

SELECT CONV(1111, 2, 10);

【实例】

将数字从数字基系统 10 转换为数字基系统 16:

SELECT CONV(88, 10, 16);

MySQL CONVERT() 函数

【实例】

将值转换为 DATE 数据类型:

SELECT CONVERT("2017-08-29", DATE);

【定义和用法】

CONVERT() 函数将值转换为指定的数据类型或字符集。

注:同时查看CAST()函数。

【语法】

CONVERT(value, type)

或者:

CONVERT(value USING charset)

【参数值】

参数 描述
value 必需。 要转换的值
type 必需。要转换成的数据类型。可以是以下之一:
描述
DATE 将 value 转换为 DATE。格式:"YYYY-MM-DD"
DATETIME value转换为DATETIME。格式:"YYYY-MM-DD HH:MM:SS"
TIME 将 value 转换为 TIME。格式:"HH:MM:SS"
CHAR value转换为CHAR(固定长度字符串)
UNSIGNED 将 value 转换为 SIGNED(带符号的 64 位整数)
UNSIGNED 将 value 转换为 UNSIGNED(无符号 64 位整数)
BINARY 将 value 转换为 BINARY(二进制字符串)
charset 必须。要转换成的字符集

【技术细节】

适用于: From MySQL 4.0

【实例】

将值转换为 CHAR 数据类型:

SELECT CONVERT(150, CHAR);

【实例】

将值转换为 TIME 数据类型:

SELECT CONVERT("14:06:10", TIME);

【实例】

将值转换为 LATIN1 字符集:

SELECT CONVERT("W3Schools.cn" USING latin1);

MySQL CURRENT_USER() 函数

【实例】

返回 MySQL 账户的用户名和主机名:

SELECT CURRENT_USER();

【定义和用法】

CURRENT_USER() 函数返回服务器用来验证当前客户端的 MySQL 帐户的用户名和主机名。

结果以 UTF8 字符集的字符串形式返回。

注:另见USER()函数。

【语法】

CURRENT_USER()

【技术细节】

适用于: From MySQL 4.0

MySQL DATABASE() 函数

【实例】

返回当前(默认)数据库的名称:

SELECT DATABASE();

【定义和用法】

DATABASE() 函数返回当前数据库的名称。

如果当前没有数据库,这个函数返回NULL或""。

【语法】

DATABASE()

【技术细节】

适用于: From MySQL 4.0

MySQL IF() 函数

【实例】

如果条件为 TRUE,则返回 "YES",如果条件为 FALSE,则返回 "NO":

SELECT IF(500<1000, "YES", "NO");

【定义和用法】

如果条件为 TRUE,IF() 函数返回一个值,如果条件为 FALSE,则返回另一个值。

【语法】

IF(condition, value_if_true, value_if_false)

【参数值】

参数 描述
condition 必需。 要测试的值
value_if_true 可选。 condition为真时返回的值
value_if_false 可选。 condition为假时返回的值

【技术细节】

适用于: From MySQL 4.0

【实例】

如果条件为 TRUE,则返回 5,如果条件为 FALSE,则返回 10:

SELECT IF(500<1000, 5, 10);

【实例】

测试两个字符串是否相同,如果相同则返回 "YES",否则返回 "NO":

SELECT IF(STRCMP("hello","bye") = 0, "YES", "NO");

【实例】

如果条件为 TRUE,则返回 "MORE",如果条件为 FALSE,则返回 "LESS":

SELECT OrderID, Quantity, IF(Quantity>10, "MORE", "LESS")
FROM OrderDetails;

MySQL IFNULL() 函数

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

SELECT IFNULL(NULL, "W3Schools.cn");

【定义和用法】

IFNULL() 函数在表达式为 NULL 时返回指定值。

如果表达式不为空,则此函数返回表达式。

【语法】

IFNULL(expression, alt_value)

【参数值】

参数 描述
expression 必需。判断是否为NULL的表达式
alt_value 必需。如果 expression 为 NULL,则返回的值

【技术细节】

适用于: From MySQL 4.0

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

SELECT IFNULL("Hello", "W3Schools.cn");

【实例】

如果表达式为NULL,则返回指定值,否则返回表达式:

SELECT IFNULL(NULL, 500);

MySQL ISNULL() 函数

【实例】

测试一个表达式是否为NULL:

SELECT ISNULL(NULL);

【定义和用法】

ISNULL() 函数根据表达式是否为 NULL 返回 1 或 0。

如果表达式为NULL,则该函数返回1。否则,返回0。

【语法】

ISNULL(expression)

【参数值】

参数 描述
expression 必需。 要测试的值

【技术细节】

适用于: From MySQL 4.0

【实例】

测试一个表达式是否为NULL:

SELECT ISNULL("");

【实例】

测试一个表达式是否为NULL:

SELECT ISNULL(350);

【实例】

测试一个表达式是否为NULL:

SELECT ISNULL("Hello world!");

MySQL LAST_INSERT_ID() 函数

【实例】

返回表中已插入或更新的最后一行的 AUTO_INCREMENT id:

SELECT LAST_INSERT_ID();

【定义和用法】

LAST_INSERT_ID() 函数返回表中已插入或更新的最后一行的 AUTO_INCREMENT id。

【语法】

LAST_INSERT_ID(expression)

【参数值】

参数 描述
expression 可选。一个表达式

【技术细节】

适用于: From MySQL 4.0

MySQL NULLIF() 函数

【实例】

比较两个表达式:

SELECT NULLIF(25, 25);

【定义和用法】

NULLIF() 函数比较两个表达式,如果相等则返回 NULL。 否则,返回第一个表达式。

【语法】

NULLIF(expr1, expr2)

【参数值】

参数 描述
expr1, expr2 必需。要比较的两个表达式

【技术细节】

适用于: From MySQL 4.0

【实例】

比较两个表达式:

SELECT NULLIF(25, "Hello");

【实例】

比较两个表达式:

SELECT NULLIF("Hello", "world");

【实例】

比较两个表达式:

SELECT NULLIF("2017-08-25", "2017-08-25");

MySQL SESSION_USER() 函数

【实例】

返回 MySQL 连接的当前用户名和主机名:

SELECT SESSION_USER();

【定义和用法】

SESSION_USER() 函数返回 MySQL 连接的当前用户名和主机名。

注: 这个函数等于 SYSTEM_USER() 和 USER() 函数。

【语法】

SESSION_USER()

【技术细节】

适用于: From MySQL 4.0

MySQL SYSTEM_USER() 函数

【实例】

返回 MySQL 连接的当前用户名和主机名:

SELECT SYSTEM_USER();

【定义和用法】

SYSTEM_USER() 函数返回 MySQL 连接的当前用户名和主机名。

注: 此函数等同于 SESSION_USER() 函数和 USER( ) 函数。

【语法】

SYSTEM_USER()

【技术细节】

适用于: From MySQL 4.0

MySQL USER() 函数

【实例】

返回 MySQL 连接的当前用户名和主机名:

SELECT USER();

【定义和用法】

USER() 函数返回 MySQL 连接的当前用户名和主机名。

注: 此函数等同于 SESSION_USER() 函数和 SYSTEM_USER( ) 函数。同时查看 CURRENT_USER() 函数。

【语法】

USER()

【技术细节】

适用于: From MySQL 4.0

MySQL VERSION() 函数

【实例】

返回 MySQL 数据库的当前版本:

SELECT VERSION();

【定义和用法】

VERSION() 函数以字符串形式返回 MySQL 数据库的当前版本。

【语法】

VERSION()

【技术细节】

适用于: From MySQL 4.0

你可能感兴趣的:(SQL系列教程,SQL,教程,资料,笔记)