MySQL --- DML

news2024/11/24 20:46:46

 接下来学习第二个部分:根据页面原型以及需求进行相关功能的开发,进而完成数据库的操作。

学习数据库的DML操作

3. 数据库操作-DML-insert,update,delete

DML

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。DML语句主要来完成数据库表结构当中数据的增、删、改操作。

  • 添加数据(INSERT):就是往表结构当中来插入数据

  • 修改数据(UPDATE):来修改表中的数据

  • 删除数据(DELETE):可以来删除表中的记录

3.1 MySQL-DML-添加数据insert   DML(INSERT)增加(insert)  

在员工管理的页面原型当中,页面这一块展示了一个表格,表格的上方有一个按钮是新增员工,当我们点击这个按钮之后,就会打开一个form表单,在这个表单当中,我们就可以录入员工的相关信息,然后一点击保存按钮,就会将这个表单的数据提交到服务端,然后服务端再来操作数据库,最终就会将表单当中的这个数据添加到数据库当中,此时我们就需要通过insert语句来添加数据到表结构当中。

insert语句添加数据的基础语法:通过insert语句来添加数据到表结构当中

  • 向指定字段添加数据:insert into之后跟上表名,表名之后跟上一对小括号里面写上我们要为                                      哪些字段来添加数据,多个字段之间使用逗号分隔,然后在values后                                        面需要指定每一个字段的值是多少,值1对应的就是字段1,值2对应的                                      就是字段2,前面的字段和后面的值是一一对应的。
insert into 表名 (字段名1, 字段名2) values (值1, 值2);
  • 全部字段添加数据:如果我们要为全部的字段添加数据,就可以将字段列表直接省略掉,在                                     values后面就来指定这张表当中所有字段的字段值。
insert into 表名 values (值1, 值2, ...);

前面这两条SQL语句,每一次操作都是添加一条数据,如果我们要批量操作,就可以使用后面这两条SQL语句。如果我们要批量操作,需要在每一组值之间使用逗号来分隔。 

  • 批量添加数据(指定字段)
insert into 表名 (字段名1, 字段名2) values (值1, 值2), (值1, 值2);
  • 批量添加数据(全部字段)
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);

 在SQL语句当中,字符串以及日期时间类型都需要使用引号引起来,单引号、双引号都可以。 

-- DML:数据操作语言
-- DML:插入数据 - insert
-- 1.为 tb_emp 表的username,name,gender 字段插入值
-- 直接运行将会报错,因为我们在前面设计emp这张表的时候,还添加了两个基础字段:create_time和update_time
-- 分别是创建/插入时间和修改/更新时间,而且这两个字段还是非空字段
-- 所以我们在插入数据的时候就需要给这两个字段来设置一个值,就是当前系统时间
-- 而我们以后在每一次更新的时候都需要将update_time更新为当前系统时间
-- 在SQL语句当中怎么拿到当前系统时间呢?
-- 在MySQL当中我们只需要调用now()函数就可以来获取当前系统时间
-- insert into tb_emp(username,name,gender) values ('wuji','张无忌',1);
insert into tb_emp(username,name,gender,create_time,update_time) values('wuji','张无忌',1,now(),now());


-- 2.为 tb_emp 表的 所有字段插入值
-- id由于是主键自增的,所以我们不需要给id赋值,直接传递一个null就可以了
insert into tb_emp(id, username, password, name, gender, image, job, entrydate, create_time, update_time)
               values(null,'zhouzhiruo','123','周芷若',2,'1.jpg',1,'2010-01-01',now(),now());

insert into tb_emp values(null,'zhouzhiruo2','123','周芷若',2,'1.jpg',1,'2010-01-01',now(),now());

-- 3.批量为 tb_emp 表的 username,name,gender 字段插入数据
insert into tb_emp(username,name,gender,create_time,update_time) values('person1','人一',1,now(),now()),
                                                                        ('person2','人二',2,now(),now());

