-
CONCAT()
- 用途:连接两个或多个字符串。
- 示例:
sql`SELECT CONCAT('Hello', ' ', 'World') AS Greeting;`
这将返回
'Hello World'
。 -
LOWER() 和 UPPER()
- 用途:将字符串转换为小写或大写。
- 示例:
sql`SELECT LOWER('HELLO') AS Lowercase, UPPER('hello') AS Uppercase;`
这将返回
'hello'
和'HELLO'
。 -
TRIM()
- 用途:去除字符串的前导和/或尾随空格。
- 示例:
sql`SELECT TRIM(' Hello World ') AS TrimmedString;`
这将返回
'Hello World'
。 -
NOW() 和 CURDATE()
- 用途:返回当前的日期和时间或仅返回日期。
- 示例:
sql`SELECT NOW() AS CurrentDateTime, CURDATE() AS CurrentDate;`
这将返回当前的日期和时间以及仅日期部分。
-
ROUND()
- 用途:对数字进行四舍五入。
- 示例:
sql`SELECT ROUND(123.4567, 2) AS RoundedNumber;`
这将返回
123.46
。 -
IFNULL()
- 用途:如果第一个参数为NULL,则返回第二个参数的值;否则返回第一个参数的值。
- 示例:
sql`SELECT IFNULL(NULL, 'Default Value') AS Result;`
这将返回
'Default Value'
。 -
DATE_FORMAT()
- 用途:按指定的格式显示日期/时间值。
- 示例:
sql`SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS FormattedDateTime;`
这将返回一个格式化后的日期和时间,如
'2023-10-23 14:30:45'
。
- DATE_ADD() 和 DATE_SUB()
- 用途:
DATE_ADD()
函数用于在日期上添加指定的时间间隔,而DATE_SUB()
函数用于从日期中减去指定的时间间隔。 - 示例:
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS TomorrowsDate; SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH) AS LastMonthDate;
这将分别返回明天的日期和上个月的日期。
- DATEDIFF()
- 用途:计算两个日期之间的天数差异。
- 示例:
SELECT DATEDIFF('2023-10-31', '2023-10-01') AS DaysDifference;
这将返回30,表示两个日期之间相差30天。
- COALESCE()
- 用途:返回参数中的第一个非NULL值。
- 示例:
SELECT COALESCE(NULL, NULL, 'Third Value', 'Fourth Value') AS FirstNonNullValue;
这将返回'Third Value'
,因为它是第一个非NULL值。
- CASE
- 用途:在SQL查询中执行条件逻辑。
- 示例:
SELECT name, age, CASE WHEN age < 20 THEN 'Teenager' WHEN age BETWEEN 20 AND 60 THEN 'Adult' ELSE 'Senior' END AS age_group FROM users;
这将根据age
列的值将用户分类为'Teenager'、'Adult'或'Senior'。
- MONTH() 和 YEAR()
- 用途:从日期中提取月份和年份。
- 示例:
SELECT MONTH('2023-10-23') AS Month, YEAR('2023-10-23') AS Year;
这将分别返回10和2023。
- GROUP_CONCAT()
- 用途:将多个行的值连接成一个字符串。
- 示例:
假设有一个orders
表,其中有一个product_name
列,您想要获取每个订单中的所有产品名称,以逗号分隔: -
SELECT order_id, GROUP_CONCAT(product_name) AS products FROM orders GROUP BY order_id;
这将返回每个订单ID及其对应的产品名称列表,产品名称之间用逗号分隔。
- LENGTH() 和 CHAR_LENGTH()
- 用途:
LENGTH()
函数返回字符串的字节长度,而CHAR_LENGTH()
函数返回字符串的字符数。对于单字节字符集,两者结果是相同的;但对于多字节字符集(如UTF-8),它们可能会有所不同。 - 示例:
SELECT order_id, GROUP_CONCAT(product_name) AS products FROM orders GROUP BY order_id;
对于'Hello'
,两者都会返回5。但对于'你好'
(在UTF-8编码下),LENGTH()
可能会返回6(每个中文字符通常占用3个字节),而CHAR_LENGTH()
会返回2(字符数)。
- SUBSTRING()
- 用途:从字符串中提取子串。
- 示例:
SELECT SUBSTRING('Hello World', 1, 5) AS ExtractedString;
这将返回'Hello'
,即从第1个字符开始提取5个字符。
- REPLACE()
- 用途:在字符串中替换所有的某个子串为另一个子串。
- 示例:
SELECT REPLACE('Hello World', 'World', 'Universe') AS ReplacedString;
这将返回'Hello Universe'
。
- FIND_IN_SET()
- 用途:查找一个字符串在逗号分隔的字符串列表中的位置。
- 示例:
SELECT FIND_IN_SET('b', 'a,b,c,d,e') AS Position;
这将返回2,因为'b'是列表中的第二个元素。
- LAST_INSERT_ID()
- 用途:返回最后一个INSERT操作生成的AUTO_INCREMENT值。
- 示例:
假设您有一个带有AUTO_INCREMENT主键的表,并且您刚刚插入了一行数据,您可以使用此函数来获取新插入行的ID。
- MD5()
- 用途:计算字符串的MD5哈希值。
- 示例:
SELECT MD5('Hello') AS HashedString;
这将返回字符串'Hello'的MD5哈希值。
- CAST() 和 CONVERT()
- 用途:这两个函数用于数据类型转换。它们可以将一个数据类型转换为另一个数据类型。
- 示例:
SELECT CAST('123' AS SIGNED) AS ConvertedNumber; SELECT CONVERT('2023-10-23', DATE) AS ConvertedDate;
第一个示例将字符串'123'转换为有符号整数,第二个示例将字符串'2023-10-23'转换为日期类型。
- ELT()
- 用途:根据索引值返回字符串列表中的字符串。
- 示例:
SELECT ELT(2, 'a', 'b', 'c', 'd') AS SelectedString;
这将返回'b',因为它是列表中索引为2的元素。
- FIELD()
- 用途:返回字符串在字符串列表中的位置。
- 示例:
SELECT FIELD('b', 'a', 'b', 'c', 'd') AS Position;
这将返回2,因为'b'是列表中第二个元素。
- FORMAT()
- 用途:对数字进行格式化,添加千位分隔符并保留指定的小数位数。
- 示例:
SELECT FORMAT(1234567.89, 2) AS FormattedNumber;
这将返回'1,234,567.89',即带有千位分隔符并保留两位小数的数字。
- POWER()
- 用途:返回数字的乘方结果。
- 示例:
SELECT POWER(2, 3) AS Result;
这将返回8,即2的3次方。
- RADIANS() 和 DEGREES()
- 用途:
RADIANS()
函数将角度转换为弧度,DEGREES()
函数将弧度转换为角度。 - 示例:
SELECT RADIANS(45) AS Radians, DEGREES(PI()) AS Degrees;
这将返回45度对应的弧度和π弧度对应的角度。
- ROUND()
- 用途:对数字进行四舍五入到指定的小数位数。
- 示例:
SELECT ROUND(123.4567, 2) AS RoundedNumber;
这将返回123.46
,即四舍五入到小数点后两位。
- TRUNCATE()
- 用途:将数字截断到指定的小数位数,不进行四舍五入。
- 示例:
SELECT TRUNCATE(123.4567, 2) AS TruncatedNumber;
这将返回123.45
,即截断到小数点后两位。
- LEAST() 和 GREATEST()
- 用途:
LEAST()
返回参数列表中的最小值,GREATEST()
返回参数列表中的最大值。 - 示例:
SELECT LEAST(10, 20, 30, 40) AS SmallestNumber, GREATEST(10, 20, 30, 40) AS LargestNumber;
这将返回10
作为最小值,40
作为最大值。
- NULLIF()
- 用途:如果两个表达式相等,则返回NULL;否则返回第一个表达式的值。
- 示例:
SELECT NULLIF(5, 5) AS Result1, NULLIF(5, 6) AS Result2;
这将返回NULL
作为Result1
,因为两个5
相等;返回5
作为Result2
,因为5
和6
不相等。
- COALESCE与IFNULL()
- 用途:
COALESCE()
返回参数列表中的第一个非NULL值,而IFNULL()
返回两个参数中的第一个非NULL值。 - 示例:
SELECT COALESCE(NULL, NULL, 'Third Value') AS FirstNonNull, IFNULL(NULL, 'Second Value') AS FirstNonNullAlternative;
这将返回'Third Value'
作为FirstNonNull
,因为前两个参数都是NULL;返回'Second Value'
作为FirstNonNullAlternative
,因为第一个参数是NULL。
- CONCAT() 和 CONCAT_WS()
- 用途:
CONCAT()
函数用于连接两个或多个字符串,而CONCAT_WS()
函数在连接字符串时,可以在各个字符串之间插入指定的分隔符。 - 示例:
SELECT CONCAT('Hello', ' ', 'World') AS ConcatenatedString; SELECT CONCAT_WS(',', 'Apple', 'Banana', 'Cherry') AS CommaSeparatedString;
第一个示例将返回'Hello World'
,第二个示例将返回'Apple,Banana,Cherry'
。
- SOUNDEX()
- 用途:返回一个字符串的SOUNDEX值,该值是根据字符串的发音生成的,可以用于模糊匹配相似的发音。
- 示例:
SELECT SOUNDEX('Smith') AS SoundexValue;
这将返回Smith的SOUNDEX值,通常用于搜索发音相似的名字。
- QUOTE()
- 用途:用反引号括起字符串,用于生成可用于SQL查询的合法字符串。
- 示例:
SELECT QUOTE('Column Name') AS QuotedString;
如果'Column Name'包含特殊字符或空格,QUOTE()函数会确保它可以在SQL查询中正确使用。
- DATE_FORMAT() 和 STR_TO_DATE()
- 用途:
DATE_FORMAT()
函数用于按指定格式显示日期/时间值,而STR_TO_DATE()
函数则将字符串解析为日期/时间值。 - 示例:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS FormattedDate; SELECT STR_TO_DATE('2023-10-23', '%Y-%m-%d') AS ParsedDate;
第一个示例将当前日期格式化为'YYYY-MM-DD'的形式,第二个示例将字符串'2023-10-23'解析为日期类型。
- GET_LOCK() 和 RELEASE_LOCK()
- 用途:
GET_LOCK()
用于获取一个命名的锁,如果锁被其他会话持有,则当前会话会等待直到可以获取锁;RELEASE_LOCK()
则用于释放之前获取的锁。 - 示例:
SELECT GET_LOCK('my_lock', 10) AS LockAcquired; -- 执行一些需要锁定资源的操作 SELECT RELEASE_LOCK('my_lock') AS LockReleased;
这些函数通常用于控制对共享资源的并发访问。
- LAST_INSERT_ID()
- 用途:返回最后一个由当前会话通过INSERT语句插入的AUTO_INCREMENT列的值。
- 示例:
INSERT INTO users (username) VALUES ('JohnDoe'); SELECT LAST_INSERT_ID() AS LastInsertedID;
如果users
表中的id
列是AUTO_INCREMENT的,那么LAST_INSERT_ID()
将返回新插入记录的id
值。
- USER() 和 CURRENT_USER()
- 用途:返回当前MySQL会话的用户和主机信息。
USER()
返回用户的完整信息,而CURRENT_USER()
返回当前授权用户的信息。 - 示例:
SELECT USER() AS CurrentUser, CURRENT_USER() AS AuthorizedUser;
这将返回当前会话的用户名和主机名,以及授权给该会话的用户名和主机名。
- DATABASE()
- 用途:返回当前MySQL会话使用的数据库名。
- 示例:
SELECT DATABASE() AS CurrentDatabase;
如果当前会话连接到了mydb
数据库,那么此查询将返回mydb
。
- VERSION()
- 用途:返回当前MySQL服务器的版本信息。
- 示例:
SELECT VERSION() AS MySQLVersion;
这将返回MySQL服务器的版本号。
- BENCHMARK()
- 用途:用于测量表达式的执行速度,通常用于性能测试和调优。
- 示例:
SELECT BENCHMARK(1000000, MD5('test'));
这将运行MD5函数一百万次,并返回执行时间。注意:在生产环境中使用BENCHMARK()可能会对性能产生负面影响,因此应谨慎使用。
- INET_ATON() 和 INET_NTOA()
- 用途:
INET_ATON()
将IPv4地址从点分十进制格式转换为整数,而INET_NTOA()
则将整数转换回点分十进制格式的IPv4地址。 - 示例:
SELECT INET_ATON('192.168.1.1') AS IPv4Integer, INET_NTOA(3232235777) AS IPv4Address;
这将返回IPv4地址的整数表示和点分十进制表示。
- LOAD_FILE()
- 用途:读取指定文件的内容,并将其作为字符串返回。
- 示例:
SELECT LOAD_FILE('/path/to/file.txt') AS FileContent;
请注意,为了安全起见,MySQL的file_priv
系统变量必须设置为允许访问的目录,并且MySQL服务器用户必须具有读取文件的权限。
- ELT()
- 用途:根据提供的索引从参数列表中选择一个值。
- 示例:
SELECT ELT(2, 'a', 'b', 'c', 'd') AS SelectedValue;
这将返回参数列表中的第二个值,即'b'
。
- FIELD()
- 用途:返回参数列表中第一个参数的索引位置。
- 示例:
SELECT FIELD('b', 'a', 'b', 'c', 'd') AS Position;
这将返回2,因为'b'
是参数列表中的第二个值。
- FIND_IN_SET()
- 用途:返回一个字符串在逗号分隔的列表中的位置。
- 示例:
SELECT FIND_IN_SET('b', 'a,b,c,d') AS Position;
这将返回2,因为'b'
是逗号分隔列表中的第二个值。
- COALESCE()
- 用途:返回参数列表中的第一个非NULL值。
- 示例:
SELECT COALESCE(NULL, NULL, 'third', 'fourth') AS FirstNonNullValue;
此查询将返回'third'
,因为它是参数列表中第一个非NULL的值。
- NULLIF()
- 用途:如果两个参数相等,则返回NULL;否则返回第一个参数的值。
- 示例:
SELECT NULLIF(5, 5) AS Result1, NULLIF(5, 6) AS Result2;
这将返回NULL
作为Result1
的值,因为两个参数相等;而Result2
的值将是5
,因为两个参数不相等。
- GREATEST() 和 LEAST()
- 用途:
GREATEST()
返回参数列表中的最大值,而LEAST()
返回最小值。 - 示例:
SELECT GREATEST(1, 3, 2, 5) AS MaxValue, LEAST(1, 3, 2, 5) AS MinValue;
这将返回5
作为MaxValue
的值,1
作为MinValue
的值。
- CASE
- 用途:在SQL查询中执行条件逻辑,类似于其他编程语言中的switch-case结构。
- 示例:
SELECT column_name, CASE WHEN column_name = 'value1' THEN 'Result 1' WHEN column_name = 'value2' THEN 'Result 2' ELSE 'Other Result' END AS case_result FROM table_name;
这个查询根据column_name
的值返回不同的结果。
- IF()
- 用途:如果条件为真,则返回第一个值;否则返回第二个值。
- 示例:
SELECT IF(1 > 0, 'True', 'False') AS Result;
这将返回'True'
,因为条件1 > 0
为真。
- CONCAT()
- 用途:连接两个或多个字符串。
- 示例:
SELECT CONCAT('Hello', ' ', 'World') AS Greeting;
这将返回字符串'Hello World'
。
- TRIM()
- 用途:去除字符串前后的空格或其他指定字符。
- 示例:
SELECT TRIM(' Hello World ') AS TrimmedString;
这将返回没有前后空格的字符串'Hello World'
。
- LOWER() 和 UPPER()
- 用途:
LOWER()
将字符串转换为小写,UPPER()
将字符串转换为大写。 - 示例:
SELECT LOWER('HELLO WORLD') AS LowercaseString, UPPER('hello world') AS UppercaseString;
这将返回小写字符串'hello world'
和大写字符串'HELLO WORLD'
。
- SUBSTRING()
- 用途:从字符串中提取子字符串。
- 示例:
SELECT SUBSTRING('Hello World', 1, 5) AS SubstringResult;
这将返回子字符串'Hello'
。
- DATE_FORMAT()
- 用途:按指定格式显示日期/时间值。
- 示例:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS FormattedDate;
这将返回当前日期的格式化字符串,例如'2023-09-17'
。
- COUNT()
- 用途:计算表中满足条件的记录数。
- 示例:
SELECT COUNT(*) FROM users WHERE status = 'active'; 这个查询将返回状态为'active'的用户数量。
这个查询将返回状态为'active'的用户数量。
- SUM()
- 用途:计算某列的总和。
- 示例:
SELECT SUM(order_amount) FROM orders WHERE year(order_date) = 2023;
这个查询将返回2023年所有订单的总金额。
- AVG()
- 用途:计算某列的平均值。
- 示例:
SELECT AVG(salary) FROM employees WHERE department = 'sales';
这个查询将返回销售部门的平均薪资。
- ROUND()
- 用途:对数值进行四舍五入。
- 示例:
SELECT ROUND(123.4567, 2) AS RoundedValue;
这个查询将返回四舍五入到小数点后两位的结果123.46
。
- DATEDIFF()
- 用途:计算两个日期之间的天数差异。
- 示例:
SELECT DATEDIFF('2023-10-01', '2023-09-15') AS DaysDifference;
这个查询将返回两个日期之间的天数差,即16天。
- GROUP_CONCAT()
- 用途:将多个行的值连接成一个字符串。
- 示例:
SELECT user_id, GROUP_CONCAT(tag_name) AS tags FROM user_tags GROUP BY user_id;
这个查询将返回每个用户的所有标签,以逗号分隔的形式展示。
- YEAR(), MONTH(), DAY()
- 用途:从日期中提取年、月、日部分。
- 示例:
SELECT YEAR(order_date) AS order_year, MONTH(order_date) AS order_month FROM orders;
这个查询将返回订单日期的年份和月份。
- IFNULL()
- 用途:如果第一个参数为NULL,则返回第二个参数的值;否则返回第一个参数的值。
- 示例:
SELECT first_name, IFNULL(middle_name, '') AS middle_name_or_empty FROM employees;
这个查询将返回员工的名字,如果中间名(middle_name)为NULL,则返回空字符串。
- LAST_INSERT_ID()
- 用途:返回最后一个INSERT操作产生的AUTO_INCREMENT值。
- 示例:
假设有一个带有AUTO_INCREMENT主键的表users
,在插入新记录后,可以使用此函数获取新记录的ID。 -
INSERT INTO users (username) VALUES ('newuser'); SELECT LAST_INSERT_ID();
第二个查询将返回新插入用户的ID。
- EXTRACT()
- 用途:从日期或时间值中提取指定的部分,如年、月、日、小时等。
- 示例:
SELECT EXTRACT(HOUR FROM order_time) AS order_hour FROM orders;
这个查询将返回订单时间的小时部分。
- COALESCE()
- 用途:返回参数列表中的第一个非NULL值。
- 示例:
SELECT first_name, COALESCE(middle_name, 'N/A') AS middle_name_or_default FROM employees;
这个查询返回员工的名字和中间名,如果中间名为NULL,则返回'N/A'。
- CASE
- 用途:在SQL查询中进行条件判断,根据条件返回不同的值。
- 示例:
SELECT status, CASE WHEN status = 'active' THEN 'Active User' WHEN status = 'inactive' THEN 'Inactive User' ELSE 'Unknown Status' END AS status_description FROM users;
这个查询根据用户状态返回不同的状态描述。
- IS NULL 和 IS NOT NULL
- 用途:用于检查字段是否为NULL或非NULL。
- 示例:
SELECT * FROM orders WHERE shipping_address IS NULL;
这个查询返回所有没有填写收货地址的订单。
- MAX() 和 MIN()
- 用途:返回某列的最大值和最小值。
- 示例:
SELECT MAX(salary) AS highest_salary, MIN(salary) AS lowest_salary FROM employees;
这个查询返回员工薪资的最高值和最低值。
- NOW() 和 CURDATE()
- 用途:返回当前日期和时间或仅返回当前日期。
- 示例:
SELECT NOW() AS current_datetime, CURDATE() AS current_date;
这个查询返回当前的日期和时间以及仅包含日期的当前日期。
- CONCAT()
- 用途:连接两个或多个字符串。
- 示例:
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
这个查询将用户的名和姓连接成一个完整的名字。
- TRIM()
- 用途:去除字符串前后的空格或其他指定字符。
- 示例:
SELECT TRIM(' leading spaces ') AS trimmed_string;
这个查询将去除字符串前后的空格。
- UPPER() 和 LOWER()
- 用途:将字符串转换为大写或小写。
- 示例:
SELECT UPPER(name) AS upper_name, LOWER(name) AS lower_name FROM products;
这个查询将返回产品名称的大写和小写形式。
- SUBSTRING()
- 用途:从字符串中提取子字符串。
- 示例:
SELECT SUBSTRING(email, 1, 5) AS email_prefix FROM users;
这个查询将返回用户邮箱地址的前五个字符。
- FIND_IN_SET()
- 用途:在逗号分隔的字符串列表中查找一个字符串,并返回其位置(如果存在)。
- 示例:
SELECT FIND_IN_SET('apple', 'banana,apple,orange') AS position;
这个查询将返回'apple'在字符串列表中的位置,即2。
- LENGTH() 和 CHAR_LENGTH()
- 用途:返回字符串的长度。
LENGTH()
返回字节长度,而CHAR_LENGTH()
返回字符数。 - 示例:
SELECT name, LENGTH(name) AS byte_length, CHAR_LENGTH(name) AS char_length FROM products;
这个查询返回产品名称的字节长度和字符数。
- LPAD() 和 RPAD()
- 用途:在字符串的左边或右边填充指定的字符,直到达到指定的长度。
- 示例:
SELECT LPAD(number, 5, '0') AS padded_number FROM orders;
这个查询将订单号左侧填充0,直到长度为5。
- REPLACE()
- 用途:在字符串中替换所有的指定子字符串。
- 示例:
SELECT REPLACE(description, 'old', 'new') AS updated_description FROM products;
这个查询将产品描述中的'old'替换为'new'。
- DATE_FORMAT()
- 用途:按照指定的格式显示日期/时间值。
- 示例:
SELECT DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_date FROM orders;
这个查询将订单日期格式化为'YYYY-MM-DD'的形式。
- DAYOFWEEK(), DAYOFMONTH(), DAYOFYEAR()
- 用途:分别返回日期值是一周中的第几天、一个月中的第几天、一年中的第几天。
- 示例:
SELECT order_date, DAYOFWEEK(order_date) AS day_of_week FROM orders;
这个查询返回订单日期以及它是该周的第几天。
- LAST_DAY()
- 用途:返回给定日期的月份的最后一天的日期。
- 示例:
SELECT LAST_DAY('2023-09-15') AS last_day_of_month;
这个查询返回2023年9月的最后一天。
- DATEDIFF()
- 用途:返回两个日期之间的天数差。
- 示例:
SELECT DATEDIFF('2023-10-23', '2023-10-01') AS days_difference;
这个查询返回两个日期之间的天数差。
- MONTH() 和 YEAR()
- 用途:从日期值中提取月份和年份。
- 示例:
SELECT order_date, MONTH(order_date) AS month, YEAR(order_date) AS year FROM orders;
这个查询返回订单日期以及对应的月份和年份。
- ROUND(), CEIL() 和 FLOOR()
- 用途:对数字进行四舍五入、向上取整和向下取整。
- 示例:
SELECT ROUND(123.4567, 2) AS rounded_value, CEIL(123.4567) AS ceiling_value, FLOOR(123.4567) AS floor_value;
这个查询分别对一个数字进行四舍五入到小数点后两位、向上取整和向下取整。
- ABS()
- 用途:返回数字的绝对值。
- 示例:
SELECT ABS(-123) AS absolute_value;
这个查询返回-123的绝对值。
- IFNULL()
- 用途:如果第一个参数为NULL,则返回第二个参数的值;否则返回第一个参数的值。
- 示例:
SELECT IFNULL(column_name, 'default_value') AS column_value FROM table_name;
这个查询将返回column_name
的值,如果该值为NULL,则返回'default_value'
。
- NULLIF()
- 用途:如果两个参数相等,则返回NULL;否则返回第一个参数的值。
- 示例:
SELECT NULLIF(column1, column2) AS result FROM table_name;
这个查询将比较column1
和column2
的值,如果它们相等,则返回NULL;否则返回column1
的值。
- GREATEST() 和 LEAST()
- 用途:返回一组值中的最大值和最小值。
- 示例:
SELECT GREATEST(value1, value2, value3) AS max_value, LEAST(value1, value2, value3) AS min_value FROM table_name;
这个查询将返回value1
、value2
和value3
中的最大值和最小值。
- POWER()
- 用途:返回数字的乘方结果。
- 示例:
SELECT POWER(base, exponent) AS result FROM table_name;
这个查询将返回base
的exponent
次方的结果。
- MOD()
- 用途:返回两数相除的余数。
- 示例:
SELECT MOD(dividend, divisor) AS remainder FROM table_name;
这个查询将返回dividend
除以divisor
的余数。
- COALESCE()
- 用途:返回参数列表中的第一个非NULL值。
- 示例:
SELECT COALESCE(column1, column2, column3) AS non_null_value FROM table_name;
这个查询将返回column1
、column2
和column3
中的第一个非NULL值。
- ISNULL() 或 IF(ISNULL(...))
- 用途:检查一个值是否为NULL。
- 示例:
SELECT IF(ISNULL(column_name), 'is null', 'not null') AS null_check FROM table_name;
这个查询将检查column_name
是否为NULL,并返回相应的字符串。
- CASE
- 用途:在SQL查询中进行条件判断,类似于其他编程语言中的switch语句。
- 示例:
SELECT column_name, CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE default_result END AS case_result FROM table_name;
这个查询根据condition1
和condition2
的值返回不同的result
。
- CAST() 和 CONVERT()
- 用途:将一个数据类型转换为另一个数据类型。
- 示例:
SELECT CAST(column_name AS datatype) AS converted_value FROM table_name; -- 或者 SELECT CONVERT(datatype, column_name) AS converted_value FROM table_name;
这两个查询都将column_name
的值转换为指定的datatype
。
- LOG() 和 LOG10()
- 用途:计算数的自然对数(以e为底)或以10为底的对数。
- 示例:
SELECT LOG(number) AS natural_log, LOG10(number) AS log_base_10 FROM table_name;
这个查询计算number
的自然对数和以10为底的对数。
- TRIM()
- 用途:去除字符串两侧的空格或指定字符。
- 示例:
SELECT TRIM(' leading spaces ') AS trimmed_string; -- 或者去除指定字符 SELECT TRIM(BOTH 'x' FROM 'xHelloWorldx') AS trimmed_string;
这个查询将去除字符串两侧的空格或指定字符。
- LTRIM() 和 RTRIM()
- 用途:分别去除字符串左侧的空格或指定字符,以及右侧的空格或指定字符。
- 示例:
SELECT LTRIM(' leading spaces') AS left_trimmed, RTRIM('trailing spaces ') AS right_trimmed;
这两个查询分别去除字符串左侧的空格和右侧的空格。
- CONCAT()
- 用途:连接两个或多个字符串。
- 示例:
SELECT CONCAT('Hello', ' ', 'World') AS concatenated_string;
这个查询将连接三个字符串,并返回结果。
- SUBSTRING() 或 SUBSTR()
- 用途:从字符串中提取子串。
- 示例:
SELECT SUBSTRING('Hello World', 1, 5) AS substring_result; -- 或者 SELECT SUBSTR('Hello World', 7) AS substr_result;
这两个查询分别从字符串中提取子串。第一个从位置1开始提取5个字符,第二个从位置7开始提取到字符串末尾。
- LENGTH() 或 CHAR_LENGTH()
- 用途:返回字符串的长度。
- 示例:
SELECT LENGTH('Hello World') AS string_length; -- 或者 SELECT CHAR_LENGTH('Hello World') AS char_length;
这两个查询都返回字符串的长度。
标签:返回,函数,示例,用途,详解,MySQL,字符串,SELECT,name From: https://www.cnblogs.com/xiaodi888/p/18164071