第七篇:SQL语法-DML-数据操作语言

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。它主要包含以下操作,

  • 添加数据(INSERT)
  • 修改数据(UPDATE)
  • 删除数据(DELETE)


一,添加数据(INSERT)

注意:

  • 插入数据时,指定的字段顺序与值的顺序一一对应
  • 字符串类型和日期类型的数据必须包含在英文引号(单或双均可)中
  • 插入数据的大小要在字段的规定范围内

MySQL常见数据类型及其相应的大小范围查询此篇->

第五篇:MySQL常见数据类型-CSDN博客

(一)给所有字段添加数据

insert into 表名 values(值1,值2,...);

(二)给指定字段添加数据

(在表名之后指定字段)

insert into 表名(字段名1,字段名2,...) values(值1,值2,...);

(三)批量添加数据

(1)批量给全部字段添加数据

(在values后面添多值)

insert into 表名 values(值1,值2,...), (值1,值2,...)...;

(2)批量给指定字段添加数据

(在表名之后指定字段)

insert into 表名(字段名1,字段名2,...) values(值1,值2,...), (值1,值2,...)...;


二,修改(更新)数据(UPDATE)

(注:<尖括号>内的内容是可选项

where之后的条件一般选用一个唯一的字段,如果有多个条件则用【and】连接

例如:

where id=1】表示修改操作将作用于id=1的数据

where name="张三" and gender="女"】表示修改操作将作用于name="张三"且gender="女"的数据

update 表名 set 字段名1=值1, 字段名2=值2,...<where 条件>;

注意注意!

如果没有写<where 条件>,修改操作将作用于表中所有数据,是比较危险的操作,如果是误操作,则会瞬间污染表中所有数据!如果MySQL工具相对智能,此时就会报出警告让你确认运行(相当人性化的设计,SQLyog就没有这个功能,也可能是我没找到开关吧,至于cmd命令行窗口就别想了……),如下图是【HeidiSQL】的警告提示,【HeidiSQL】的安装在本专栏的第六篇博客中有详细介绍->第六篇:MySQL图形化管理工具-CSDN博客

842521039373417ab11d9bfa1c6116e1.png


三,删除数据(DELETE)

(注:<尖括号>内的内容是可选项)

delete from 表名 <where 条件>

此处的<where 条件>的规则和二,修改数据(UPDATE)的规则是一模一样的(就在上面,往上翻一下),如果不写的话删除操作将作用于表中所有数据,如果是误操作则会瞬间清空表的所有内容

这操作有多危险就不必赘述了吧……如果没有提前备份sql文件的话,实际开发中真的是靠这一行命令毁一生了/(ㄒoㄒ)/~~(删库跑路,牢底坐穿🤣)

4ee55502d996435cbae7babaa982af87.png

因此如果有图形化管理工具的警告保障,则能避免一步跳崖式的惨案

8a5f8c4d5ef143f98eb440fb8b65ad33.png


四,测试

小练习

(保留节目)下面给出一个博主自拟的小练习(下面有详解答案,一定要多写多练阿!),通过这个练习来对DML数据操作的相关命令加以熟练,顺便多熟悉一下上一篇刚安装好的图形化管理工具,博主就拿【HeidiSQL】做演示了——

在完成每一步操作之后,请用查询表内容的命令查看表格内容是否符合预期操作!

(懵了吧😉😂,不知道怎么查看表的内容?不是【desc 表名】阿😫,这个是用来查询表结构的,查询表的命令是下一篇DQL语句的内容,让阿晴偷偷提前告诉你吧,先用着噢!快说:谢谢阿晴!)

c3d9225edf9646f485969f3128d1a896.png

select * from 表名;

1.创建一个名为test的数据库,并在该库中创建一个名为users的表,其中包括4个字段,分别是:id intname varchar(20)gender varchar(1)

直接通过图形化界面输入字段完成创建即可,不使用命令

2.使用【insert】命令,给所有字段添加新数据:id=1, name="keqing", gender="女"

3.使用【insert】命令,给name和gender两个字段添加新数据:name="furina", gender="女"

4.使用【insert】命令,批量给所有字段添加新数据,数据分别是:

id=3, name="tartaglia", gender="男"

id=4, name="zhongli", gender="男"

id=5, name="我先占个位儿"

5.使用【update】命令,给目前表格中唯一一条没有id的数据添加id=2

6.使用【delete】命令,把name="我先占个位儿"的这条奇奇怪怪的数据给删了,记得加<where 条件>

7.使用【delete】命令,故意不加<where 条件>,感受一下【HeidiSQL】的人性化警报提醒,如果你用的是其它图形化管理工具,博主就不保证都有这个功能咯~

对答案

1.创建一个名为test的数据库,并在该库中创建一个名为users的表,其中包括4个字段,分别是:id intname varchar(20)gender varchar(1)

直接通过图形化界面输入字段完成创建即可,不必使用命令

创建test数据库

e34ad38b20f04469b8300e0b39b994bd.png

3820f96816db4c4fb72ef3bb8dcff551.png

2.使用【insert】命令,给所有字段添加新数据:id=1, name="keqing", gender="女"

直接在【查询】界面使用命令->(括号内的数据不用带字段名的噢,你不会直接复制上面的吧哈哈😉,这样数据会变成NULL,删掉重新做吧)

insert into users values(1, "keqing", "女");

然后查询表内容的命令->

select * from users;

最后【右键】->【运行】运行代码或者快捷键【F9】直接运行代码

c89ae56fc5fa4c0495b3ce91b96f22c0.png

3.使用【insert】命令,给name和gender两个字段添加新数据:name="furina", gender="女"

 跟上面的差不多吧,在表名后面加上指定字段就好了->(给指定字段添加数据,数据和字段的顺序一定要一一对应阿!)

insert into users(name, gender) values("furina", "女");

然后查询表内容的命令->

select * from users;

最后【右键】->【运行】运行代码或者快捷键【F9】直接运行代码,对了,一定记得要把之前的代码删掉或者注释掉再运行,否则之前的代码会被再执行一次的

4af3193432034cb5be6277c000dbc09e.png

4.使用【insert】命令,批量给所有字段添加新数据,数据分别是:

id=3, name="tartaglia", gender="男"

id=4, name="zhongli", gender="男"

id=5, name="我先占个位儿", gender="无"

批量添加数据其实就是多加几个括号而已->

insert into users VALUES(3, "tartaglia", "男"), (4, "zhongli", "男"), (5, "我先占个位儿", "无");

5199ed604c6c47ad89084efed5796eb8.png

5.使用【update】命令,给目前表格中唯一一条没有id的数据修改其id=2

一定要写<where 条件>噢,否则所有数据的id都变成2了!

UPDATE users SET id=2 WHERE NAME="furina";

ad1845659d4d40ee8ca56c903f8baaff.png

6.使用【delete】命令,把name="我先占个位儿"的这条奇奇怪怪的数据给删了,记得加<where 条件>

一定要写<where 条件>噢,否则所有数据都会被删除!

delete from users where id=5;

07071c849bfe4444b61106aa9fb18c79.png

7.使用【delete】命令,故意不加<where 条件>,感受一下【HeidiSQL】的人性化警报提醒,如果你用的是其它图形化管理工具,博主就不保证都有这个功能咯~

小手一抖,表格没有🤣

f0aa9c8637af4144a8e951c7f240966d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/681939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解析基于检索排序的知识图谱问答系统

目录 前言1 问句的表示与语义理解1.1 问句表示的重要性1.2 端到端网络的优势 2 知识图谱中的排序问题2.1 知识图谱的核心作用2.2 查询匹配的转化与排序问题2.3 实体链接的关键性2.4 路径的构建与系统优化 3 难点与挑战3.1 实体链接、命名实体识别和消歧3.2 排序模型的挑战 4 优…

【C++】模版初阶

目录 泛函编程 函数模版 概念 格式 原理 实例化 模版函数的匹配原则 类模板 定义格式 泛函编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, dou…

Java中锁的应用

文章目录 前言一、场景描述二、加锁1.synchronized2.ReentrantLock 三、扩展1.ThreadLocal 总结 前言 在多线程场景下&#xff0c;多个线程同时对共享变量进行操作是存在风险的&#xff0c;这时候就需要加锁来保证数据的正确性。 一、场景描述 我这里有5个无人机,准备卖到乌克…

去除vue自带的边距

使用vue时发现总有去不掉的外边距&#xff0c;在index.vue里面怎样设置样式都不管用 查阅资料后发现要在vue项目自带的index.html文件内添加下面的样式代码才行 <style>*{margin: 0;padding: 0;}body,html{margin: 0;padding: 0;} </style>

代码随想录算法训练营day50 || 57. 爬楼梯,322. 零钱兑换,279.完全平方数

讲解链接&#xff1a; 代码随想录 动态规划之完全背包&#xff0c;装满背包最少的物品件数是多少&#xff1f;| LeetCode&#xff1a;322.零钱兑换_哔哩哔哩_bilibili 动态规划之完全背包&#xff0c;换汤不换药&#xff01;| LeetCode&#xff1a;279.完全平方数_哔哩哔哩_bil…

多表查询

目录 统计出一张数据表中的数据量 查询 dept 表中的数据量 查询 emp 表中的数据量 实现 emp 与 dept 的多表查询 笛卡尔积 消除笛卡尔积 把数据表 emp 的别名定为 e&#xff0c;数据表 dept 的别名定为 d&#xff0c;然后在查询中分别使用 e 和 d 代替这两个表 Oracle从…

【MATLAB】PSO_BP神经网络回归预测(多输入多输出)算法原理

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 PSO-BP神经网络回归预测&#xff08;多输入多输出&#xff09;算法是一种结合粒子群优化算法&#xff08;PSO&#xff09;和反向传播&#xff08;BP&#xff09;神经网络的混合算法。该算…

在小区门口开什么店比较好?把握商机从这里开始

作为一位资深的鲜奶吧创业者&#xff0c;我已经在这个行业摸爬滚打了五年。这五年的时间里&#xff0c;我见证了社区商业的繁荣与变迁&#xff0c;也深刻体会到了在小区门口开店的商机与挑战。今天&#xff0c;我想和大家分享一些关于在小区门口开店的见解&#xff0c;特别是针…

js中正则表达式的详解(应用场景)

文章目录 一、是什么二、匹配规则正则表达式标记贪婪模式懒惰模式分组 三、匹配方法str.match(regexp)str.matchAll(regexp)str.search(regexp)str.replace(regexp)str.split(regexp)regexp.exec(str)regexp.test(str) 四、应用场景参考文献 一、是什么 正则表达式是一种用来匹…

Android 9.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决

1.概述 在9.0的rom定制化开发中,在点击系统自带的播放器以后,播放音乐的时候,在最近任务栏recents列表中,点击全部清除,发现音乐播放器还在播放音乐,导致出现bug,完整的 解决方法,肯定是需要点击全部清除以后,音乐播放器也被杀掉进程,接下来分析下这个移除任务栏流程…

rtt设备io框架面向对象学习-adc设备

目录 1.adc设备基类2.adc设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.adc设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的adc.h定义了如下adc设备基类 struct rt_ad…

寒假作业-day11

1>编程实现二维数组的杨辉三角 2>编程实现二维数组计算每一行的和以及列和 3>编程实现二维数计算第二大值 代码&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h>void yanghui(int n){int arr[n][n];for (int i 0; i <…

从零开始实现消息队列(一)

从零开始实现消息队列 .什么是消息队列需求分析核心概念模型 . 什么是消息队列 相信大家都了解过阻塞队列和生产者消费者模型,而阻塞队列最大的用途,就是用于实现生产者消费者模型,生产者消费者模型有以下好处: 解耦合 解释: 当主机A给主机B发消息时,A给B发送请求,B给A返回响应…

app逆向-⽹络请求库Retrofit2

文章目录 一、前言二、POST应用三、GET应用 一、前言 Retrofit2 是基于 OkHttp 构建的 RESTful HTTP 客户端&#xff0c;专门用于简化 HTTP 请求的过程&#xff0c;尤其是用于访问 RESTful API。 Retrofit2 提供了一个声明式的方式来定义 REST API 接口&#xff0c;通过注解来…

【NLP 自然语言处理(一)---词向量】

文章目录 什么是NLP自然语言处理发展历程自然语言处理模型模型能识别单词的方法词向量分词 一个向量vector表示一个词词向量的表示-one-hot多维词嵌入word embeding词向量的训练方法 CBOW Skip-gram词嵌入的理论依据 一个vector&#xff08;向量&#xff09;表示短语或者文章ve…

P1990 覆盖墙壁题解

题目 有一个长为N宽为2的墙壁&#xff0c;给你两种砖头&#xff1a;一个长2宽1&#xff0c;另一个是L型覆盖3个单元的砖头。如下图&#xff1a; 0 0 0 00砖头可以旋转&#xff0c;两种砖头可以无限制提供。你的任务是计算用这两种来覆盖N2的墙壁的覆盖方法。例如一个23的墙…

13种2023年智能算法进行PK,免费获取matlab代码

本期推出13种2023年智能算法进行PK&#xff0c;在CEC2005和CEC2022函数集进行测试。文末有代码获取方式。 13种算法都是2023年提出的&#xff0c;分别为&#xff1a; 淘金优化器(GRO)&#xff0c;雪消融优化器(SAO)&#xff0c;霜冰优化算法(RIME)&#xff0c;减法优化器(SABO)…

C++-添加Com类-从 ActiveX 控件添加类-从类型库添加类向导

文章目录 1.从类型库添加类向导2.从 ActiveX 控件添加类3.总结1.从类型库添加类向导 在Visual Studio等开发环境中,从类型库添加类向导是一个用于自动生成接口实现代码的功能。它可以帮助开发者根据COM(Component Object Model)类型库中的接口定义生成对应的类,极大地提高…

最通俗易懂的讲解——STP专题(BPDU选举机制)

点赞关注&#xff0c;持续更新STP专题&#xff01;&#xff01;&#xff01; BPDU选举机制 BPDU通过4个参数进行选举&#xff1a; RID&#xff1a;根桥的BID&#xff1b;RPC&#xff1a;对于根桥来说RPC永远等于0&#xff0c;对于非根桥来说RPC是自己的根端口到根桥的路径开…

easyx搭建项目-永七大作战(割草游戏)

永七大作战 游戏介绍&#xff1a; 永七大作战 游戏代码链接&#xff1a;永七大作战 提取码&#xff1a;ABCD 不想水文了&#xff0c;直接献出源码&#xff0c;表示我的诚意