SQL自学:使用函数处理数据

一、使用函数

1、文本处理函数

文本处理函数如同强大的文字操控工具,能够实现对文本数据的多样化操作。它可以进行字符串的转换、截取、拼接等处理,满足不同场景下对文本信息的处理需求。

例如,通过特定的文本处理函数,可以将文本转换为特定的大小写形式,以便进行统一的文本比较和检索;可以从长字符串中截取特定部分,提取关键信息;还可以将多个字符串进行拼接,构建新的文本内容。在数据库管理、文本分析等领域,文本处理函数发挥着至关重要的作用,为数据的有效处理和分析提供了有力支持。

比如,我们有一个学生信息表,里面有个“学生姓名”字段。如果我们想把所有学生的名字都变成大写字母,就可以用 UPPER 函数。以下是 SQL 代码示例:

SELECT UPPER(student_name) FROM students;

假设原来有个学生叫“小明”,用了这个函数后就变成了“XIAO MING”。

还有 LEFT 函数,可以从文本的左边开始截取特定长度的字符。

比如有个地址字段存储着“北京市朝阳区某某路”,我们可以用 LEFT 函数截取“北京市”这部分内容。代码如下:

SELECT LEFT(address, 6) FROM address_table;

 另外,CONCAT 函数可以把多个文本片段连接在一起。比如有个“姓氏”字段和“名字”字段,我们可以用 CONCAT 函数把它们合并成一个完整的姓名。

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

2、日期和时间处理函数

日期和时间处理函数能帮助我们更好地处理与时间相关的数据。

比如 NOW 函数可以获取当前的日期和时间。如果我们想记录某个事件发生的时间,可以用 NOW 函数。

INSERT INTO event_table(event_name, event_time) VALUES ('会议开始', NOW());

 YEAR 函数可以从一个日期中提取出年份。

假设有个订单表,里面有个“下单日期”字段,我们想统计某一年的订单数量。

SELECT COUNT(*) FROM order_table WHERE YEAR(order_date) = 2024; 

DATE_SUB 函数可以减去一定的时间间隔。比如我们想找出一个月前的日期。

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来计算该列的总和。

SELECT SUM(column_name) FROM table_name;

2. AVG():计算一组数值的平均值。例如,

SELECT AVG(score) FROM exam_results;

可以计算考试成绩的平均分数。

3. MAX():返回一组数值中的最大值。例如,

SELECT MAX(salary) FROM employees;

可以找出员工表中最高的工资。

4. MIN():返回一组数值中的最小值。例如,

SELECT MIN(price) FROM products;

可以找出产品表中最低的价格。

ROUND 函数可以对一个数值进行四舍五入。比如有个商品价格是 12.345,我们想把它四舍五入到整数。

SELECT ROUND(price) FROM product_table; 

ABS 函数可以求一个数的绝对值。如果有个数值表示温度差,可能是负数,我们用 ABS 函数可以得到它的绝对值大小。

SELECT ABS(temperature_difference) FROM temperature_table; 

MAX 和 MIN 函数可以分别找出一组数值中的最大值和最小值。比如有个成绩表,里面有学生的各科成绩,我们可以用 MAX 函数找出最高分。

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文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值