📜  MySQL函数(1)

📅  最后修改于: 2023-12-03 14:44:31.621000             🧑  作者: Mango

MySQL函数

MySQL是一种流行的关系型数据库管理系统,提供了各种内置函数来处理和操作数据。本文介绍了MySQL中一些常用的函数。

字符串函数
CONCAT

CONCAT函数用于连接两个或多个字符串,并返回一个新字符串。

CONCAT(string1, string2, ...)

例如,将名和姓连接在一起:

SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM customers;
SUBSTRING

SUBSTRING函数用于返回给定字符串的一个子字符串。第一个参数是被裁剪的字符串,第二个参数是从哪个位置开始,第三个参数是子字符串的长度。

SUBSTRING(string, position, length)

例如,从地址中提取城市:

SELECT SUBSTRING(address, LOCATE(',', address) + 1) AS city
FROM customers;
LENGTH

LENGTH函数返回给定字符串的长度。

LENGTH(string)

例如,计算邮政编码的长度:

SELECT LENGTH(postal_code) AS length
FROM customers;
UPPER和LOWER

UPPER函数将给定字符串转换为大写,LOWER函数将给定字符串转换为小写。

UPPER(string)
LOWER(string)

例如,将电子邮件地址转换为小写:

SELECT LOWER(email) AS email
FROM customers;
数值函数
ABS

ABS函数返回给定数的绝对值。

ABS(number)

例如,计算订单总价的绝对值:

SELECT ABS(total_price) AS abs_total_price
FROM orders;
ROUND

ROUND函数四舍五入给定数到指定精度。第一个参数是被舍入的数字,第二个参数是精度。

ROUND(number, precision)

例如,将平均销售额舍入到两个小数位:

SELECT ROUND(AVG(sales), 2) AS avg_sales
FROM sales_data;
FLOOR和CEILING

FLOOR函数将给定数向下舍入到最接近的整数,CEILING函数将给定数向上舍入到最接近的整数。

FLOOR(number)
CEILING(number)

例如,将平均销售额向下舍入到最接近的整数:

SELECT FLOOR(AVG(sales)) AS avg_sales
FROM sales_data;
时间函数
NOW

NOW函数返回当前日期和时间。

NOW()

例如,获取当前日期:

SELECT DATE(NOW()) AS current_date
FROM sales_data;
DATE_FORMAT

DATE_FORMAT函数将日期格式化为指定的格式。第一个参数是日期,第二个参数是格式化字符串。

DATE_FORMAT(date, format)

例如,将日期格式化为年月日格式:

SELECT DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_date
FROM orders;
DATEDIFF

DATEDIFF函数计算两个日期之间的天数差。

DATEDIFF(date1, date2)

例如,计算两个日期之间的天数差:

SELECT DATEDIFF('2022-01-01', '2021-12-01') AS days_diff
FROM sales_data;
外部数据函数
LOAD_FILE

LOAD_FILE函数从指定的文件中读取内容。

LOAD_FILE(file_path)

例如,读取名为customer_info.txt的文件:

SELECT LOAD_FILE('customer_info.txt') AS customer_info
FROM sales_data;
INTO OUTFILE

INTO OUTFILE函数将查询结果写入指定的文件。

SELECT ... INTO OUTFILE file_path

例如,将查询结果保存到名为sales_report.csv的文件中:

SELECT * 
FROM sales_data 
INTO OUTFILE 'sales_report.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

这将创建一个逗号分隔的CSV文件,其中每个字段都用双引号括起来,每行以换行符结尾。