一、使用函数
1、文本处理函数
文本处理函数如同强大的文字操控工具,能够实现对文本数据的多样化操作。它可以进行字符串的转换、截取、拼接等处理,满足不同场景下对文本信息的处理需求。
例如,通过特定的文本处理函数,可以将文本转换为特定的大小写形式,以便进行统一的文本比较和检索;可以从长字符串中截取特定部分,提取关键信息;还可以将多个字符串进行拼接,构建新的文本内容。在数据库管理、文本分析等领域,文本处理函数发挥着至关重要的作用,为数据的有效处理和分析提供了有力支持。
比如,我们有一个学生信息表,里面有个“学生姓名”字段。如果我们想把所有学生的名字都变成大写字母,就可以用 UPPER 函数。以下是 SQL 代码示例:
sql">SELECT UPPER(student_name) FROM students;
假设原来有个学生叫“小明”,用了这个函数后就变成了“XIAO MING”。
还有 LEFT 函数,可以从文本的左边开始截取特定长度的字符。
比如有个地址字段存储着“北京市朝阳区某某路”,我们可以用 LEFT 函数截取“北京市”这部分内容。代码如下:
sql">SELECT LEFT(address, 6) FROM address_table;
另外,CONCAT 函数可以把多个文本片段连接在一起。比如有个“姓氏”字段和“名字”字段,我们可以用 CONCAT 函数把它们合并成一个完整的姓名。
sql">SELECT CONCAT(last_name, ' ', first_name) AS full_name FROM name_table;
2、日期和时间处理函数
日期和时间处理函数能帮助我们更好地处理与时间相关的数据。
比如 NOW 函数可以获取当前的日期和时间。如果我们想记录某个事件发生的时间,可以用 NOW 函数。
sql">INSERT INTO event_table(event_name, event_time) VALUES ('会议开始', NOW());
YEAR 函数可以从一个日期中提取出年份。
假设有个订单表,里面有个“下单日期”字段,我们想统计某一年的订单数量。
sql">SELECT COUNT(*) FROM order_table WHERE YEAR(order_date) = 2024;
DATE_SUB 函数可以减去一定的时间间隔。比如我们想找出一个月前的日期。
sql">SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
3、数值处理函数
数值处理函数犹如强大的数学工具集,能够对数值数据执行多样化的精确操作。它涵盖了诸如四舍五入、求绝对值、计算平方根、进行各种数学运算等功能。在数据分析、科学计算、金融建模等众多领域,数值处理函数发挥着至关重要的作用,为数据的准确处理和深入分析提供了有力的技术支持。通过这些函数,可以高效地处理数值数据,提取关键信息,进行复杂的计算和建模,从而为决策制定和问题解决提供可靠的依据。
以下是一些常见的数值处理函数:
(一)基本运算函数
1. ABS():返回一个数的绝对值。
例如,ABS(-5)将返回 5。
2. SIGN():返回参数的符号。
如果参数为正数,返回 1;如果为负数,返回 -1;如果为 0,返回 0。
例如,SIGN(10)返回 1,SIGN(-3)返回 -1,SIGN(0)返回 0。
(二)四舍五入函数
1. ROUND():将一个数字四舍五入到指定的小数位数。
例如,ROUND(3.14159, 2)将返回 3.14。
2. CEILING():返回大于或等于给定参数的最小整数。例如,CEILING(4.2)返回 5。
3. FLOOR():返回小于或等于给定参数的最大整数。例如,FLOOR(4.8)返回 4。
三、数学计算函数
1. SQRT():返回一个数的平方根。例如,SQRT(9)返回 3。
2. POWER():返回一个数的指定次幂。例如,POWER(2, 3)返回 8,表示 2 的 3 次方。
3. EXP():返回自然常数 e 的指定次幂。例如,EXP(2)约为 7.389。
四、统计函数
1. SUM():计算一组数值的总和。
例如,在一个包含数字列的表中,可以使用以下sql来计算该列的总和。
sql">SELECT SUM(column_name) FROM table_name;
2. AVG():计算一组数值的平均值。例如,
sql">SELECT AVG(score) FROM exam_results;
可以计算考试成绩的平均分数。
3. MAX():返回一组数值中的最大值。例如,
sql">SELECT MAX(salary) FROM employees;
可以找出员工表中最高的工资。
4. MIN():返回一组数值中的最小值。例如,
sql">SELECT MIN(price) FROM products;
可以找出产品表中最低的价格。
ROUND 函数可以对一个数值进行四舍五入。比如有个商品价格是 12.345,我们想把它四舍五入到整数。
sql">SELECT ROUND(price) FROM product_table;
ABS 函数可以求一个数的绝对值。如果有个数值表示温度差,可能是负数,我们用 ABS 函数可以得到它的绝对值大小。
sql">SELECT ABS(temperature_difference) FROM temperature_table;
MAX 和 MIN 函数可以分别找出一组数值中的最大值和最小值。比如有个成绩表,里面有学生的各科成绩,我们可以用 MAX 函数找出最高分。
sql">SELECT MAX(score) FROM score_table;
练习题
1.我们的商店已经上线了,正在创建顾客账户。所有用户都需要登录名,默认登录名是其名称和所在城市的组合。编写SQL语句,返回顾客ID(cust_id)、顾客名称(customer_name)和登录名(user_login),其中登录名全部为大写字母,并由顾客联系人的前两个字符(cust_contact)和其所在城市的前三个字符(cust_city)组成。例如,我的登录名是BEOAK(Ben Forta,居住在OakPark)。提示:需要使用函数、拼接和别名。
2.编写SQL语句,返回2020年1月的所有订单的订单号(order_num)和订单日期(order_date),并按订单日期排序。你应该能够根据目前已学的知识来解决此问题,但也可以开卷查阅DBMS文档。