1.如果要删除某张表中指定的某条数据,使用
delete from students where sid = 8;
但是在进行删除之前一般要先查一下索要删除的数据是否是指定数据.
select * from students where sid = 8;
2.删除某一个过滤后的多个数据中的第一条的时候,需要先进行排序然后使用limit删除第一天,否则有可能会误删数据
delete from students ordre by sid desc limit 1;
select * from students;
如果要随机删除一条的是可以不使用order by 进行排序.
3.多表中删除部分关联数据.
delete students,teacher from students inner join score where students.sid = score.sid ;
这样删除就可以将两个表中的指定关联数据同时删除.如果有更多的约束条件的话在后面添加where条件即可,如果有多个条件那就在where后面添加多个条件.但是再添加的时候出现删除时间很长的问题.不知道啥原因.
4.如果要在两张表进行数据删除的时候仅删除其中一张表中的数据,那么在进行删除的时候要将两张表进行关联,然后再进行删除操作的时候指定其中一张.
delete students from students inner join score where students.sid = score.sid and students.sid = 2;
如果语句太长可以使用别名进行表明的替代,一般情况单表删除比较多一点.
delete a from students  a inner join score b where a.sid = b.sid and a.sid = 2;
练习题.删除所有学号大于200的学生信息.
delete from students where sid > 200;
删除系名为accounting的所有老师的信息.
delete b from dept as a inner join teacher as b where a.id = b.dept_id and a.dept_name ="accounting";
或者使用子查询,首先将系名对应的id查询出来,然后再进行查询出的系名的关联删除.
delete from teacher where id =(select id from dept where dept_name_name = "accounting");
 
posted on 2019-09-24 18:50  DisCover_ry  阅读(1042)  评论(0编辑  收藏  举报