图形化操作:双击tb_emp表,点击刷新面板,查看数据:

Insert操作的注意事项:

  1. 插入数据时,指定的字段(列表的)顺序需要与值的顺序是一一对应的。
  2. 字符串和日期型数据应该包含在引号中。
  3. 插入的数据大小,应该在字段的规定范围内。

3.2 MySQL-DML-修改 / 更新数据update   DML(UPDATE) 修改(update)

在学习更新数据的语法之前,先来看一下页面原型,看一下什么时候会用到update这一类的更新语句来更新数据(update语句的业务场景)。 

打开页面原型之后可以看到,列表所展示的数据之后有一个操作叫编辑,当我们点击这个编辑按钮之后,首先它要做的事情就是先根据id将这条数据查询出来,然后在页面当中先将其展示出来,这一步操作我们叫数据回显先将数据先展示出来,展示出来之后再让用户去做选择我们到底要修改哪项数据,比如我要修改职位,将职位修改完成之后,我们再点保存的时候,它执行的就是一个修改操作,要将当前用户的职位信息修改了。

知识点补充:

点击编辑按钮执行的操作是数据回显操作吗?

  • 不一定。点击编辑按钮执行的操作不一定是数据回显操作。
  • 点击编辑按钮执行的操作可能包括跳转到编辑页面或弹出编辑窗口,而数据回显是将原来已有的数据展示在编辑页面或弹窗中以供修改。
  • 一些编辑操作可能不需要数据回显,例如:在新建数据时点击编辑按钮,此时还没有原有数据需要展示,但通常情况下,在编辑操作中会将原有数据回显以便用户更方便地进行修改。

update语法:

  • update之后要跟上一个表名来指定我们更新的是哪一张表,然后set之后就要来指定我们要更新哪些字段,字段名1等于值1,字段名2等于值2,这代表我们要把字段1更新为值1,然后把字段2更新为值2,多个字段之间使用逗号分隔如果有更新条件,在where之后加上更新条件,方括号里面的条件是可选的。
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [where 条件] ;

-- DML:更新数据 - update
-- 1.将 tb_emp 表的ID为1员工 姓名name字段更新为'张三'
-- update tb_emp set name = '张三' where id = 1;
-- 还有一个隐含的字段我们并没有更新,那就是update_time,我们每一次更新的时候都需要更新一下update_time,将其更新为当前时间
-- 此时update_time这个字段记录的就是最后修改时间,多个字段之间使用逗号分隔
update tb_emp set name = '张三',update_time = now() where id = 1;


-- 2.将 tb_emp 表的所有员工的入职日期更新为 '2010-01-01'
-- 每一次更新都需要将update_time更新为当前时间
-- 既然是所有员工就代表整张表的数据都要更新,所以这个时候就没有where条件了
update tb_emp set entrydate = '2010-01-01',update_time = now();

  • 没有加where语句就代表要更新整张表的所有数据。
  • 确认执行点击这个Execute,点击完毕之后这条SQL语句就执行了。
  • 执行完毕之后打开该表点击刷新按钮就可以看到更新完成之后的数据了。

注意事项:

  1. 修改语句的条件可以有,也可以没有,如果没有条件,则会更新/修改整张表的所有数据。
  2. 在修改数据时,一般需要同时修改公共字段update_time,将其修改为当前操作时间。

3.3 MySQL-DML-删除数据delete  DML(DELETE)删除(delete)

DML当中最后一种操作 --- delete删除操作,首先先来了解一下delete删除操作的业务场景:

在页面原型当中我们会看到,在表格之后有一项操作就是删除,当我们点击这个删除按钮之后,此时就会往服务端来发送请求,来指定我们要删除哪一条数据,服务端接收到请求之后就会来操作数据库,最终通过delete语句来讲数据库当中的数据删除掉,这就是delete语句它的一个业务场景。

 delete语法:

  • delete from之后跟上表名,我们要从哪一张表当中删除数据,在where之后跟上条件,这个条件也是可选的。
