DML数据操纵语言
DML数据操纵语言
目录
- 概述
- 一、插入语句
- (一)方式一
- (二)方式二:
- (三)两种方式的比较
- 二、修改语句
- 三、删除语句
- 概述
- 方式一:delete
- 方式二:truncate语句 【清空语句】
- delete VS truncate 【面试题!!!】
概述
数据操作语言:
插入:insert
修改:update
删除:delete
一、插入语句
(一)方式一
- 语法:
insert into 表名(列名,……) value(值1,……) - 特点:
- 要求值的类型和字段的类型必须一致或兼容
- 字段的个数和顺序不一定与原始表中的字段个数和顺序一致,但必须保证值和字段一一对应
- 假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
①字段和值都省略
②字段不省略,值对应写null - 字段和值的个数必须一致
- 字段名可以省略,此时默认所有列
use girls;
- 插入的值得类型要与列的类型一致或者兼容
insert into beauty(id,name,sex,borndate,phone,photo,boyfriend_id) value(13,'唐艺昕','女','1990-4-23','13853884820',null,2); select * from beauty; - 可以为null的列应该如何插入值(注:不能为null的值必须插入值)
- 方式一:对应列名写null
insert into beauty(id,name,sex,borndate,phone,photo,boyfriend_id) value(14,'金星','女','1980-7-23','13853584826',null,9); - 方式二:列名和null均省略
insert into beauty(id,name,sex,phone) value(15,'娜扎','女','13356789987');
- 方式一:对应列名写null
- 列的顺序可以调换 【一一对应即可】
insert into beauty(name,sex,id,phone) value('蒋欣','女','16','13978894567');select *from beauty; - 列数和值的个数必须一致
insert into beauty(id,name,sex,phone) value(17,'关晓彤','女','13853586857'); - 可以省略列名,默认所有列,而且列的顺序和表中列的顺序是一致的
insert into beauty values(18,'LYH','男',null,'13009991313',null,null);
(二)方式二:
语法:
insert into 表名
set 列名=值,列名=值,……;
insert into beauty set id=19,name='刘涛',phone='18830475643';
(三)两种方式的比较
-
方式一支持插入多行,方式二不支持
insert into beauty value(23,'唐艺昕1','女','1990-4-23','13853884820',null,2),(24,'唐艺昕2','女','1990-4-23','13853884820',null,2),(25,'唐艺昕3','女','1990-4-23','13853884820',null,2);select *from beauty; -
方式一支持子查询,方式二不支持
insert into beauty(id,name,phone) select '20','李一桐','13456243455';
二、修改语句
- 修改单表的记录
语法:
update 表名
set 列=新值,列=新值,……
where 筛选条件; - 修改多表的记录 【补充】
语法:- sql92语法:
update 表1 别名1,表2,别名2
set 列=值,……
where 连接条件 and 筛选条件; - sql99语法:
update 表1 别名1
inner|left|right| join 表2 别名2
on 连接条件
set 列=值,……
where 筛选条件;
- sql92语法:
- 修改单表的记录
#案例1:修改beauty表中姓唐的女神的电话为13899888899 set sql_safe_updates=0; update beauty set phone='13899888899' where name like '唐%'; select * from beauty; #案例2:修改boys表中的id=2的名称为张飞,userCP=10 select * from boys; update boys set boyName='张飞',userCP=10 where id=2; - 修改多表的记录
#案例1:修改张无忌的女朋友的手机号为114 update boys bo inner join beauty b on b.boyfriend_id = bo.idset b.phone='114' where bo.boyName='张无忌'; update boys bo,beauty b set b.phone='114' where b.boyfriend_id=bo.id and bo.boyName='张无忌'; select * from beauty; #案例2:修改没有男朋友的女神的的男朋友编号都改为2 update beauty b left join boys bo on b.boyfriend_id=bo.id set boyfriend_id=2 where bo.id is null;
三、删除语句
以行为单位删除
概述
方式一:delete
语法:
1、单表的删除
delete from 表名 where 筛选条件
2、多表的删除(级联删除)
sql92语法
delete 别名1 【,别名2 】from 表1 别名1,表2 别名2 where 连接条件 and 筛选条件
sql99语法
delete 别名1 【,别名2 】from 表1 别名1 inner|left|right join 表2 别名2 on 连接条件 where 筛选条件
方式二:truncate
语法:
truncate table 表名;
方式一:delete
1、单表的删除
#案例1:删除手机号以9结尾的女神的信息
use girls;
delete from beauty where phone like '%9';
select * from beauty;
2、多表的删除
#案例2:删除张无忌的女朋友的信息
delete b from beauty b inner join boys bo on b.boyfriend_id=bo.id where bo.boyname='张无忌';
#案例3:删除黄晓明的信息以及他女朋友的信息
delete b,bo from beauty b inner join boys bo on b.boyfriend_id = bo.id where bo.boyname='黄晓明';
select * from beauty;
select * from boys;
方式二:truncate语句 【清空语句】
truncate不能和where搭配,当truncate用于删除整张表时,他的效率比delete要高
delete VS truncate 【面试题!!!】
- delete可以加where条件,但truncate不能
- truncate删除效率更高一些
- 假如要删除的表中自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始 - truncate删除没有返回值,delete删除有返回值(能返回受影响的行数)
- truncate删除不能回滚,delete删除可以回滚
- 使用delete进行删除
select * from boys; delete from boys; insert into boys(boyname,userCP) values('张飞',100),('刘备',140),('关云长',120); - 【补充】delete可以搭配limit使用
语法:delete from 表名 【where 筛选条件】 【limit 条目数】
案例use girls; select * from beauty; delete from beauty limit 1;#beauty表中第一条数据被删除 delete from beauty where boyfriend_id = 9 limit 1;#虽然符合筛选条件的记录有多个但是只删除了第一条。
相关文章:
DML数据操纵语言
DML数据操纵语言 目录概述一、插入语句(一)方式一(二)方式二:(三)两种方式的比较二、修改语句三、删除语句概述方式一:delete方式二:truncate语句 【清空语句】delete VS truncate 【面试题!!!】概述 数据…...
【Hello Linux】Linux工具介绍 (gcc/g++ gdb)
作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍Linux的常用工具gcc/g 以及gbd Linux工具介绍gcc / ggcc / g的作用为什么语言要经过这四步才能变为可执行指令gcc / g语法预处理编…...
TeamFiltration:一款针对O365 AAD账号安全的测试框架
关于TeamFiltration TeamFiltration是一款针对O365 AAD账号安全的跨平台安全测试框架,在该工具的帮助下,广大研究人员可以轻松对O365 AAD账号进行枚举、喷射、过滤和后门植入等操作。TeamFiltering与CrackMapExec非常相似,它可以创建并维护一…...
你是真的“C”——Visual Studio 2022(VS2022)编译器 -—实用调试技巧
你是真的“C”——Visual Studio 2022(VS2022)编译器 -—实用调试技巧😎前言🙌1. 什么是bug?🙌2. 调试是什么?有多重要?🙌2.1 调试是什么?2.2 调试的基本步骤…...
数据结构与算法:7种必须会的排序以及3种非基于比较排序
1.什么是排序 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序…...
数据库用户数
Oracle的用户数 oracle软件内部并没对用户数做限制,买5个用户数,指你买了5个user licences,从法律上只能连5个session,超过5个的连接都是非法的。oracle不给你技术上的限制,可是给你法律上的限制。 一般来讲…...
nginx如何用html显示多个图片并加入播放链接
需求背景通过nginx来做个点播服务,ffmpeg截取视频中的某一帧作为视频的封面,前端页面展示这个封面,,并链接到对应的视频播放链接,加载播放器进行播放简单介绍一下ffmpeg截取视频中的某一帧的方式截取视频的第一帧&…...
【蓝桥杯集训·每日一题】Acwing 3729. 改变数组元素
文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴一维差分区间合并一、题目 1、原题链接 3729. 改变数组元素 2、题目描述 给定一个空数组 V 和一个整数数组 a1,a2,…,an。 现在要对数组 V 进行 n 次操作。 第 i 次操作的…...
springmvc执行流程
文章目录前言一、springMVC请求执行流程二、组件说明以下组件通常使用框架提供实现:总结前言 本篇文章是对springmvc的补充 接上篇文章springmvc入门https://blog.csdn.net/l_zl2021/article/details/127120873 一、springMVC请求执行流程 1.用户发送请求至前端控制…...
SpringMVC(2)
一)接受到JSON格式的数据:使用RequestBody来进行接收 ResponseBody表示的是返回一个非页面的数据 RequestBody表示的是后端要接受JSON格式的数据 一)接收单个格式的JSON格式的数据,我们使用一个对象来进行接收 1)我们之前接受GET请求中的queryString中的参数的时候&…...
Jackson序列化json时null转成空串或空对象
在项目中可能会遇到需要将null转"",可以通过以下方法解决。一:添加JacksonConfig 配置import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.Objec…...
如何将Python的上级目录的文件导入?【from.import】
假如有如下目录: -python ----file1 ---------file1_1 ------------------pfile1_1.py ---------pfile1.py ----file2 ---------pfile2.py ----pfile.py ----data.py 在pfile1_1.py中想要将pfile.py 导入怎么办? 首先将其上级目录添加到系统目…...
Java实现碧蓝航线连续作战
目录一.实现功能二.主要思路三.代码实现四.用exe4j生成.exe程序五.最终效果六.代码开源一.实现功能 主线图作战结束到结算页自动点击再次前往 二.主要思路 判断是否进入了结算界面:记录结算界面某个像素点的RGB值,每隔3秒对这个像素点进行比对 移动鼠标…...
Docker笔记
文章目录1.docker为什么会出现2.docker是什么3.传统虚拟机和容器的对比3.1虚拟机3.2容器虚拟化技术3.3两者对比3.4为什么Docker会比VM虚拟机快?4.docker能干嘛6.docker的应用场景7.docker三要素一:镜像(Image)二:容器&…...
情人节使用AI TOOL来创建一个甜言蜜语的女伴
一、首先使用chatgpt生成一段情侣间的对话,需要反复几次,达到满意的程度,然后将女方的话归在一起。 这是一个情侣私下谈话的场景,女方表示对男朋友精心准备的情人节安排和礼物表示很满意 二、 打开网站:https://lexic…...
G-GhostNet(IJCV 2022)原理与代码解析
paper:GhostNets on Heterogeneous Devices via Cheap Operationscode:https://github.com/huawei-noah/Efficient-AI-Backbones/blob/master/g_ghost_pytorch/g_ghost_regnet.py前言本文提出了两种轻量网路,用于CPU端的C-GhostNet和用于GPU端…...
Ethercat系列(5)TWcat3激活过程的协议分析(续1)
顺序写系统时间偏移从-》主顺序写时间延迟主-》从从-》主顺序写分布式时钟启动主-》从从-》主读多重写系统时间主-》从从-》主顺序写应用层控制主-》从从-》主顺序读错误计数器主-》从从-》主顺序读应用层状态主-》从从-》主顺序读应用层,广播写错误计数器主-》从从…...
QT入门Input Widgets之QScrollBar
目录 一、界面布局功能 1、界面位置介绍 2、控件界面基本属性 2.1 horizontalScrollBar界面属性 3、样式设置 此文为作者原创,创作不易,转载请标明出处! 一、界面布局功能 1、界面位置介绍 QScrollBar主要分为两种,一种垂直…...
【ML】基于机器学习的心脏病预测研究(附代码和数据集,多层感知机模型)
写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大努力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 之前创作过心脏病预测研究文章如下: 【ML】基于机器学习的心脏病预测研究(附代码和数据集,逻辑回归模型) 【ML】基于机…...
工序排序问题--约翰逊法精讲
什么是约翰逊法?约翰逊法是作业排序中的一种排序方法。选出最短加工时间i*,若最短加工时间有多个,任选1个.若i*出现在机床1,它对应的工件先安排加工,否则放在最后安排,安排后划去该工件,重复上两个步骤,直…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
