在本课中,你将学会:
在MySQL中,函数是一种可以接受参数、执行操作并返回结果的数据库对象。函数可以帮助你在SQL查询中执行数据计算、转换和比较。
字符串函数允许你对文本数据进行操作,如连接、截取、转换大小写等。
CONCAT(str1, str2, ..., strN)
: 连接两个或多个字符串参数。
SELECT CONCAT('MySQL', ' ', 'Function');
-- 预计输出: MySQL Function
LENGTH(str)
: 获取字符串的长度(字符数)。
SELECT LENGTH('Hello World');
-- 预计输出: 11
UPPER(str)
: 将字符串转换为大写字母。
SELECT UPPER('mysql');
-- 预计输出: MYSQL
数值函数让你可以对数值进行操作,如计算绝对值、四舍五入等。
ABS(x)
: 返回x的绝对值。
SELECT ABS(-42);
-- 预计输出: 42
ROUND(x, d)
: 将数字x四舍五入到小数点后的d位。
SELECT ROUND(123.4567, 2);
-- 预计输出: 123.46
日期和时间函数用于处理和格式化日期和时间值。
NOW()
: 返回当前的日期和时间。
SELECT NOW();
-- 预计输出: 当前的日期和时间,格式为YYYY-MM-DD HH:MM:SS
CURDATE()
: 返回当前的日期。
SELECT CURDATE();
-- 预计输出: 当前的日期,格式为YYYY-MM-DD
DATE_FORMAT(date, format)
: 根据指定的格式显示日期或时间。
SELECT DATE_FORMAT(NOW(), '%W, %M %d %Y');
-- 预计输出: 当前日期的格式化字符串,如 'Monday, January 23 2024'
聚合函数对值集合进行计算,返回单个值,通常用在 GROUP BY
子句中。
SUM(column)
: 计算字段之和。
SELECT SUM(salary) FROM employees;
-- 预计输出: salary字段所有行的总和
AVG(column)
: 计算字段的平均值。
SELECT AVG(salary) FROM employees;
-- 预计输出: salary字段所有行的平均值
字符串连接
写一个查询语句,使用 CONCAT
函数将customer表中的名字(first_name)和姓氏(last_name)连接起来,中间用空格隔开,并将结果列命名为 full_name
。
查找最大值
使用 MAX
函数找到 orders
表中最大的 amount
值。
记录当前时间
往一个 action_log
表中插入一条新记录,其中包含当前时间。action_log
表有 id
, action_type
和 timestamp
字段。
四舍五入金额
对 invoices
表中的所有 amount
字段进行四舍五入到整数位,并选择出结果。
解析:
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM customers;
SELECT MAX(amount) FROM orders;
INSERT INTO action_log (action_type, timestamp) VALUES ('INSERT', NOW());
SELECT ROUND(amount) AS rounded_amount FROM invoices;
通过完成这些练习,你将能够巩固你对MySQL函数的理解和应用。记得验证每个查询的结果,确保你正确理解了函数的工作原理。