MySQL-DML语言-数据操纵语言-insert-update-delete-truncate

DML概述

介绍
主要包括 插入insert、更新update、删除delete

语法总结

insert into 表名(列1,列2....values (值1,值2.....update1 别名12 别名2
set= 值, 列 =...
on 连接条件
where 筛选条件;

delete 别名1 ,别名2
from1 别名1,表2 别名2
on 连接条件
where 筛选条件;

插入语句insert into

方式1:经典插入

概述

语法

insert into 表名(列名,......values(值1......
注意事项

插入的值的类型要与列的类型一致或兼容。
在这里插入图片描述兼容性说明:
假如字段是int类型,但是输入的是‘123’这样是不会报错的,原因对于这个字符型可以隐式的转换为数值。
假如拿到的是‘join’,则不可行。

不可以为null的列必须插入值,可以为null的列可以通过如下两种方式插入值
在这里插入图片描述
字段的个数和顺序不一定与原始表中的字段个数和顺序一致,但是插入values要与列字段顺序一一对应
在这里插入图片描述
列数和值的个数必须一致,否则会报错
在这里插入图片描述
可以省略字段名,默认插入所有列,而且列的顺序和表中字段的顺序一致
在这里插入图片描述

方式2

概述

语法

insert into 表名
set 列名 = 值 , 列名 =......
案例

在这里插入图片描述

方式1与方式2 区别

方式1支持多行插入,方式2不支持

# 方式1:
insert into 表名 (列名1,列名2.....values (1,值2......),
(值1,值2.......;

案例:
在这里插入图片描述
方式1支持子查询,方式2不支持

insert into 表名(字段1,字段2...)
查询语句;

案例
在这里插入图片描述

修改语句update

概述

  • 修改单表的记录

语法

update 表名
set 字段 = 新值,字段 = 新值....
[where 筛选条件];
  • 修改多表记录

语法sql92

update1 别名,表2 别名
set= 值, 列 =...
where 连接条件
and 筛选条件;

语法sql99

update1 别名
[inner | left | right ] join2 别名
on 连接条件
where 筛选条件;

案例

单表修改
在这里插入图片描述

多表修改
在这里插入图片描述

删除语句delete 和 truncate

方式1:delete

概述
  • 单表删除

语法

delete from 表名 
where 筛选条件
[limit 条目数];
  • 多表的删除

语法sql92

delete 别名1,别名2
from1 别名1,表2 别名2
where 连接条件
and 筛选条件;

语法sql99

delete 别名1.别名2
from1 别名1
[inner | left |right ] join2 别名2
on 连接条件
where 筛选条件;

注意
delete后面的别名,取决于要删除的是哪个表的信息。

案例

在这里插入图片描述

方式2:truncate

语法

truncate table 表名;

作用
主要用于删除整个表的信息

delete 和 truncate区别

区别deletetruncate
where条件可加不可加
效率略差较高
删除自增长列删除再插入,自增长列的值从断点开始删除再插入数据,自增长列从头开始(即1)
删除内容可以删除部分记录删除全部记录,但是不删除表
扩展drop 删除整张表
返回值有返回值
返回删除的行数
没有返回值
回滚可以回滚不可以回滚
高水线不影响高水线会将高水线复位

扩展2022/7/31
所有的segments段(segment作为表的一个同义词) 都有一个在段内 容纳数据的上限,这个就是高水线(High Water Mark)。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。
HWM通常增长的幅度为一次5个数据块,原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值。
打个比方,HWM很像一个水库的历史最高水位,当前水库没有水,不能说明该水库的历史最高水位线为0;
但是如果我们在表上使用了truncate命令,则该表的HWM会被重新置为0。

案例

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值