MySQL删除命令_DELETE
单表删除语句:
DELETE
[LOW_PRIORITY][IGNORE] FROM tbl_name
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
说明:
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 | +----+----------+-------+ | 1 | guoding | 3200 | | 2 | dingtao | 2800 | | 3 | haofugui | 10000 | | 4 | guoming | 3500 | | 5 | haotian | 2900 | | 6 | fengfei | 3200 | | 7 | guoting | 2600 | | 8 | guoding | 3200 | | 9 | xiaohua | 3200 | +----+----------+-------+ 9 rows in set (0.00 sec)mysql> delete from staff where id=9; //通过where指定要删除的记录或记录组合 Query OK, 1 row affected (0.00 sec)mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+----------+-------+ | 1 | guoding | 3200 | | 2 | dingtao | 2800 | | 3 | haofugui | 10000 | | 4 | guoming | 3500 | | 5 | haotian | 2900 | | 6 | fengfei | 3200 | | 7 | guoting | 2600 | | 8 | guoding | 3200 | +----+----------+-------+ 8 rows in set (0.00 sec)
(2)删除-排序、限制
order by...一般与limit搭配使用才有意义。
如:删除工资最低的记录
mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+----------+-------+ | 1 | guoding | 3200 | | 2 | dingtao | 2800 | | 3 | haofugui | 10000 | | 4 | guoming | 3500 | | 5 | haotian | 2900 | | 6 | fengfei | 3200 | | 7 | guoting | 2600 | | 8 | guoding | 3200 | +----+----------+-------+ 8 rows in set (0.00 sec)mysql> delete from staff order by slary asc limit 1; //删除工资最低的数据记录 Query OK, 1 row affected (0.00 sec)mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+----------+-------+ | 1 | guoding | 3200 | | 2 | dingtao | 2800 | | 3 | haofugui | 10000 | | 4 | guoming | 3500 | | 5 | haotian | 2900 | | 6 | fengfei | 3200 | | 8 | guoding | 3200 | +----+----------+-------+ 7 rows in set (0.00 sec)
(3)连接删除
假设有一个post表与staff对应:
mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+----------+-------+ | 1 | guoding | 3200 | | 2 | dingtao | 2800 | | 3 | haofugui | 10000 | | 4 | guoming | 3500 | | 5 | haotian | 2900 | | 6 | fengfei | 3200 | | 8 | guoding | 3200 | +----+----------+-------+ 7 rows in set (0.00 sec)mysql> select * from post; +-----+----------+-------+ | num | name | level | +-----+----------+-------+ | 1 | haotian | 3 | | 2 | guoming | 1 | | 3 | haofugui | 2 | +-----+----------+-------+ 3 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, 4 rows affected (0.00 sec)mysql> select * from staff; +----+----------+-------+ | id | name | slary | +----+----------+-------+ | 3 | haofugui | 10000 | | 4 | guoming | 3500 | | 5 | haotian | 2900 | +----+----------+-------+ 3 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
转载于:https://www.cnblogs.com/yy20141204bb/p/8409371.html
MySQL删除命令_DELETE相关推荐
- mysql 删除版本信息_linux 删除mysql
写作背景 明天项目上线,今天晚上在客户的机房进行网站的部署,在安装mysql的时候出现了一个问题,就是死活安装不上,说已经存在mysql,最后分析错误信息才知道,原来是centos 6.3 自带安装了 ...
- mysql删除表命令语句_MySQL增删改查语句命令(一)
增删改查语句 增删改查的语句命令为 增:insert 删:delete 改:update 查:SELECT或者show 库操作 创建数据库:create database shujukuba; 创建带 ...
- mysql 删除最后100条_sql-如何回滚我在MySQL中的最后一个删除命令?
sql-如何回滚我在MySQL中的最后一个删除命令? 我不小心从表中删除了很多行... 如何退回? 我使用PuTTY执行查询. 如果您能安全地指导我,我将不胜感激. 10个解决方案 96 votes ...
- mysql 删除表 命令_MySQL 删除数据表
MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...
- mysql删除表里面姓王的人_MySQL 删除数据表_mysql删除数据表命令_DROP TABLE table_name...
MySQL 删除数据表 MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TA ...
- MySQL删除表数据 MySQL清空表命令 3种方法
一.MySQL清空表数据命令:truncate SQL语法: truncate table 表名 注意: 不能与where一起使用. truncate删除数据后是不可以rollback的. trunc ...
- mysql 删除字段_MySQL命令行删除表中的一个字段
先看看删除之前的表结构: mysql> select * from test; +------+--------+----------------------------------+----- ...
- mysql删除用户的命令_mysql如何删除用户?
mysql删除用户的方法:1.使用"drop user 用户名;"命令删除:2.使用"delete from user where user='用户名' and host ...
- MySQL删除表数据 MySQL清空表数据命令 3种方法
一.MySQL清空表数据命令:truncate SQL语法: truncate table 表名; 注意: 不能与where一起使用. truncate删除数据后是不可以rollback的. trun ...
- MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...
本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...
最新文章
- 破解入门(六)-----实战“内存镜像法”脱壳
- JavaScript学习系列3 -- JavaScript arguments对象学习
- ResNeXt核心思想
- 【Leetcode】Remove Duplicates from Sorted Array II
- oracle数组转换字符串函数,Oracle 字符串转数组的函数
- 如何使用Aiseesoft Mac FoneTrans传输和管理iOS文件
- 如何使用Deckset配置编辑命令
- extjs 表格数据重新加载_将【金数据】实时获取到Excel的小技能
- web前端 基于html实现花店购物网站源码(HTML+CSS+JavaScript) 企业网站制作
- 科创板在6月的这30天:方邦电子等31家过会并提交注册 新受理28家
- 马尔可夫链 ▏小白都能看懂的马尔可夫链详解
- 微信小程序常用路由跳转方法
- 如何将html转化成mp4,怎么把mov转换成mp4格式?方法很简单,1分钟完成转换
- 怎么让背景铺满整个页面_word怎么让背景图片铺满整个页面
- php网站开发期末大作业,网页设计期末大作业报告..doc
- Linux驱动程序安装步骤
- Eigen介绍及简单使用
- html5子代选择器,伪类、子代、毗邻选择器 — IE6已逝,这些优秀的选择器你怎能不用?...
- 为阿里云ECS设置共享上网、端口映射
- make 命令干什么用?