zoukankan      html  css  js  c++  java
  • MySQL删除表数据

    在本教程中,您将学习如何使用MySQL DELETE语句从单个表中删除数据。

    1. MySQL DELETE语句介绍

    要从表中删除数据,请使用MySQL DELETE语句。下面说明了DELETE语句的语法:

    DELETE FROM table_name
    WHERE condition;
    
    SQL

    在上面查询语句中 -

    • 首先,指定删除数据的表(table_name)。
    • 其次,使用条件来指定要在WHERE子句中删除的行记录。如果行匹配条件,这些行记录将被删除。

    请注意,WHERE子句是可选的。如果省略WHERE子句,DELETE语句将删除表中的所有行。

    除了从表中删除数据外,DELETE语句返回删除的行数。

    要使用单个DELETE语句从多个表中删除数据,请阅读下一个教程中将介绍的DELETE JOIN语句

    要删除表中的所有行,而不需要知道删除了多少行,那么应该使用TRUNCATE TABLE语句来获得更好的执行性能。

    对于具有外键约束的表,当从父表中删除行记录时,子表中的行记录将通过使用ON DELETE CASCADE选项自动删除。

    2. MySQL DELETE的例子

    我们将使用示例数据库(yiibaidb)中的employees表进行演示。

    +-------------+--------------+------+-----+---------+----------------+
    | Field       | Type         | Null | Key | Default | Extra          |
    +-------------+--------------+------+-----+---------+----------------+
    | emp_id      | int(11)      | NO   | PRI | NULL    | auto_increment |
    | emp_name    | varchar(255) | NO   |     | NULL    |                |
    | performance | int(11)      | YES  | MUL | NULL    |                |
    | salary      | float        | YES  |     | NULL    |                |
    +-------------+--------------+------+-----+---------+----------------+
    4 rows in set
    
    SQL

    请注意,一旦删除数据,它就会永远消失。因此,在执行DELETE语句之前,应该先备份数据库,以防万一要找回删除过的数据。

    假设要删除officeNumber4的员工,则使用DELETE语句与WHERE子句作为以下查询:

    DELETE FROM employees 
    WHERE
        officeCode = 4;
    
    SQL

    要删除employees表中的所有行,请使用不带WHERE子句的DELETE语句,如下所示:

    DELETE FROM employees;
    
    SQL

    在执行上面查询语句后,employees表中的所有行都被删除。

    MySQL DELETE和LIMIT子句

    如果要限制要删除的行数,则使用LIMIT子句,如下所示:

    DELETE FROM table
    LIMIT row_count;
    
    SQL

    请注意,表中的行顺序未指定,因此,当您使用LIMIT子句时,应始终使用ORDER BY子句,不然删除的记录可能不是你所预期的那样。

    DELETE FROM table_name
    ORDER BY c1, c2, ...
    LIMIT row_count;
    
    SQL

    考虑在示例数据库(yiibaidb)中的customers表,其表结构如下:

    mysql> desc customers;
    +------------------------+---------------+------+-----+---------+-------+
    | Field                  | Type          | Null | Key | Default | Extra |
    +------------------------+---------------+------+-----+---------+-------+
    | customerNumber         | int(11)       | NO   | PRI | NULL    |       |
    | customerName           | varchar(50)   | NO   |     | NULL    |       |
    | contactLastName        | varchar(50)   | NO   |     | NULL    |       |
    | contactFirstName       | varchar(50)   | NO   |     | NULL    |       |
    | phone                  | varchar(50)   | NO   |     | NULL    |       |
    | addressLine1           | varchar(50)   | NO   |     | NULL    |       |
    | addressLine2           | varchar(50)   | YES  |     | NULL    |       |
    | city                   | varchar(50)   | NO   |     | NULL    |       |
    | state                  | varchar(50)   | YES  |     | NULL    |       |
    | postalCode             | varchar(15)   | YES  |     | NULL    |       |
    | country                | varchar(50)   | NO   |     | NULL    |       |
    | salesRepEmployeeNumber | int(11)       | YES  | MUL | NULL    |       |
    | creditLimit            | decimal(10,2) | YES  |     | NULL    |       |
    +------------------------+---------------+------+-----+---------+-------+
    13 rows in set
    
    SQL

    例如,以下语句按客户名称按字母排序客户,并删除前10个客户:

    DELETE FROM customers
    ORDER BY customerName
    LIMIT 10;
    
    SQL

    类似地,以下DELETE语句选择法国(France)的客户,按升序按信用额度(creditLimit)进行排序,并删除前5个客户:

    DELETE FROM customers
    WHERE country = 'France'
    ORDER BY creditLimit
    LIMIT 5;
    
    SQL

    在本教程中,您已经学会了如何使用MySQL DELETE语句从表中删除数据。



  • 相关阅读:
    安卓机-华为安装charles证书
    sed替换文件内容
    升级php5.3.10到php5.6.30
    js 判断设备
    element-ui框架富文本编辑器
    git从主分支上拉取新分支以及提交代码、合并到主分支
    前端项目初始化
    vue路由点击第二次时报错
    js 数组sort方法根据数组中对象的某一个属性值进行排序
    去除一个数组中与另一个数组中的相同元素
  • 原文地址:https://www.cnblogs.com/borter/p/12452684.html
Copyright © 2011-2022 走看看