第七篇: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博客


三,删除数据(DELETE)

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

delete from 表名 <where 条件>

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

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

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


四,测试

小练习

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

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

(懵了吧😂😉,不知道怎么查看表的内容?不是【desc 表名】阿😫,这个是用来查询表结构的,查询表内容到第七篇还没学捏,让阿晴偷偷提前告诉你吧,先用着噢!)

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数据库

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

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

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

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

select * from users;

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

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

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

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

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

select * from users;

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

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, "我先占个位儿", "无");

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

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

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

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

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

delete from users where id=5;

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

小手一抖,表格没有🤣

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode:70.爬楼梯

前言&#xff1a;好家伙&#xff0c;一直以为动态规划是啥高大上的&#xff0c;解释那么多&#xff0c;在我看来不过是找规律罢了&#xff0c; 写那么多"专业术语"咋看咋像糊弄人的 (手动扶额) 另外&#xff0c;通项公式虽然抽象还能接受&#xff0c;但是矩阵快速幂…

08:K8S资源对象管理|服务与负载均衡|Ingress

K8S资源对象管理&#xff5c;服务与负载均衡&#xff5c;Ingress DaemonSet控制器污点策略容忍容忍污点 其他资源对象Job资源对象 有限生命周期CronJob资源对象 集群服务服务自动发现headless服务 实现服务定位与查找 服务类型 Ingress插件 发布服务的方式 DaemonSet控制器 Da…

洛谷: P9749 [CSP-J 2023] 公路

思路: 贪心思想指的是在对问题求解的时候&#xff0c;总是能做出在当前看来是最好的选择,也就是说&#xff0c;如果要得到整个问题的最优答案&#xff0c;那么要求每一步都能做出最好的选择&#xff08;feihua&#xff09;。 在这道题里面&#xff0c;我们希望在来到第i站的时…

iTop-4412 裸机程序(十九)- 按键中断

目录 0.源码1.异常向量表1.1 原理1.2 异常种类1.3 ARMv7 规定的异常向量表 2. 中断2.1 iTop-4412 中使用的中断相关寄存器 上篇博文介绍了按键的轮询处理方式&#xff0c;本篇介绍按键的中断方式。 0.源码 GitHub&#xff1a;https://github.com/Kilento/4412NoOS 1.异常向量…

微信小程序(四十四)鉴权组件插槽-登入检测

注释很详细&#xff0c;直接上代码 新增内容&#xff1a; 1.鉴权组件插槽的用法 2.登入检测示范 源码&#xff1a; app.json {"usingComponents": {"auth":"/components/auth/auth"} }app.js App({globalData:{//定义全局变量isLoad:false} })…

C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(1)

目标&#xff1a;旨在开发一个用户友好的软件工具&#xff0c;用于协助用户基于输入对象的成绩数据进行排序。该工具的特色在于&#xff0c;新输入的数据将以红色高亮显示&#xff0c;从而直观地展现出排序过程中数据变化的每一个步骤。 结果展示&#xff1a; 本程序是一个基于…

在Ubuntu22.04上部署FoooCUS2.1

Fooocus 是一款基于 Gradio的图像生成软件&#xff0c;Fooocus 是对 Stable Diffusion 和 Midjourney 设计的重新思考&#xff1a; 1、从 Stable Diffusion 学习&#xff0c;该软件是离线的、开源的和免费的。 2、从 Midjourney 中学到&#xff0c;不需要手动调整&#xff0c;…

嵌入式Qt 计算器界面设计代码重构

一.计算器界面设计代码重构 计算器界面设计&#xff1a;嵌入式Qt 计算器界面设计-CSDN博客 重构的概念&#xff1a; 代码实现与代码重构的不同&#xff1a; 软件开发过程&#xff1a; 什么样的代码需要重构&#xff1a; 计算器界面代码重构的框架设计&#xff1a; 实验&#…

理解JAVA命名和目录接口(JNDI)

理解JAVA命名和目录接口(JNDI) 考虑访问网站的场景,Web用户要求记住四字节的IP地址而不是有意义的名称。例如,假设Web用户用123.23.3.123而不是hotmail.com访问hotmail网站。在这种情形下,Web用户难以记住不同的IP地址来访问不同的网站。因此,要使其变得对Web用户简单方…

Unity下使用Sqlite

