前言:在 MySQL 中,增、删、改、查(CRUD)操作是基本的数据库操作,增操作(INSERT)用于插入数据,删操作(DELETE)用于删除数据,改操作(UPDATE)用于更新数据,查操作(SELECT)用于查询数据。
✨✨✨这里是秋刀鱼不做梦的BLOG
✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客
在正式开始讲解之前,先让我们看一下本文大致的讲解内容:
目录
1.增操作
(1)INSERT 操作
——插入数据的基本语法
——插入方式
【1】单行全列插入
【2】单行指定列插入
【3】多行指定列插入
2.查操作
(1)SELECT 查询
【1】查询所有列
【2】查询指定列
【3】查询字段为表达式
【4】查询结果去重
(2)WHERE 条件查询
【1】条件运算符
【2】逻辑运算符
【3】范围查询
【4】多值查询
【5】模糊查询
【6】NULL 查询
(3)ORDER BY 排序
(4)分页查询
3.修改操作
(1)UPDATE操作
4.删除操作
(1)DELETE操作
1.增操作
(1)INSERT 操作
——插入数据的基本语法
首先先让我们学习一下插入操作(INSERT),INSERT 语句用于向数据库表中插入新记录,最常见的插入方式是指定列名和对应的值,基本语法如下:
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
为了能让读者更好的进行理解,这里我们使用一个案例来进一步讲解一下,假设我们有一个员工表 employees
,其结构如下:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
job VARCHAR(50)
);
我们可以使用 INSERT INTO
语句将数据插入表中:
INSERT INTO employees (id, name, age, job) VALUES (1, 'Alice', 30, 'Engineer');
这样我们就完成了插入操作了!
——插入方式
在了解了插入语句的基本操作之后,在让我们看一下MySQL中的插入方式有哪些:
【1】单行全列插入
单行全列插入的方式是最简单的插入方式,在这种方式下,我们不需要指定列名,直接按表的结构顺序提供值,插入的数据会按顺序与表的列匹配。
例子:
INSERT INTO employees VALUES (2, 'Bob', 28, 'Manager');
解释:在这个示例中,我们没有显式指定列名,VALUES
中的值会按表中列的顺序插入。
【2】单行指定列插入
当我们不希望插入所有列的数据时,可以仅插入部分列,此时需要明确指定要插入的列名,如果未指定的列没有默认值或允许 NULL
,则会插入 NULL
。
例子:
INSERT INTO employees (id, name) VALUES (3, 'Charlie');
解释:在上面的示例中,只有 id
和 name
被插入,age
和 job
会默认为 NULL
(假设这两个字段允许 NULL
)。
【3】多行指定列插入
SQL 允许我们在一个 INSERT
语句中插入多行数据,这样可以减少数据库的交互次数,提高批量插入的效率。
例子:
INSERT INTO employees (id, name, age, job)
VALUES (4, 'David', 35, 'HR'),
(5, 'Eva', 40, 'CFO'),
(6, 'Frank', 25, 'Engineer');
解释:在此示例中,我们一次插入了三行数据,所有插入的数据列都明确列出。
至此,我们就了解了所有的插入方式了!
2.查操作
(1)SELECT 查询
学习完增操作之后,接下来让我们学习一下查操作,首先先让我们学习SELECT 查询,SELECT 语句是用于从数据库表中查询数据的最基本语句,通过 SELECT,我们可以指定查询的列、排序方式、过滤条件等,从而获取所需的结果。
以下为SELECT查询的常见操作:
【1】查询所有列
——如果希望查询表中的所有列,可以使用 SELECT *
:
SELECT * FROM employees;
解释:这条语句将返回 employees
表中的所有列和所有行数据。
【2】查询指定列
——如果我们只关心某些列的数据,可以在 SELECT 语句中指定列名:
SELECT name, age FROM employees;
解释:这样只会返回 name
和 age
两列的数据,而忽略其他列。
【3】查询字段为表达式
——有时,我们可能需要在查询结果中包含计算结果,例如,可以将员工的年龄加上 5 年,生成一个新的字段。
SELECT name, age, age + 5 AS age_in_5_years FROM employees;
解释:在这个示例中,我们不仅查询了 name
和 age
列,还通过表达式 age + 5
计算了员工 5 年后的年龄,并给计算结果起了个别名 age_in_5_years
。
【4】查询结果去重
——使用 DISTINCT
关键字可以去除查询结果中的重复数据,比如,如果我们希望查询所有不重复的职位,可以使用:
SELECT DISTINCT job FROM employees;
解释:这条查询会返回所有不同的职位,而不会重复出现相同的职位。
至此,我们就大致了解了SELECT 查询了!
(2)WHERE 条件查询
在了解完了SELECT 查询之后,在让我们了解一下 WHERE 条件查询。
在 SQL 中,WHERE 子句用于指定筛选查询结果的条件,它可以包含各种条件运算符、逻辑运算符、范围查询、模糊查询等,从而精确控制查询结果。
【1】条件运算符
——SQL 提供了多种条件运算符,允许我们精确地过滤结果。
常见的条件运算符包括:
- =:等于
!=
或<>
:不等于>
、<
:大于、小于>=
、<=
:大于等于、小于等于
示例:
SELECT * FROM employees WHERE age > 30;
解释:这条查询会返回 employees
表中年龄大于 30 岁的所有员工。
【2】逻辑运算符
——除了基本的条件运算符外,SQL 还支持逻辑运算符来组合多个条件:
AND
:同时满足多个条件OR
:满足任一条件NOT
:取反
示例1:
SELECT * FROM employees WHERE age > 30 AND job = 'Engineer';
解释:该查询将返回所有年龄大于 30 且职位为 Engineer
的员工。
示例2:
SELECT * FROM employees WHERE job = 'Engineer' OR job = 'Manager';
解释:这条查询返回所有职位为 Engineer
或 Manager
的员工。
【3】范围查询
——BETWEEN 运算符用于筛选在指定范围内的值,通常用于数值、日期、时间等字段,它是闭区间,即包括边界值。
示例:
SELECT * FROM employees WHERE age BETWEEN 25 AND 35;
解释:这条查询会返回年龄在 25 到 35 岁之间(包括 25 和 35)的所有员工。
【4】多值查询
——IN 运算符用于检查某个值是否在指定的集合中,它可以用于多个具体值的匹配,非常适用于查找在特定列表中的记录。
示例:
SELECT * FROM employees WHERE job IN ('Engineer', 'Manager');
解释:该查询将返回职位为 Engineer
或 Manager
的所有员工。
【5】模糊查询
——LIKE 运算符用于进行模糊匹配,通常用于字符串数据类型。
支持通配符:
%
:匹配零个或多个字符_
:匹配一个字符
示例:
SELECT * FROM employees WHERE name LIKE 'A%';
解释:这条查询将返回所有名字以字母 A
开头的员工。例如,Alice
、Andrew
等。
【6】NULL 查询
——IS NOT 用于判断某个字段是否为空,而 IS NOT NULL 用于判断字段不为空。
示例1:
SELECT * FROM employees WHERE job IS NULL;
解释:该查询将返回 job
字段为空的所有员工记录。
示例2:
SELECT * FROM employees WHERE job IS NOT NULL;
解释:这条查询将返回所有职位已指定的员工记录。
至此,我们就了解了所有的where条件查询了!
(3)ORDER BY 排序
在学习完了SELECT查询和where查询之后,在让我们学习一下ORDER BY 排序查询,ORDER BY子句用于对查询结果进行排序,可以按一个或多个列进行升序(ASC
)或降序(DESC
)排列。
以下是常见的排序方式:
升序排序:
——ORDER BY 默认按照升序排列数据。
示例:
SELECT * FROM employees ORDER BY age;
解释:这条查询会按 age
列的升序对 employees
表进行排序,即年龄从小到大。
降序排序:
——如果是想要按降序排列,可以在列后加上 DESC
:
示例:
SELECT * FROM employees ORDER BY age DESC;
解释:这条查询将返回 employees
表中按 age
列降序排列的员工数据,即年龄从大到小。
按多个列排序:
——ORDER BY还支持对多个列进行排序,默认情况下,排序是从左到右进行的,可以先按一个列排序,再按另一个列排序。
示例:
SELECT * FROM employees ORDER BY job, age DESC;
解释:该查询将首先按照 job
列升序排列,如果有多个员工职位相同,再根据 age
列降序排列。
以上就是ORDER BY排序的常见排序方式了!
(4)分页查询
接下来让我们学习一下分页查询,分页查询用于在查询结果较多时,将数据分为多个页面进行展示,SQL 提供了 LIMIT
和 OFFSET
来实现分页查询。
其中 LIMIT
用于限制返回的记录数,而 OFFSET
用于指定从哪一行开始返回数据。LIMIT
和 OFFSET
通常一起使用来控制分页。
示例:
假设我们每页显示 10 条记录,想查询第 2 页的内容:
SELECT * FROM employees LIMIT 10 OFFSET 10;
解释:这条查询会从第 11 条记录开始,返回 10 条记录(即第 2 页的内容),OFFSET
指定了起始记录的偏移量,而 LIMIT
指定了每页返回的记录数。
相信通过上述的案例,读者就可以很好的对分页查询进行理解了!
3.修改操作
(1)UPDATE操作
在学习完了增操作和查操作之后,在让我们学习一下修改操作,UPDATE
语句用于修改表中的现有数据,它允许我们指定要修改的列及其新值,并通过 WHERE
子句指定修改的行,没有 WHERE
子句时,整个表的所有数据都会被更新。
基本语法:
UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件;
了解了上述的基础语法之后,让我们使用一个例子来帮助你进行理解:
UPDATE employees SET age = 35 WHERE id = 1;
解释:上面的示例将 id
为 1 的员工年龄更新为 35。
使用UPDATE
语句时的注意事项:
- 在执行
UPDATE
时,确保通过WHERE
子句精确指定要更新的记录,否则可能会更新整个表的数据。- 在更新前,可以先执行
SELECT
查询确认数据是否符合预期,以避免误操作。
至此,我们就了解完了MySQL中的修改操作了!
4.删除操作
(1)DELETE操作
最后再让我们学习一下删除操作,DELETE
用于删除表中的记录,与 UPDATE
操作类似,DELETE
也需要通过 WHERE
子句指定条件,否则会删除表中的所有数据。
基本语法:
DELETE FROM 表名 WHERE 条件;
了解了上述的基础语法之后,让我们使用一个例子来帮助你进行理解:
DELETE FROM employees WHERE id = 1;
解释:该语句删除 id
为 1 的员工记录。
使用DELETE
操作的注意事项:
- 删除操作是不可恢复的,因此在执行
DELETE
时,建议先进行备份或者确认条件是否准确。- 同样,使用
WHERE
子句时要非常谨慎,避免不小心删除所有数据。
至此,我们就了解完了MySQL中的删除操作了!
以上就是本篇文章全部内容~~