delete from 表名  [where  条件] ;

-- DML:删除数据 - delete
-- 1.删除 tb_emp 表中 ID为1的员工
delete from tb_emp where id = 1;

-- 2.删除 tb_emp 表中的所有员工
delete from tb_emp;

注意事项:

  • DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数      据。
  • ​DELETE 删除语句不能删除某一个字段的值(如果我们要删除某一个字段的值,可以使用UPDATE语句,将该字段值置为NULL即可)。
  • ​当进行删除全部数据操作时,会提示询问是否确认删除所有数据,直接点击Execute即  可。 

 DML语句小结:

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

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

相关文章

176_工具_Power BI 实用工具 pbi-utils 更新至 v1.0.3.1

176_工具_Power BI 实用工具 pbi-utils 更新至 v1.0.3.1 pbi-utils 更新至:v1.0.3.1, 从 v1.0.0.0 到 v1.0.3.1 更新了 8 次。 文档地址:https://jiaopengzi.com/2880.html 主要功能: 快速设置 Power BI 模板,实现高复用。设计…

【大数据基础】Spark+Kafka构建实时分析Dashboard

https://dblab.xmu.edu.cn/post/spark-kafka-dashboard/ https://dblab.xmu.edu.cn/post/8116/ 实验环境准备 Kafka安装 访问Kafka官方下载页面,下载稳定版本0.10.1.0的kafka.此安装包内已经附带zookeeper,不需要额外安装zookeeper.按顺序执行如下步骤: cd ~/下载 sudo tar …

《Markdown编辑器》的使用

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Simulink 自动代码生成电机控制:方波高频注入仿真到代码生成开发板演示

目录 前言 方波高频注入仿真 生成代码开发板运行 总结 前言 最近换了一个小电机,于是尝试了一下方波高频注入的仿真到代码生成的实验,正弦波注入的方式已经实现 STM32 Simulink 自动代码生成电机控制——脉振高频注入_高频注入代码_卡洛斯伊的博客-…

【Linux】进程信号(下)

文章目录 1.信号处理相关问题内核态与用户态概念的理解为什么要有 用户态和内核态CR3寄存器的使用信号处理的整体过程 1.信号处理相关问题 信号处理,不是可以立即处理的,而是在合适的时候 不懂点击: 信号的产生第三点 什么时候是合适的时候?…

Android Studio下载及安装和Gradle的配置

文章目录 下载安装双击打开exe文件 修改Sdk的位置创建项目修改Gradle的位置 下载 下载地址:官方下载地址 打开后往下拉,直到最后的I agree to the terms. 这里选择的android studio版本是:2021.2.1.16,也可以根据自己的需要下载…

语义分割总结

文章目录 0. 前言1. 数据集2. 经典网络2.1 FCN2.2 U-Net2.3 DeepLab2.4 PSPNet2.5 SegNet2.6 CCNet2.7 SegFormer 3. 损失函数4. 评价指标5. 最新进展(2023.4) Segment Anything 0. 前言 语义分割是一种计算机视觉领域的图像分割技术,旨在将…

校内赛WP

Web题目镜像如下: docker pull lauaiwin/hzuctf-flaskrce:latest docker pull lauaiwin/hzuctf-ezphp:latest docker pull lauaiwin/hzuctf-babysql:latest docker pull lauaiwin/hzuctf-sign:latest docker pull lauaiwin/hzuctf-ezupload:latestWeb-签到 通过loc…

sentinel 随笔 2-降级处理

