zoukankan      html  css  js  c++  java
  • 第三节:删除语句

    一、删除语句

      1、方式一

        (1)单表的删除

    delete from 表名 【where 筛选条件】【limit条目数】
    

          如果没有指定 where 子句,MySQL 表中的所有记录将被删除,可以在 where 子句中指定任何条件。

        (2)多表的删除【补充】

          SQL92 语法:

    delete 表1的别名, 表2的别名
    from 表1 别名, 表2 别名
    where 连接条件
    and 筛选条件
    

      

          SQL99 语法:

    delete 表1的别名, 表2的别名
    from 表1 别名 
    inner | left | right join 表2 别名
    on 连接条件
    where 筛选条件
    

      

      2、方式二

        语法格式:

    truncate table 表名;

    二、案例

      1、delete 案例

        (1)单表的删除:删除手机号以 9 结尾的女生信息

    DELETE FROM beauty WHERE phone LIKE '%9';
    

      

        (2)多表的删除:删除张无忌的女朋友的信息

    SELECT b.*
    FROM beauty b
    INNER JOIN boys bo
    ON b.`boyfriend_id` = bo.`id`
    WHERE bo.`boyName` = '张无忌';
    
    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` = '黄晓明';
    

      

      2、truncate 案例

        将魅力值大于 100 的男神信息删除(注意:truncate不能添加筛选条件)

    TRUNCATE TABLE boys WHERE usercp > 100;
    

           truncate 相当于把表中的数据清空,只保留表的结构。

    三、delete 与 truncate

      1、delete 可以添加筛选条件,truncate 不可以添加筛选条件;

      2、truncate 效率较高;

      3、truncate 没有返回值,delete 可以返回受影响的行数;

      4、truncate 不可以回滚,delete 可以回滚;

      5、假如要删除的表中有自增长列,

        truncate 删除后,如果再插入,标识列从1开始;

        delete 删除后,如果再插入,标识列从断点开始;

  • 相关阅读:
    上传gdb文件地理数据库所有图层到企业级空间库
    导出所有图层到gdb文件地理数据库
    sparkSQL报错org.apache.spark.sql.AnalysisException: Unable to generate an encoder for inner class `cn.itcast.spark.sql.Intro$People` without access to the scope that this class was defined in.
    java开发环境搭建
    qw
    SSM集成支付宝
    三次握手,四次挥手
    ASP.NET Core中的依赖注入#
    char是Java原始类型。char变量可以存储一个Unicode字符
    JAVA教程
  • 原文地址:https://www.cnblogs.com/niujifei/p/14922691.html
Copyright © 2011-2022 走看看