MySQL数据操作语言——插入语句、修改语句和删除语句

本文详细介绍了MySQL数据操作语言,包括插入语句的两种方式及其比较,修改语句的单表与多表记录更新,以及删除语句的delete和truncate用法。内容覆盖了各种操作的特点、语法、示例以及使用注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据操作语言 (DML:Data Manipulate Language )包括:
插入:insert
修改:update
删除:delete

一、插入语句

方式一:(经典插入)

1. 语法:
          insert into 表名 ( 列名,…)
          values ( 值1,…) ;

# 案例 #:
在jobs表中插入job_id为TA_REP ,job_title为Clerk,min_salary为6000 ,max_salary为18000.
在这里插入图片描述
2. 特点:
         ① 插入的值的类型要与列的类型一致或兼容
         ② 不可以为null的列必须插入值;
              可以为空的列插入值,可以将列名和值都省略;也可以写好列名,值用null填充
         ③ 列的顺序可以调换
         ④ 列数和值的个数必须一致
         ⑤ 列名可以省略,但默认所有列,并且列的顺序和表中列的顺序一致(如下案例)
在这里插入图片描述

方式二:

语法:
         insert into 表名
         set 列名=值,列名=值,……

# 案例 #:
在jobs表中插入job_ id为AB_MAN,job_ title为 Manager ,min_ salary为8000, max_ salary为20000.

在这里插入图片描述

两种方式的比较:

         ① 方式一支持插入多行,方式二不支持
         ② 方式一支持子查询,方式二不支持

二、修改语句

1. 修改单表的记录

语法:
         update 表名
         set 列=新值,列=新值,……
       (要求值的类型和列要一致或者兼容,字符和日期型加单引号,数值型不用加,修改多列,中间用逗号隔开)
        【where 筛选条件】;

# 案例 #
修改部门表中的Adm的location_id为1600

首先, 查询departments表中的所有信息(其中Adm的location_id为1700)
在这里插入图片描述
其次,修改部门表中的Adm的location_id为1600
在这里插入图片描述

2. 修改多表的记录【补充】

语法:

sql92语法
                       update 表1 别名,表2 别名2
                       set 列=值,……
                       where 连接条件
                       and 筛选条件;
sql99语法
                       update 表1 别名
                       inner/left/right join 表2 别名
                       on 连接条件
                       set 列=值,……
                       where 筛选条件;

三、删除语句

方式一:delete语句

1. 单表的删除:

语法:
           delete from 表名 【where 筛选条件】

      ① 不加筛选条件,表中的数据全被删除;
      ② 加筛选条件是删除满足条件的部分行
      ③ 删除是删除整行;

#案例 #
删除编号以2开头的location_id信息
在这里插入图片描述
特别注意:(上述案例报错原因及解决方案如下:)

问题:        删除有外键关联的数据或者表的时候,mysql出现报错
解决方法: 先关闭外键约束,执行删除操作,然后再开启外键约束
在这里插入图片描述

2. 多表的删除:【补充】

sql92语法:
                   delete 表1的别名,【表2的别名】
                   from 表1 别名1,表2 别名2
                   where 连接条件
                   and 筛选条件;

sql99语法:
                   delete 表1的别名,【表2的别名】
                   from 表1 别名
                   inner/left/right join 表2别名on连接条件(相当于两个表连接出一个新的结果集,数据源)
                   where 筛选条件;

方式二:truncate语句

语法:
          truncate table 表名;

        ① 整个表中的数据全部删除(也称清空数据);
        ② 不能加where条件

【PS】巧记:(truncate语句)一删全删!

# 两种方式的区别 #:
        1. truncate不能加where条件,而delete可以加where条件.
        2. truncate 删除效率更高,一删全删.
        3. 假如要删除的表中有自增长列, 如果用delete 删除后,再插入数据,自增长列的值从断点开始;
            而truncate 删除后,再插入数据,自增长列的值从1开始.
        4. truncate删除没有返回值,delete删除有返回值.
        5. truncate删除不能回滚,delete删除可以回滚.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值