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 删除后,如果再插入,标识列从断点开始;

  • 相关阅读:
    Android学习笔记事件处理机制 希
    DIY我的博客皮肤 希
    CSS学习小札居中问题及解决方案 希
    Entity Framework 教程
    springcahce集成redis 设置过期时间 Hiro
    springboot集成springcache Hiro
    Geotools核心特点以及支持数据的格式和标准
    github使用
    一个jekyll使用大牛的博客
    在没有root权限情况下安装python
  • 原文地址:https://www.cnblogs.com/niujifei/p/14922691.html
Copyright © 2011-2022 走看看