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

Mysql中DML的几种操作

DML(Data Manipulation Language,数据操纵语言)是SQL中用于添加、删除、更新和查询数据库记录的一类语句。在MySQL中,DML主要包括以下几种操作:

1. 插入(INSERT)

用途:向表中插入新的行。

语法

  • 单次单行插入:

    sql复制代码

    INSERT INTO 表名 (列名1, 列名2, ..., 列名n) VALUES (值1, 值2, ..., 值n);

    如果不指定列名,则需要为表中的所有列提供值,且值的顺序必须与表定义中的列顺序一致。

  • 单次多行插入:

    sql复制代码

    INSERT INTO 表名 (列名1, 列名2, ..., 列名n) VALUES
    (值1_1, 值1_2, ..., 值1_n),
    (值2_1, 值2_2, ..., 值2_n),
    ...;

    这种方式可以一次性插入多行数据,提高插入效率。

2. 更新(UPDATE)

用途:修改表中的数据。

语法

sql复制代码

UPDATE 表名
SET 列名1 = 值1, 列名2 = 值2, ..., 列名n = 值n
[WHERE 条件];
  • WHERE子句是可选的,但如果不使用WHERE子句,则表中的所有行都会被更新为新的值,这通常是不希望发生的。
  • 可以通过WHERE子句指定更新条件,以仅更新满足条件的行。

3. 删除(DELETE)

用途:从表中删除行。

语法

sql复制代码

DELETE FROM 表名
[WHERE 条件];
  • WHERE子句同样是可选的,但如果不使用WHERE子句,则表中的所有行都会被删除,这是一个非常危险的操作,需要谨慎使用。
  • 可以通过WHERE子句指定删除条件,以仅删除满足条件的行。

4. 查询(SELECT)

SELECT语句

用途:从数据库表中选择数据。

语法

sql复制代码

SELECT 列名1, 列名2, ..., 列名n
FROM 表名
[WHERE 条件]
[ORDER BY 列名 [ASC|DESC], ...]
[GROUP BY 列名, ...]
[HAVING 条件]
[LIMIT 偏移量, 数量];
  • 列名:指定要从表中检索的列。可以使用星号(*)代替列名来选择所有列。
  • FROM:指定要从中检索数据的表。
  • WHERE:可选,用于指定选择数据的条件。只有满足条件的行才会被检索出来。
  • ORDER BY:可选,用于对结果进行排序。可以指定一个或多个列作为排序的依据,并指定排序的顺序(升序ASC或降序DESC)。
  • GROUP BY:可选,用于将结果集中的行分组。通常与聚合函数(如COUNT(), MAX(), MIN(), SUM(), AVG())一起使用,以便对每个组执行计算。
  • HAVING:可选,与GROUP BY一起使用,用于指定对分组后的结果进行筛选的条件。
  • LIMIT:可选,用于限制返回的记录数。可以指定返回的起始偏移量和记录数。

注意事项

  • 在执行DML操作时,特别是UPDATE和DELETE操作,务必谨慎使用WHERE子句,以避免错误地修改或删除大量数据。
  • 在执行重要的DML操作之前,建议先使用SELECT语句检查WHERE子句的条件,确保只选中了需要修改或删除的行。
  • 对于重要的数据,建议在执行DML操作之前进行备份,以防万一发生数据丢失或损坏。

DML操作是数据库管理中非常基础且重要的部分,熟练掌握DML语句对于进行数据库的日常维护和管理至关重要。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【React】详解“最新”和“最热”切换与排序
  • 实战解读:Llama Guard 3 Prompt Guard
  • 【机器学习】探索图神经网络 (GNNs): 揭秘图结构数据处理的未来
  • 软件环境安装-通过Docker安装rabbitmq
  • 在Android开发中,如何优化onCreate()和onResume()方法以提高应用性能?
  • 破局产品同质化:解锁3D交互式营销新纪元!
  • Java 使用 POI 导出Excel,实现单元格输入内容提示功能
  • LabVIEW操作系列1
  • 使用abpcli创建项目时提示数据库迁移失败
  • uniapp开发精选短视频视频小程序实战笔记20240725,实现顶部轮播图和热门短剧
  • VulnHub靶机入门篇--Kioptrix4
  • scrapy爬取城市天气数据
  • 【Golang 面试 - 进阶题】每日 3 题(一)
  • WordPress原创插件:启用关闭经典编辑器和小工具
  • 力扣刷题----42. 接雨水
  • $translatePartialLoader加载失败及解决方式
  • 11111111
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Date型的使用
  • es6--symbol
  • JavaScript类型识别
  • js正则,这点儿就够用了
  • JS字符串转数字方法总结
  • learning koa2.x
  • 阿里云应用高可用服务公测发布
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 大型网站性能监测、分析与优化常见问题QA
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 前端面试之闭包
  • 事件委托的小应用
  • 一个JAVA程序员成长之路分享
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​字​节​一​面​
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #if 1...#endif
  • #ifdef 的技巧用法
  • #window11设置系统变量#
  • $(function(){})与(function($){....})(jQuery)的区别
  • (35)远程识别(又称无人机识别)(二)
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)pulsar安装在独立的docker中,python测试
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (接口自动化)Python3操作MySQL数据库
  • (十一)图像的罗伯特梯度锐化
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .NET C# 使用 iText 生成PDF
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • .net中生成excel后调整宽度
  • /usr/bin/env: node: No such file or directory