sqlite和access类似是文件形式的数据库&#xff0c;不需要安装任何服务&#xff0c;可以存储数据&#xff0c;使用起来还是挺方便的。 首先需要安装DLL 需要的DLL 我们找到下面两个文件放入Plugins目录 Mono.Data.Sqlite.dll System.Data.dll DLL文件位于Unity的安装目录下的…

分布式文件系统 SpringBoot+FastDFS+Vue.js

分布式文件系统 SpringBootFastDFSVue.js 一、分布式文件系统1.1.文件系统1.2.什么是分布式文件系统1.3.分布式文件系统的出现1.3.主流的分布式文件系统1.4.分布式文件服务提供商1.4.1.阿里OSS1.4.2.七牛云存储1.4.3.百度云存储 二、fastDFS2.1.fastDSF介绍2.2.为什么要使用fas…

第4讲 小程序首页实现

首页 create.vue <template><view class"vote_type"><view class"vote_tip_wrap"><text class"type_tip">请选择投票类型</text><!-- <text class"share">&#xe739;分享给朋友</text&g…

如何在C# Windows Forms应用程序中实现控件之间的连接线

帮我实现绘图工具多个控件连接线&#xff0c;请用c#代码实现 实现绘图工具中多个控件之间的连接线功能&#xff0c;可以通过以下几个步骤来进行&#xff1a; 定义连接线的数据模型&#xff1a;首先需要定义一个模型来表示连接线&#xff0c;这个模型应该包含起点和终点的坐标。…

JavaScript中有哪些不同的数据类型

在 JavaScript 中&#xff0c;数据类型是一种用来表示数据的分类&#xff0c;它决定了我们可以对这个数据类型执行哪些操作。在 JavaScript 中有以下几种不同的数据类型&#xff1a; 基本数据类型 字符串 (String)&#xff1a;表示一组字符&#xff0c;可以使用引号&#xff08…

Pytorch的可视化

1 使用 wandb进行可视化训练过程 本文章将从wandb的安装、wandb的使用、demo的演示进行讲解。 1.1 如何安装wandb&#xff1f; wandb的安装比较简单&#xff0c;在终端中执行如下的命令即可&#xff1a; pip install wandb在安装完成之后&#xff0c;我们需要&#xff0c;去…

华为机考入门python3--(13)牛客13-句子逆序

分类&#xff1a;列表 知识点&#xff1a; 列表逆序&#xff08;和字符串逆序是一样的&#xff09; my_list[::-1] 题目来自【牛客】 def reverse_sentence(sentence): # 将输入的句子分割words sentence.split() # 将单词逆序排列 words words[::-1] # 将单词用空…

DarkSide针对VMware EXSI系统进行加密

前言 最近黑客组织利用DarkSide勒索病毒对Colonial Pipeline 发起勒索攻击&#xff0c;国内外各大安全厂商和安全媒体也都有相关报道&#xff0c;DarkSide勒索软件是从2020年8月出现&#xff0c;并以(RAAS)勒索即服务的商业模式进行运作&#xff0c;此勒索病毒不仅可以部署基于…

【Chrono Engine学习总结】5-sensor-5.1-sensor基础并创建一个lidar

由于Chrono的官方教程在一些细节方面解释的并不清楚&#xff0c;自己做了一些尝试&#xff0c;做学习总结。 1、Sensor模块 Sensor模块是附加模块&#xff0c;需要单独安装。参考&#xff1a;【Chrono Engine学习总结】1-安装配置与程序运行 Sensor Module Tutorial Sensor …

MySQL数据库⑧_索引(概念+理解+操作)

目录 1. 索引的概念和价值 1.1 索引的概念 1.2 索引的价值 2. 磁盘的概念 2.1 磁盘的结构 2.2 操作系统与磁盘交互的基本单位 2.3 MySQL与磁盘交互的基本单位 3. 索引的理解 3.1 主键索引现象和推导 3.2 索引采用的数据结构&#xff1a;B树 3.3 聚簇索引和非聚簇索引…

Java并发基础:DelayQueue全面解析!

内容概要 DelayQueue类专为处理延迟任务设计&#xff0c;它允许开发者将任务与指定的延迟时间关联&#xff0c;并在任务到期时自动处理&#xff0c;从而避免了不必要的轮询和资源浪费&#xff0c;此外&#xff0c;DelayQueue内部基于优先队列实现&#xff0c;确保最先到期的任…