MySQL学习笔记——DML语言(数据操作语言)(增、删、改)

本文详细介绍了SQL中的插入(insert)操作,包括经典插入和不常用方式的语法及特点。更新(update)单表和多表的记录语法及案例,以及删除(delete)操作,包括单表删除、多表删除的SQL92和SQL99语法,并对比了delete与truncate的区别。内容涵盖了一次性插入多行、子查询支持、条件筛选等关键知识点。
摘要由CSDN通过智能技术生成

插入(insert)

方式一(经典插入)

语法

insert into 表名(列名,...) values(1,...);

特点

  • beauty表的字段
    在这里插入图片描述

  • 插入的类型要与列的类型一致或兼容

    • 兼容指的是两个数据类型之间可以互相转换,就比如从网页获取到的整数类型都是以字符的方式获取的,比如123,获取到的就是’123’。但是字符类型的’123’可以转换为整数类型,这就叫可以兼容。但如果获取到的信息为’john’,这就没法转换成整数类型,即不兼容。
      在这里插入图片描述
  • 不可以为null的列必须插入值,可以为null的列(nullable)如果不想插入值,如何插入

    • 方式一:插入的值直接填null
      在这里插入图片描述
    • 方式二:插入的字段和值都不填写(如果预先为字段设置了默认值,会填入默认值,否则会填入null)
      在这里插入图片描述
  • 列的顺序可以调换,但是需要值和字段一一对应
    在这里插入图片描述

  • 列数和值的个数必须一致,否则会报错
    在这里插入图片描述

  • 可以省略列名,默认所有列,而且列的顺序表中列的顺序是一致的,如果遇到不想插入且可以为null的字段,不能省略,只能填null
    在这里插入图片描述

方式二(不常用)

语法

insert into 表名
set 列名1=1, 列名2=2, ...
  • 案例
    在这里插入图片描述

两种方式对比

  • 方式一支持一次性插入多行,方式二不支持
    在这里插入图片描述
  • 方式一支持子查询,方式二不支持
    在这里插入图片描述
  • 一般都使用方式一

修改(update)

修改单表的记录(重点掌握)

语法

update 表名
set1=新值,2=新值, ...
where 筛选条件

案例

  • 修改beauty表中姓唐的女神的电话为13899888899
    在这里插入图片描述
  • 修改boys表中的id号为2的名称为张飞,魅力值为20
    在这里插入图片描述

修改多表的记录(不常用)

语法

  • SQL92语法:
update1 别名,2 别名
set=, ...
where 连接条件
and 筛选条件;
  • SQL99语法:
update1 别名
连接类型 join2 别名
on 连接条件
set=, ...
where 筛选条件;

案例

  • 修改张无忌女朋友的的手机号为114
    在这里插入图片描述
  • 修改没有男朋友的女神的男朋友编号为2号
    在这里插入图片描述

删除(delete)

方式一(delete)

单表的删除

  • 语法:
delete from 表名 where 筛选条件
  • 删除手机号以9结尾的女神信息
    在这里插入图片描述

多表的删除

  • SQL92语法
delete 表的别名	#删除哪个表,就写哪个表的别名,如果要删除多个表,就都写上
from1 别名,2 别名
where 连接条件
on 筛选条件;
  • SQL99语法
delete 表的别名	#删除哪个表,就写哪个表的别名,如果要删除多个表,就都写上
from1 别名
连接类型 join2 别名
on 连接条件
where 筛选条件;
  • 删除张无忌的女朋友的信息
    在这里插入图片描述
  • 删除黄晓明的信息以及他女朋友的信息
    在这里插入图片描述

方式二(truncate)

  • 直接删除表中所有信息,即直接清空表
  • 删除boys表中所有信息
    在这里插入图片描述

两种方法对比(面试题)

  • delete可以添加where条件,而truncate不能
  • truncate删除,效率略高一些
  • 假如要删除的表中有自增长列,如果使用delete删除后(这里指的是将表中内容全部删除),再插入数据,自增长列的值从断点开始,而truncate删除后,在插入数据,自增长列的值从1开始
  • truncate删除没有返回值(执行后不会显示几行受影响,一律显示0行受影响),而delete删除有返回值
  • truncate删除不能回滚,delete删除可以回滚
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值