软件测试-MySQL(六:数据库函数)
在MySQL中,函数是一些可重用的代码块,用于执行特定的计算或操作。MySQL预定义了许多函数,同时也允许用户自定义函数,这样可以更好地完成特定的操作。
内置函数
MySQL提供了丰富的内置函数,可以方便地用于数据库操作和数据计算。
字符串函数
MySQL提供了许多用于字符串处理的函数,下面介绍其中一些常用的函数。
CONCAT
CONCAT
函数可以将多个字符串连接在一起,例如:
SELECT CONCAT('Hello', ' World!');
返回结果为:
'Hello World!'
LENGTH
LENGTH
函数用于获取字符串的长度,例如:
SELECT LENGTH('Hello World!');
返回结果为:
12
SUBSTRING
SUBSTRING
函数用于获取字符串的子串,例如:
SELECT SUBSTRING('Hello World!', 1, 5);
返回结果为:
'Hello'
数值函数
MySQL还提供了一些用于数值处理的函数。
ABS
ABS
函数用于获取一个数的绝对值,例如:
SELECT ABS(-10);
返回结果为:
10
日期和时间函数
MySQL也提供了许多用于日期和时间处理的函数。
NOW
NOW
函数可以获取当前的日期和时间,例如:
SELECT NOW();
返回结果为:
'2021-07-30 13:30:00'
DATE_FORMAT
DATE_FORMAT
函数用于格式化日期和时间,例如:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
返回结果为:
'2021-07-30'
用户自定义函数
除了内置函数以外,MySQL还允许用户自定义函数,这样可以更好地完成特定的操作。下面介绍如何创建一个简单的用户自定义函数。
创建函数
可以使用CREATE FUNCTION
语句创建一个函数。例如,下面的函数可以计算两个数的和:
CREATE FUNCTION add_numbers(x INT, y INT)
RETURNS INT
BEGIN
RETURN x + y;
END;
使用函数
定义好函数以后,可以使用SELECT
语句调用该函数,例如:
SELECT add_numbers(10, 20);
返回结果为:
30
总结
本文主要介绍了MySQL中的函数,包括内置函数和用户自定义函数。内置函数提供了丰富的字符串、数值和日期时间操作,而用户自定义函数则可以更好地完成特定的操作。
示例
实例1
现有一个employee
表,包含员工的姓名、工资和住址等信息,现在需要计算每个员工的纳税额。我们可以创建一个名为tax
的函数来完成这个计算:
CREATE FUNCTION tax(salary INT)
RETURNS INT
BEGIN
DECLARE tax INT;
IF salary <= 5000 THEN
SET tax = 0;
ELSEIF salary <= 10000 THEN
SET tax = (salary - 5000) * 0.1;
ELSE
SET tax = (salary - 10000) * 0.2 + 500;
END IF;
RETURN tax;
END;
调用该函数,可以统计每个员工的纳税额:
SELECT name, salary, tax(salary) FROM employee;
返回结果为每个员工的姓名、工资和纳税额。
实例2
现有一个purchase
表,包含每个用户的购买信息,包括商品名称、单价和购买数量等。现在需要计算每个用户购买每种商品的总价,并统计每个用户的总购买金额。
我们可以创建一个名为item_total
的函数来完成这个计算:
CREATE FUNCTION item_total(price INT, quantity INT)
RETURNS INT
BEGIN
RETURN price * quantity;
END;
另外,我们还可以创建一个名为user_total
的函数来统计每个用户的总购买金额:
CREATE FUNCTION user_total(user_id INT)
RETURNS INT
BEGIN
DECLARE total INT;
SELECT SUM(item_total(price, quantity)) INTO total FROM purchase WHERE user_id = user_id;
RETURN total;
END;
调用该函数,可以统计每个用户的总购买金额:
SELECT user_id, user_total(user_id) FROM purchase GROUP BY user_id;
返回结果为每个用户的ID和总购买金额。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:软件测试-MySQL(六:数据库函数) - Python技术站