• MySQL-DML语言-数据库操作语言-


    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 筛选条件;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    插入语句insert into

    方式1:经典插入

    概述

    语法

    insert into 表名(列名,......values(值1......
    • 1
    • 2

    注意事项

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

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

    方式2

    概述

    语法

    insert into 表名
    set 列名 = 值 , 列名 =......
    
    • 1
    • 2

    案例

    在这里插入图片描述

    方式1与方式2 区别

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

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

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

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

    案例
    在这里插入图片描述

    修改语句update

    概述

    • 修改单表的记录

    语法

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

    语法sql92

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

    语法sql99

    update1 别名
    [inner | left | right ] join2 别名
    on 连接条件
    where 筛选条件;
    
    • 1
    • 2
    • 3
    • 4

    案例

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

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

    删除语句delete 和 truncate

    方式1:delete

    概述

    • 单表删除

    语法

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

    语法sql92

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

    语法sql99

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

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

    案例

    在这里插入图片描述

    方式2:truncate

    语法

    truncate table 表名;
    
    • 1

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

    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。

    案例

    在这里插入图片描述

  • 相关阅读:
    入门力扣自学笔记202 C++ (题目编号:808)
    【JavaEE网络】TCP/IP协议:细节与应用
    晶体三极管型号及结构
    【无标题】
    Web-监听器
    Huggingface Transformers各类库介绍(Tokenizer、Pipeline)
    【02】Spring源码-手写篇-手写DI实现
    平面点云,边界提取
    反无人机系统
    禁忌搜索算法TS求解TSP问题
  • 原文地址:https://blog.csdn.net/LXMXHJ/article/details/126082566