云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

《MySQL必知必会》_笔记04(mysql必知必会最新版)

jxf315 2025-03-14 18:11:50 教程文章 13 ℃

第10章 创建计算字段

一、计算字段的概念

存储在数据库表中的数据通常并非应用程序所需的格式,计算字段就是为解决这一问题而产生。它并不实际存在于数据库表中,而是在运行时由SELECT语句创建,用于直接从数据库中检索转换、计算或格式化后的数据。

二、拼接字段

在 MySQL 中,使用Concat()函数拼接字段,如将vendors表中的vend_namevend_country拼接成一个新字段。

SELECT Concat(vend_name, '(', vend_country, ')') 
FROM vendors 
ORDER BY vend_name;

为了处理数据右侧多余的空格,可使用RTrim()函数。同时,SQL 支持列别名,通过AS关键字为计算字段赋予别名,方便在客户机应用中引用。

SELECT Concat(RTrim(vend_name), '(', RTrim(vend_country), ')') AS vend_title
FROM vendors 
ORDER BY vend_name;

三、执行算术计算

计算字段可用于对检索出的数据进行算术计算。例如,从orderitems表中检索订单物品信息,并计算每项物品的总价(单价item_price乘以数量quantity)。

SELECT prod_id, quantity, item_price, quantity * item_price AS expanded_price
FROM orderitems 
WHERE order_num = 20005;

MySQL 支持基本的算术操作符(如加、减、乘、除),圆括号可用于区分优先顺序。此外,通过省略FROM子句,SELECT可用于测试和试验函数与计算。

四、小结

本章介绍了计算字段的概念,以及如何在串拼接和算术计算中使用计算字段。同时,还学习了如何创建和使用别名,方便应用程序引用计算字段。在实际应用中,计算字段能极大地满足从数据库中获取特定格式数据的需求。

五、实战案例

(一) 实战数据准备

1. 建表语句

CREATE TABLE arithmetic_test (
    id INT AUTO_INCREMENT PRIMARY KEY,
    num1 DECIMAL(10, 2),
    num2 DECIMAL(10, 2)
);

2. 插入数据语句

INSERT INTO arithmetic_test (num1, num2) VALUES (5.5, 3.5), (10.0, 2.0), (7.0, 4.0);

(二) 题目

1. 计算arithmetic_test表中num1与num2的和,并显示结果。

使用+操作符进行加法运算,在SELECT语句中计算并显示结果。

SELECT num1 + num2 AS sum_result
FROM arithmetic_test;

2. 计算arithmetic_test表中num1除以num2的结果,并取别名division_result。

使用/操作符进行除法运算,并通过AS关键字为结果取别名。

SELECT num1 / num2 AS division_result
FROM arithmetic_test;

第11章 使用数据处理函数

一、函数概述

SQL 支持函数处理数据,函数可对数据进行转换和处理,如RTrim()函数用于去掉串尾空格。但函数的可移植性不如 SQL 语句,不同 DBMS 支持的函数存在差异。使用函数时应做好代码注释,以便理解代码含义。

二、使用函数

MySQL 支持多种类型的函数,包括文本处理函数、日期和时间处理函数、数值处理函数和系统函数。

2.1 文本处理函数

用于处理文本串,如Upper()将文本转换为大写,Soundex()可返回串的语音表示模式,用于发音比较。例如,使用Soundex()函数可搜索发音相似的联系名。

2.2 日期和时间处理函数

用于处理日期和时间值,提取特定成分或进行运算。MySQL 中日期格式通常为yyyy - mm - dd,在进行日期比较时,需注意数据类型和格式。如使用Date()函数提取日期部分进行比较,可确保查询的准确性。同时,还可使用Year()、Month()等函数提取年份、月份等信息,或使用DateDiff()计算两个日期之差。

2.3 数值处理函数

仅处理数值数据,用于代数、三角或几何运算,如Abs()返回绝对值,Rand()返回随机数等。在主要 DBMS 的函数中,数值函数相对较为一致统一。

三、小结

本章介绍了 MySQL 中各类数据处理函数的使用方法,重点讲解了日期处理函数的使用要点。在实际应用中,合理使用这些函数能够更高效地处理和操作数据,满足不同的业务需求。

四、实战案例

4.1 实战数据准备

4.1.1 建表语句

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    hire_date DATE,
    salary DECIMAL(10, 2)
);

4.1.2 插入数据语句

INSERT INTO employees (name, hire_date, salary) 
VALUES ('Alice', '2020-01-15', 5000.00), 
       ('Bob', '2021-03-20', 5500.00), 
       ('Charlie', '2022-07-25', 6000.00);

4.2 题目

4.2.1 将employees表中所有员工的名字转换为小写

使用Lower()函数将文本转换为小写。

SELECT Lower(name) AS lower_name
FROM employees;

4.2.2 计算每位员工入职至今的月数(假设当前日期为 '2023-10-01')

使用Datediff()函数计算两个日期之间的差值,通过将日期差值转换为月数来实现。

SELECT id, name, hire_date,
       Datediff('2023-10-01', hire_date) / 30 AS months_since_hire 
FROM employees;

4.2.3 对employees表中的salary增加 10%,并显示结果

使用基本算术运算对salary进行计算,增加 10% 即乘以 1.1。

SELECT id, name, salary * 1.1 AS new_salary
FROM employees;

Tags:

最近发表
标签列表