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

embedded/2024/10/10 23:57:01/

一、使用函数

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


http://www.ppmy.cn/embedded/125610.html

相关文章

设计模式(2)工厂模式

让一个工厂类去生产出对象 (new )来。 我们想要一个 形状,我们用工厂去生产出,圆形,方形。 package com.example.factory2;public interface Shape {void draw(); }public class Square implements Shape {Overridep…

大数据-159 Apache Kylin 构建Cube 准备和测试数据

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

【大数据】Flink CDC 实时同步mysql数据

目录 一、前言 二、Flink CDC介绍 2.1 什么是Flink CDC 2.2 Flink CDC 特点 2.3 Flink CDC 核心工作原理 2.4 Flink CDC 使用场景 三、常用的数据同步方案对比 3.1 数据同步概述 3.1.1 数据同步来源 3.2 常用的数据同步方案汇总 3.3 为什么推荐Flink CDC 3.4 Flink …

【Iceberg分析】Spark与Iceberg集成落地实践(一)

Spark与Iceberg集成落地实践(一) 文章目录 Spark与Iceberg集成落地实践(一)清理快照与元数据配置表维度自动清理元数据文件属性SPARK DDL语句作用 手动清理 清理孤岛文件合并数据文件可用配置rewriteDataFiles核心类图 清理快照与…

毕业设计项目 大数据电影数据分析与可视化系统(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…

C++、Ruby和JavaScript

C C最初被称为带类的C, 兼容C的语法,此既是C得以流行的前提,也是C某些语法被捆绑的根源。C的来源于C语言的递增运算符,代表增加,意义为扩展。 C的历史 C类的设计思想来源于Simula. Simula为模拟的意思,被称为最早的面向…

【软考】设计模式之中介者模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 适用性6. 优点 1. 说明 1.用一个中介对象来封装一系列的对象交互。2.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。3.中介者模式(Mediator Pattern&…

前端使用rsa对密码加密,springboot使用rsa对密码进行解密

前端 <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>JSEncrypt Example</title><script src"https://cdn.rawgit.com/spark/crypto-js/master…