Mysql的delete语句
id no name kno kname score1 001 zhangsan 0001 shuxue 69
2 002 lisi 0002 shuxue 89
3 001 zhangsan 0001 shuxue 69
4 001 zhangsan 0001 shuxue 69
要求:删除除了自动编号不同,其他都相同的学生冗余信息
我的语句是:delete from student where id in(select id from student where id not in(select id from student group by no,name,kno,kname,score));
结果报错了:You can't specify target table 'student' for update in FROM clause;
为啥会这样?
delete from student where id IN
(select max(id) from student group by no,name,kno,kname,score)
delete sql语句是什么?
delete sql语句是用于删除表中的行的。从表中删除行是通过数据操作语言(又称DML语句)使用delete关键字完成的。 到目前为止,SQL删除操作是所有DML命令中最简单的操作。 在执行delete命令时不必担心从表中获取任何形式的数据,也不必担心处理从表中获取的任何数据。
注意:
需要告诉数据库和表应从何处删除数据,添加条件子句以设置数据删除的范围是一个好主意,否则,它将删除表中的所有内容。可能发生的不幸错误是意外地运行了不带Where子句SQL Delete并无意间删除了所有数据。 为防止这种情况发生,请在执行之前考虑使用ApexSQL Complete中的Execution保护功能,以警告此类可能有害的操作。分享相关内容的知识扩展阅读:
SQL,delete语句附近有语法错误,无法预定义语句。
我写的代码如下:到底是为什么出现了错误了呢?我在数据库那里能执行。在代码这里就报错。CDatabase m_database;
CString strSQL1,strSQL2;
Mainset_s m_student(&m_database);
Mainset_w m_work(&m_database);
strSQL1.Format("delete from Work where WID='%s'",WID);
strSQL2.Format("delete from student where WID='%s'",WID);
m_work.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL1);
AfxMessageBox("Work表删除成功!");
m_student.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL2);
AfxMessageBox("student表删除成功!");
strSQL1.Format("delete from Work where WID='"+%s+"'",WID);
strSQL2.Format("delete from student where WID='"+%s+"'",WID);
关于oracle里面delete,trancate,drop的区别和用法。详细点。谢谢
关于oracle里面delete,trancate,drop的区别和用法。详细点。谢谢我要做PPT咯。麻烦各位高手解救下。
1、首先复制一张表成3张复制表,分别对3张复制表进行drop、delete、truncate语句的操作,如图。

2、语句运行结果,如图只要delete有影响条数其他没有。

3、然后再来看表会发现执行drop表被删除了,如图。

4、然后打开表查看表数据可以看出TRUNCATE是清空表数据,delete是删除指定的条件数据,如图。

5、还要就是表设计中的自增值的不同,TRUNCATE执行的表自增又从1开了,还有就是delete的数据可以回滚还原,TRUNCATE的不可以,如图。

先执行alter+table语句修改表结构,再执行delete不受影响?
一般情况下,先执行ALTER TABLE语句修改表结构,再执行DELETE语句不会受到影响。因为ALTER TABLE语句只会对表的结构进行修改,不会影响表中的数据,而DELETE语句是对表中的数据进行操作。
但是,在某些情况下,ALTER TABLE语句可能会导致DELETE语句无法执行,例如:
在ALTER TABLE语句中添加了外键约束,而删除的数据存在关联的外键约束,这时候就无法执行DELETE语句。
在ALTER TABLE语句中修改了字段类型或约束条件,而删除的数据无法满足修改后的约束条件,这时候也无法执行DELETE语句。
因此,在执行ALTER TABLE和DELETE语句时,应该根据具体情况进行分析和测试,确保操作的正确性和安全性。可以先备份数据或者使用事务来保证数据的一致性和完整性。