一、概述
MySQL是一种流行的关系型数据库管理系统,广泛应用于各种应用场景。在MySQL中,CURD操作是指创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据库中的数据。此外,MySQL还提供了丰富的函数来处理和操作数据,以及用于组合多个查询结果的UNION和UNION ALL操作。本文将介绍这些基本操作和功能的详细信息。
二、CURD操作
- 创建数据库和表
要使用MySQL数据库,首先需要创建数据库和表。可以使用CREATE DATABASE语句创建数据库,使用CREATE TABLE语句创建表。例如:
sql复制代码
CREATE DATABASE mydatabase; | |
USE mydatabase; | |
CREATE TABLE mytable (id INT, name VARCHAR(50), age INT); |
- 读取数据
要从表中读取数据,可以使用SELECT语句。SELECT语句允许您指定要检索的列,并使用WHERE子句对结果进行筛选。例如:
sql复制代码
SELECT * FROM mytable WHERE age > 18; |
- 更新数据
要更新表中的数据,可以使用UPDATE语句。UPDATE语句允许您指定要更新的列和条件,并使用SET子句指定要更新的值。例如:
sql复制代码
UPDATE mytable SET age = 20 WHERE id = 1; |
- 删除数据
要从表中删除数据,可以使用DELETE语句。DELETE语句允许您指定要删除的行或条件。例如:
sql复制代码
DELETE FROM mytable WHERE age < 18; |
三、常见函数
MySQL提供了许多内置函数,用于处理和操作数据。以下是一些常见的MySQL函数:
- 字符串函数:例如CONCAT、SUBSTRING、UPPER和LOWER等,用于处理字符串数据。
- 数值函数:例如ROUND、CEIL和FLOOR等,用于处理数值数据。
- 日期函数:例如NOW、DATE、DAY、MONTH和YEAR等,用于处理日期和时间数据。
- 聚合函数:例如SUM、COUNT、AVG和MAX等,用于对数据进行聚合计算。
- 控制流函数:例如IF、CASE和NULLIF等,用于在查询中添加条件逻辑。
- 类型转换函数:例如CAST和CONVERT等,用于在查询中转换数据类型。
- 其他函数:例如COALESCE、GREATEST和LEAST等,用于执行其他常见的数据处理任务。
- 流程控制函数:
-
CASE语句:
使用CASE
语句可以在查询中实现条件逻辑。它允许你根据一个或多个条件对数据进行分类或转换。 -
sql复制代码
SELECT
id,
name,
CASE
WHEN age < 18 THEN '未成年'
WHEN age BETWEEN 18 AND 60 THEN '成年'
ELSE '老年'
END AS age_group
FROM users;
-
IF函数:
在存储过程中,你可以使用IF
语句进行条件判断和流程控制。 -
sql复制代码
BEGIN
IF age < 18 THEN
-- 执行某些操作
ELSE
-- 执行其他操作
END IF;
END;
- 流程控制结构:
在存储过程中,你可以使用IF
、WHILE
、REPEAT
等结构来实现更复杂的流程控制。 - 流程控制变量:
在存储过程中,可以使用用户定义的变量来控制流程。例如,设置一个标志变量,根据其值来决定是否执行某些操作。 - 游标:
当需要遍历查询结果中的每一行并基于行数据进行决策时,可以使用游标。游标允许你在处理结果集的每一行时进行逐行操作。 - 存储过程和函数:
通过编写存储过程和函数,你可以将一系列的SQL语句组织在一起,并在满足特定条件时执行它们。这提供了更高级别的流程控制能力。 - 触发器:
触发器是与表事件(如INSERT、UPDATE、DELETE)相关联的特殊类型的存储过程,它会在对表执行特定操作时自动执行。触发器可以用于实现某些自动化的流程控制。 - 事件调度器:
MySQL的事件调度器允许你创建在指定时间或间隔自动执行的任务。这可以用于定期执行某些操作或检查条件。 - 外键和触发器:
通过定义外键约束和相应的触发器,可以在数据库级别实现某些数据完整性和流程控制逻辑。例如,当一个表中的数据发生变化时,触发器可以自动更新另一个表中的相关数据。 - 连接和子查询:
通过使用连接(JOIN)和子查询,可以在单个查询中结合多个表的数据,并根据这些数据执行条件逻辑。 -
四。UNION和UNION ALL是数据库中用于合并多个表的结果集的两个重要的SQL运算符。
UNION操作符用于将两个或多个SELECT语句的结果组合到一个结果集中。它会自动删除重复的行,并按照默认规则对结果集进行排序。UNION操作符要求每个SELECT语句具有相同数量的列,列的数据类型也必须兼容。
UNION ALL操作符类似于UNION操作符,也是用于合并多个表的结果集。但是,UNION ALL不会删除重复的行,也不会对结果集进行排序。它将所有的结果全部显示出来,不管是不是重复。
总的来说,UNION和UNION ALL都是用于合并多个表的结果集,但它们在处理重复行和排序方面有所不同。