当前位置: 首页 > news >正文

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

新增数据(Create)

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

一、单行数据插入

  1. 全列插入: 当你要插入一行数据到表中并且要提供所有列的值时,可以使用如下语法:示例: 假设我们有一个名为students的表,它有三个列:idnameage

    INSERT INTO students (id, name, age) VALUES (1, ‘Alice’, 20);

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

INSERT INTO students (name, age) VALUES ('Bob', 22);

二、多行数据插入

  1. 指定列插入: 可以在一次操作中插入多行数据,且只指定想插入的列。示例: 向students表中插入多名学生的nameage

    INSERT INTO students (name, age) VALUES (‘Charlie’, 19), (‘David’, 21), (‘Eva’, 20);

查询数据(Retrieve)

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

一、全列查询

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

SELECT * FROM 表名;

二、指定列查询

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

SELECT 列1, 列2 FROM 表名;

三、查询字段为表达式

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

SELECT 列1, 列2, (列3 * 2) AS 新列名 FROM 表名;

四、别名

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

SELECT 列名 AS 别名 FROM 表名;

五、去重:DISTINCT

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

SELECT DISTINCT 列名 FROM 表名;

还可以指定多个列。

SELECT DISTINCT 列名1,列名2 FROM 表名;

六、排序:ORDER BY

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

SELECT 列名 FROM 表名 ORDER BY 列名 [ASC|DESC];

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

SELECT 列名 FROM 表名 ORDER BY 表达式 [ASC|DESC];

七、条件查询:WHERE

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

SELECT 列名 FROM 表名 WHERE 条件;

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

1. 比较运算符

  • 等于 (=)
  • 可以判断空值的等于(<=>)
  • 不等于 (<>!=)
  • 大于 (>)
  • 小于 (<)
  • 大于等于 (>=)
  • 小于等于 (<=)

2. 逻辑运算符

  • 与 (AND)
  • 或 (OR)
  • 非 (NOT)

3. 范围运算符

  • 在范围内 (BETWEEN ... AND ...)
  • 在集合中 (IN)
  • 模糊匹配 (LIKE)

4. 空值检查

  • 为空 (IS NULL)
  • 非空 (IS NOT NULL)

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

注:
1. WHERE条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分。

八、分页查询:LIMIT

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

SELECT 列名 FROM 表名 LIMIT 返回条数 , offset 起始位置;

查询代码案例:

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

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

查询代码

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

    UPDATE students SET name = ‘Alice’ WHERE id = 1;

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

  • 示例:将 ID 为 2 的学生的name更新为Bob,同时将age更新为 22。

    UPDATE students SET name = ‘Bob’, age = 22 WHERE id = 2;

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

  • 示例:将所有年龄大于 20 的学生的age更新为 21。

    UPDATE students SET age = 21 WHERE age > 20;

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

  • 示例:将students表中所有学生的age更新为 18(注意使用前需仔细考虑)。

    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 的学生记录。

    DELETE FROM students WHERE id = 1;

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

  • 示例:删除所有年龄小于 18 的学生记录。

    DELETE FROM students WHERE age < 18;

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

  • 示例:从students表中删除所有学生记录(注意使用前需仔细考虑)。

    DELETE FROM students;

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

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

http://www.jsqmd.com/news/454059/

相关文章:

  • 每周带你看AI(3.8)
  • 2026.3.8oj总结
  • OpenClaw 多租户企业级架构设计
  • 银行项目相关测试业务流常见问题
  • MyBatis面经
  • str系列函数数组指针和指针函数局部全局静态
  • 2026年名片小程序开发指南:北京定制化服务如何助力企业数字化升级 - 品牌2026
  • 如何学好自动化测试,要会哪些技能
  • 医疗OA系统如何实现CKEditor跨平台图文同步?
  • 携手龙华油松社区开展“智慧社区”数字技能大讲堂项目
  • 计算机毕设java东北非遗文化展示平台 基于SpringBoot框架的东北地区非物质文化遗产数字化传播与交易平台 Java技术驱动的非遗文化资源在线展示与文创电商服务系统
  • Kite:填充处理器
  • 用烟花算法优化SVM参数:从理论到实战
  • 环形链表问题与随机链表的复制oj复盘
  • Matlab布谷鸟优化算法CS原代码集,包含基准测试函数,适用于后续改进与对比,百分百可运行
  • 广州前十留学机构实测!申请躺赢全靠它 - 博客湾
  • 【MySQL】复合查询
  • 探索Matlab/Simulink在电力调频中的多元应用:从传统到新能源的转变
  • 【MySQL】视图、用户和权限管理
  • VulnHub DC-7 靶机渗透测试笔记
  • GitHub 今日热搜:24小时内最受瞩目的10个开源项目
  • 2026年铝型材厂家推荐排行榜:工业铝型材、角铝型材、欧标铝型材、铝合金铝型材、铝型材框架定制、工作台与置物架方铝型材实力品牌精选 - 品牌企业推荐师(官方)
  • 基于遗传粒子群优化算法的LSTM网络预测优化:精准预测与超越局部最优解的挑战
  • 2026年全国薪酬绩效咨询公司哪家靠谱?口碑好实力强适配多行业 靠谱专业且落地性强 - 深度智识库
  • 东莞九头牛软件科技小龙虾openclaw,以创新技术开启AI民主化与GEO平权新时代
  • OpenClaw 配置 Nginx 反向代理完整指南
  • 永磁同步电机控制仿真之旅
  • 使用宝塔一键迁移插件来迁移项目
  • Rust 1.94.0 闪亮登台
  • 【MySQL系列文章】Linux环境下安装部署MySQL