【MySQL】数据基本的增删改查操作

新增数据(Create)

在MySQL中,增加数据的操作主要使用 INSERT 语句。下面我们将分为两部分:单行数据插入和多行数据插入。

一、单行数据插入

  1. 全列插入 : 当你要插入一行数据到表中并且要提供所有列的值时,可以使用如下语法:示例 : 假设我们有一个名为 students 的表,它有三个列:idnameage
sql 复制代码
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20);

2.指定列插入 : 如果你只想插入部分列的值,没提供的列将会使用默认值或者 NULL示例 : 在 students 表中仅插入 nameage,假设 id 列自动递增。

sql 复制代码
INSERT INTO students (name, age) VALUES ('Bob', 22);

二、多行数据插入

  1. 指定列插入 : 可以在一次操作中插入多行数据,且只指定想插入的列。示例 : 向 students 表中插入多名学生的 nameage
sql 复制代码
INSERT INTO students (name, age) VALUES ('Charlie', 19), ('David', 21), ('Eva', 20);

查询数据(Retrieve)

在MySQL中,查询数据的操作主要使用 SELECT 语句。下面将详细描述各类查询方式,包括全列查询、指定列查询、条件过滤等。

一、全列查询

当你需要从一个表中检索所有列的数据时,可以使用 * 通配符。

sql 复制代码
SELECT * FROM 表名;

二、指定列查询

如果只需要查询表中的特定列,可以在 SELECT 语句中明确列出这些列名。

sql 复制代码
SELECT 列1, 列2 FROM 表名;

三、查询字段为表达式

可以在 SELECT 语句中使用表达式,比如数学运算、字符串操作等。

sql 复制代码
SELECT 列1, 列2, (列3 * 2) AS 新列名 FROM 表名;

四、别名

可以使用 AS 关键字为查询结果的列创建一个别名,便于阅读。

sql 复制代码
SELECT 列名 AS 别名 FROM 表名;

五、去重:DISTINCT

如果想要查询结果中的重复数据去除,可以使用 DISTINCT 关键字。

sql 复制代码
SELECT DISTINCT 列名 FROM 表名;

还可以指定多个列。

sql 复制代码
SELECT DISTINCT 列名1,列名2 FROM 表名;

六、排序:ORDER BY

可以使用 ORDER BY 子句对查询结果进行排序。默认是升序 ASC,也可以指定降序 DESC

sql 复制代码
SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC];

还可以在排序里使用表达式

sql 复制代码
SELECT 列名 FROM 表名 ORDER BY 表达式 [ASC|DESC];

七、条件查询:WHERE

可以使用 WHERE 子句添加查询条件,筛选满足条件的记录。

sql 复制代码
SELECT 列名 FROM 表名 WHERE 条件;

在MySQL中,WHERE 子句用于过滤查询结果,可以使用多种运算符来构建查询条件。以下是常用的运算符分类及示例:

  1. 比较运算符
  • 等于 (=)
  • 可以判断空值的等于(<=>)
  • 不等于 (<>!=)
  • 大于 (>)
  • 小于 (<)
  • 大于等于 (>=)
  • 小于等于 (<=)
  1. 逻辑运算符
  • 与 (AND)
  • 或 (OR)
  • 非 (NOT)
  1. 范围运算符
  • 在范围内 (BETWEEN ... AND ...)
  • 在集合中 (IN)
  • 模糊匹配 (LIKE)
  1. 空值检查
  • 为空 (IS NULL)
  • 非空 (IS NOT NULL)

这些运算符可以组合使用,以构建复杂的查询条件。

注:

  1. WHERE条件可以使用表达式,但不能使用别名。

  2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分。

八、分页查询:LIMIT

在查询结果中进行分页,可以使用 LIMIT 关键字,指定返回的记录数和起始位置。

sql 复制代码
SELECT 列名 FROM 表名 LIMIT 返回条数 , offset 起始位置;

查询代码案例:

查找总成绩前五名的学生的姓名和总成绩

首先创建一个表,插入多条数据

查询代码

sql 复制代码
select name , math + chinese as total from student order by total limit 5;

查询结果

修改(Update)

在MySQL中,修改数据的操作主要使用 UPDATE 语句。通过 UPDATE 语句,可以更新数据库表中已存在的数据。下面将详细描述其用法。

语法结构

基本的 UPDATE 语法如下:

UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;

