单表删除语句:

DELETE [LOW_PRIORITY][IGNORE] FROM tbl_name

    [WHERE where_definition]
    [ORDER BY ...]
    [LIMIT row_count]
 
这里只对delete的常用参数及用法做出介绍。
 

说明:

low_priority:强制delete命令被延迟执行,直到没有其它客户端读取本表时再执行。

ignore:使MySQL忽略delete执行所有的错误,而错误会以警告的方式返回。

order by...:表中记录按照指定的顺序进行删除,此子句一般与limit联用才有意义。

limit:指定删除操作的指定行范围。

注意:1)不能把ORDER BY或LIMIT与multiple-table UPDATE(多表更新)同时使用;

           2)当delete伴随有多个限制条件时,是将多个限制条件执行查询操作后,再执行对应的删除操作。

(1)简单单表删除

语句:delete from table_name where [条件]

示例:

mysql> select * from staff;
+----+----------+-------+
| id | name | slary |
+----+----------+-------+
| | guoding | |
| | dingtao | |
| | haofugui | |
| | guoming | |
| | haotian | |
| | fengfei | |
| | guoting | |
| | guoding | |
| | xiaohua | |
+----+----------+-------+
rows in set (0.00 sec) mysql> delete from staff where id=9; //通过where指定要删除的记录或记录组合
Query OK, row affected (0.00 sec) mysql> select * from staff;
+----+----------+-------+
| id | name | slary |
+----+----------+-------+
| | guoding | |
| | dingtao | |
| | haofugui | |
| | guoming | |
| | haotian | |
| | fengfei | |
| | guoting | |
| | guoding | |
+----+----------+-------+
rows in set (0.00 sec)

(2)删除-排序、限制

order by...一般与limit搭配使用才有意义。

如:删除工资最低的记录

mysql> select * from staff;
+----+----------+-------+
| id | name | slary |
+----+----------+-------+
| | guoding | |
| | dingtao | |
| | haofugui | |
| | guoming | |
| | haotian | |
| | fengfei | |
| | guoting | |
| | guoding | |
+----+----------+-------+
rows in set (0.00 sec) mysql> delete from staff order by slary asc limit 1; //删除工资最低的数据记录
Query OK, row affected (0.00 sec) mysql> select * from staff;
+----+----------+-------+
| id | name | slary |
+----+----------+-------+
| | guoding | |
| | dingtao | |
| | haofugui | |
| | guoming | |
| | haotian | |
| | fengfei | |
| | guoding | |
+----+----------+-------+
rows in set (0.00 sec)

(3)连接删除

假设有一个post表与staff对应:

mysql> select * from staff;
+----+----------+-------+
| id | name | slary |
+----+----------+-------+
| | guoding | |
| | dingtao | |
| | haofugui | |
| | guoming | |
| | haotian | |
| | fengfei | |
| | guoding | |
+----+----------+-------+
rows in set (0.00 sec) mysql> select * from post;
+-----+----------+-------+
| num | name | level |
+-----+----------+-------+
| | haotian | |
| | guoming | |
| | haofugui | |
+-----+----------+-------+
rows in set (0.00 sec)

现在需要从表staff中删除在post没有对应记录的记录:

mysql> delete staff from staff left join post on staff.name=post.name where post.name is NULL;
Query OK, rows affected (0.00 sec) mysql> select * from staff;
+----+----------+-------+
| id | name | slary |
+----+----------+-------+
| | haofugui | |
| | guoming | |
| | haotian | |
+----+----------+-------+
rows in set (0.00 sec)

在上述删除命令中,也可以引入别名,方便输入,如:

mysql> delete A from staff as A left join post as B on A.name=B.name where B.name is NULL;

注意:NULL不可以用等号(B.name=NULL),正确的应该是B.name is NULL

MySQL删除命令_DELETE的更多相关文章

  1. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法

    create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...

  2. MySQL ALTER命令

    当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本文教程前让我们先创建一张表,表名为:testalter_tbl. root@host# mysql -u r ...

  3. MySQL 常用命令总结

    http://blog.csdn.net/hanxin1987216/article/details/5976860 一.总结 1.Linux系统下启动MySQL的命令: mysqladmin sta ...

  4. MySQL常用命令和常见问题

    MySQL常用命令和常见问题 --创建数据库并设置字符集 create database wip default character set utf8 collate utf8_general_ci; ...

  5. MySQL命令大全:MySQL常用命令手册、MySQL命令行大全、查询工具

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...

  6. MYSQL删除表的记录后如何使ID从1开始

    MYSQL删除表的记录后如何使ID从1开始 MYSQL删除表的记录后如何使ID从1开始 http://hi.baidu.com/289766516/blog/item/a3f85500556e2c09 ...

  7. 烂泥:mysql帮助命令使用说明

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在安装.管理和使用mysql过程中,你是不是需要记忆很多的mysql命令.而且对于新手来说,很不多的命令不知道该如何应用,对于老手来说很多命令时间长了忘 ...

  8. Mysql常用命令详解

    Mysql安装目录 数据库目录 /var/lib/mysql/ 配置文件 /usr/share/mysql(mysql.server命令及配置文件) 相关命令 /usr/bin(mysqladmin ...

  9. Mysql常用命令行大全

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...

随机推荐

  1. SQL查询无限层级结构的所有下级,所有上级

    无限层级结构的table1表,Id(主键),ParentId(父级id)查询某个Id的所有下级或所有上级,使用WITH AS,UNION ALL 查询 1.查询Id为1所有的下级 WITH T AS( ...

  2. HTTP简介,http是一个属于应用层的面向对象的协议

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  3. Ubuntu下开启Mysql远程访问的方法

    首先想说,JetProfiler对分析项目中MySQL问题以及优化,是个非常好的工具.但是看网上文章,中文介绍真的不多.是因为国内现在都不用MySQL了吗? 因为公司JetProfiler是共用的,安 ...

  4. Linux 的基本操作(系统用户及用户组的管理)

    [认识/etc/passwd和/etc/shadow] 这两个文件可以说是linux系统中最重要的文件之一.如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的. /etc/pa ...

  5. MultipartFile实现文件上传

    一.主要有两个java类,和一般的servlet放在一起即可. 1.FileUploadBean.java package chb.demo.web;import org.springframewor ...

  6. myBatis框架_关于怎么获得多表查询的总记录数

    <!-- 查找总记录数 --> <select id="billCount" resultType="int"> select coun ...

  7. mybits根据表自动生成 java类和mapper 文件

    mybits根据表自动生成 java类和mapper 文件 我这个脑子啊,每次创建新的工程都会忘记是怎么集成mybits怎么生成mapper文件的,so today , I can't write t ...

  8. 360自带--JS开发工具箱

    360自带–JS开发工具箱 360自带–JS开发工具箱 360自带–JS开发工具箱

  9. GC垃圾回收器

    java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”.jvm解决的两个问题:给对象分配内存以及回收分配给对象的内存.GC:将内存中不再被使用的对象进行回收.GC的作用域是JVM运行时 ...

  10. PE、PB、PEG三大估值法的正确使用方法!

    目前市面上的估值方法有很多,比如PE估值法.PB估值法.PEG估值法,但是我相信,真正会用的人并不多,比如说目前动态市盈率121倍的比亚迪真的高估吗?比如目前市净率为0.63倍的众泰汽车真的是破净股吗 ...