SQLdelete语句之多表删除总结
delete语句⽤于删除表中已经存在的整⾏数据
Tbl_name关键词代表删除数据的⽬标表
Where⼦句代表被删除数据的满⾜条件,如果没有where⼦句则代 表所有表数据都删除
Order by⼦句代表删除数据的顺序
Limit⼦句代表被删除数据的⾏数限制
delete单表删除举例
Delete from students;
delete from students where sid=1;
Delete from students order by sid;
Delete from students limit 1; -- 只删除先到的⼀⾏
复制代码
多表删除语句语法有以下两种 同样,被删除的表不能出现在查询⼦句的⼦查询中
Low_priority关键词表⽰删除语句需要等待其他链接的读此表操作 结束后再执⾏,只作⽤在MyISAM, MEMORY, and MERGE存储引擎
sql中delete用法Quick关键词是在使⽤myisam存储引擎时,删除操作不会合并删 除表的索引叶节点,这样会在⼀定程度上加快删除的速度
ignore关键词代表会忽略删除过程中的⼀些错误
order by⼦句 Delete语句中的order by⼦句决定了删除数据的顺序,配合limit⼦ 句后在某些情况下也⾮常有⽤,⽐如删除最⽼的⼀条记录:
DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;
复制代码
多表删除是指从⼀个或多个表中删除满⾜条件的数据,其中的 table_references代表了多个表的join操作, 例如以下两个例⼦代表 从t1和t2表中删除满⾜条件的数据
DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;
DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;
复制代码
对多表删除语句⽽⾔,如果想对表使⽤别名,则只能在 table_references⼦句中使⽤,否则会报错
DELETE a1, a2 FROM t1 AS a1 INNER JOIN t2 AS a2 WHERE a1.id=a2.id; -- 正确
DELETE FROM a1, a2 USING t1 AS a1 INNER JOIN t2 AS a2 WHERE a1.id=a2.id; -- 正确
DELETE t1 AS a1, t2 AS a2 FROM t1 INNER JOIN t2 WHERE a1.id=a2.id; -- 错误
DELETE FROM t1 AS a1, t2 AS a2 USING t1 INNER JOIN t2 WHERE a1.id=a2.id; -- 错误
复制代码
删除所有学号⼤于200的学⽣信息
删除系名为accounting的所有⽼师信息
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论