组成部分

  1. 表名:要更新数据的表的名称。
  2. SET:用来指定要更新的列以及对应的新值。
  3. :要更新的列名,可以是一个或多个列。
  4. :每个列对应的新值。
  5. WHERE :用来指定条件,确保只更新符合条件的记录。如果不加 WHERE,将会更新表中的所有记录。

操作步骤

  1. 基本更新 :如果需要更新单个列的值,可以直接在 SET 子句中指定。

    • 示例:将 students 表中 ID 为 1 的学生的 name 更新为 Alice
sql 复制代码
UPDATE students SET name = 'Alice' WHERE id = 1;

多列更新 :可以在 SET 子句中同时更新多个列的值。

  • 示例:将 ID 为 2 的学生的 name 更新为 Bob,同时将 age 更新为 22。
sql 复制代码
UPDATE students SET name = 'Bob', age = 22 WHERE id = 2;

条件更新 :使用 WHERE 子句来限制更新的记录。

  • 示例:将所有年龄大于 20 的学生的 age 更新为 21。
sql 复制代码
UPDATE students SET age = 21 WHERE age > 20;

全表更新 :如果省略 WHERE 子句,所有记录将会被更新。

  • 示例:将 students 表中所有学生的 age 更新为 18(注意使用前需仔细考虑)。
sql 复制代码
UPDATE students SET age = 18;

注意事项

  • 小心使用 WHERE 子句:在执行更新操作时,必须确保条件的准确性,以避免意外更新全表的数据。
  • 验证更新结果:在大型数据修改操作后,最好执行查询语句确认数据更新的结果是否符合预期。

结论

通过以上的介绍,可以通过 UPDATE 语句有效地修改MySQL数据库表中的数据,并根据需要灵活地指定更新的条件及列。

删除(Delete)

在MySQL中,删除数据的操作主要使用 DELETE 语句。通过 DELETE 语句,可以从数据库表中删除已存在的记录。下面将详细描述其用法。

语法结构

基本的 DELETE 语法如下:

DELETE FROM 表名 WHERE 条件;

组成部分

  1. 表名:要删除数据的表的名称。
  2. WHERE :用来指定条件,确保只删除符合条件的记录。如果不加 WHERE,则会删除表中的所有记录。

操作步骤

  1. 基本删除 :如果需要删除符合特定条件的单条或多条记录,可以使用 WHERE 子句。

    • 示例:从 students 表中删除 ID 为 1 的学生记录。
sql 复制代码
DELETE FROM students WHERE id = 1;

条件删除:可以使用更复杂的条件来删除记录。

  • 示例:删除所有年龄小于 18 的学生记录。
sql 复制代码
DELETE FROM students WHERE age < 18;

全表删除 :如果省略 WHERE 子句,所有记录将会被删除。

  • 示例:从 students 表中删除所有学生记录(注意使用前需仔细考虑)。
sql 复制代码
DELETE FROM students;

注意事项

  • 小心使用 WHERE 子句:在执行删除操作时,确保条件的准确性,以避免意外删除全表的数据。
  • 备份重要数据:在进行大规模删除操作之前,最好先备份数据,以免意外损失。
  • 验证删除结果:删除操作后,可以执行查询语句确认数据删除的结果是否符合预期。

结论

通过以上的介绍,可以使用 DELETE 语句有效地删除MySQL数据库表中的数据。使用时应谨慎,确保对删除将产生的后果有清晰的认识。

相关推荐
曹牧21 小时前
Oracle数据库中,将JSON字符串转换为多行数据
数据库·oracle·json
被摘下的星星1 天前
MySQL count()函数的用法
数据库·mysql
末央&1 天前
【天机论坛】项目环境搭建和数据库设计
java·数据库
徒 花1 天前
数据库知识复习07
数据库·作业
素玥1 天前
实训5 python连接mysql数据库
数据库·python·mysql
jnrjian1 天前
text index 查看index column index定义 index 刷新频率 index视图
数据库·oracle
瀚高PG实验室1 天前
审计策略修改
网络·数据库·瀚高数据库
言慢行善1 天前
sqlserver模糊查询问题
java·数据库·sqlserver
韶博雅1 天前
emcc24ai
开发语言·数据库·python
有想法的py工程师1 天前
PostgreSQL 分区表排序优化:Append Sort 优化为 Merge Append
大数据·数据库·postgresql