0. 像喝点东西,但不知道喝什么 先来段源码,看一下 我们在dashboard 录入的降级规则,都映射到哪些字段上 package com.alibaba.csp.sentinel.slots.block.degrade;public class DegradeRule extends AbstractRule {public DegradeRule(String…

Spring的第十二阶段(03):Spring实现AOP的简单使用

1、获取拦截方法的返回值和抛的异常信息 获取方法返回的值分为两个步骤: 1、在返回值通知的方法中,追加一个参数 Object result 2、然后在AfterReturning注解中添加参数returning“参数名” 获取方法抛出的异常分为两个步骤: 1、在异常通…

Python入门(五)列表(二)

列表(二) 1.组织列表1.1 使用方法sort()对列表永久排序1.2 使用函数sorted()对列表临时排序1.3 倒着打印列表1.4 确定列表的长度1.5 使用列表时避免索引错误 2.操作列表2.1 遍历整个列表2.1.1 for循环2.1.2 在for循环中执行更多操作2.1.3 在for循环结束后…

用C语言编写,计算并输出下列多项式值 s=1+1/(1+2)+1/(1+2+3)+ ..1/(1+2+3...+50)

C/C语言程序设计题目 用C语言编写&#xff0c;计算并输出下列多项式值 s11/(12)1/(123) …1/(123…50) C语言设计编程代码 #include <stdio.h>int main() {double s 0; // 初始化s的值为0int n 0; // 初始化n的值为0for (int i 1; i < 50; i) {n i; // 累加n的…

scatterlist

在内核驱动程序的很多代码中&#xff0c;都能够看到类似sgdma的内容&#xff0c;sgdma全称为Scatter/Gather DMA(散列/收集 DMA)&#xff0c;内核中抽象了scatterlist和sg table用来描述和管理这种需要做散列和收集的DMA缓冲区。在内核中设计scatterlist&#xff0c;主要出于两…

BDCC - Lambda VS Kappa

文章目录 概述区别Lambda架构:Kappa架构:总结 适用场景:案例:小结 概述 Lambda架构和Kappa架构都是用于处理大数据的架构模式。 Lambda架构使用了批处理和流处理两种不同的处理方式来处理数据。数据首先通过流处理层进行实时处理&#xff0c;然后再通过批处理层进行离线处理&…

开源C#代码生成器,SmartSoftHelp 开发辅助工具

开源代码生成器&#xff0c;支持自定义生成代码&#xff0c;开源生成代码&#xff0c;自己编写生成格式&#xff0c;最方便的代码生成器 下载地址&#xff1a; 百度网盘 请输入提取码

《时间从来不语,却回答了所有问题》笔记三

目录 感悟 经典摘录 假若我再上一次大学 不完满才是人生 走运与倒霉 毁誉 我的座右铭 二月兰 观天池 火车上观日出 感悟 人这个万物之灵却偏偏有了感情&#xff0c;有了感情就有了悲欢。自古及今&#xff0c;海内海外&#xff0c;一个百分之百完满的人生是没有的&…

《Java虚拟机学习》JVM虚拟机是如何执行方法

1. 重载与重写方法 重载 重载 &#xff1a;同一个类中&#xff0c;方法名相同&#xff0c;形参列表不用&#xff0c;与返回值无关 对于重载方法的执行&#xff0c;JVM遵循下面的三条规则&#xff1a; 在不考虑对基本类型自动装拆箱&#xff08;auto-boxing&#xff0c;auto-…

图嵌入表示学习—Graph Embeddings

Embedding Entire Graphs 一、图嵌入向量基本概念 与Node Embeddings不同&#xff0c;Graph Embeddings是对整个图或子图进行编码而忽略其中的节点。应用场景包括异常检测或分子有毒检测。 二、对Node Embeddings求和或求和后平均 如图&#xff0c;首先对图/子图中的节点进行…

shell与shell script 学习总结

文章目录 shell与shell script 学习总结vivim可视化区块多文件编辑多窗口功能vim环境设置与记录中文编码问题语系编码转换 Shell的变量功能变量的使用与设置echo(变量的使用)变量设置的规则 环境变量的功能env(观察环境变量)set(观察所有变量)unset(取消变量) locale(语系变量)…