1. sql 删除语句
1、delete 语句用于删除表中的行。
delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存 语法:DELETE FROM 表名称 WHERE 列名称 = 值, 如:删除student表中姓名为张三丰的学生信息-delete from studentwhere name='张三丰'; 2、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。 3、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。
与drop不同的是,只是清空表数据而已。 注意:truncate 不能删除行数据,要删就要把表清空。
扩展资料: 数据库操作中,经常要用到删除表和删除表数据,在实际应用中,三者的区别是明确的。 当你不再需要该表时, 用 drop; 当你仍要保留该表,但要删除所有记录时, 用 truncate; 当你要删除部分记录时(always with a WHERE clause), 用 delete。
truncate 与delete 比较: 1、truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。 2、truncate 比 delete速度快,且使用的系统和事务日志资源少。
3、truncate 操作后的表比Delete操作后的表要快得多。
2. SQL 删除语句怎么写呢
原发布者:wokfxzz
truncatetable--删除单个站点的相关数据【只删除数据,不删除基本信息】--总表DELETEFROM[In_Port_Log]whereHardware_Id=''DELETEFROM[In_Port_LogError]whereHardware_Id=''--降雨DELETEFROM[HY_OBP_G]whereSTCD=''--降雨记录表DELETEFROM[ST_PPTN_R]whereSTCD=''--降雨处理表DELETEFROM[HY_DP_C]whereSTCD=''--降雨日记录DELETEFROM[HY_MTP_E]whereSTCD=''--降雨月纪录DELETEFROM[HY_YRP_F]whereSTCD=''--降雨年纪录DELETEFROM[Ep_YQ_JC]whereSTCD=''--预警DELETEFROM[LH_P_R]whereSTCD=''--实时表DELETEFROM[LH_P_DAY]whereSTCD=''--降雨统计表:日表DELETEFROM[LH_P_MONTH]whereSTCD=''--降雨统计表:月表--流量DELETEFROM[ST_RIVER_R]whereSTCD=''--河道处理表DELETEFROM[HY_DQ_C]whereSTCD=''--流量日记录DELETEFROM[HY_MTQ_E]whereSTCD=''--流量月纪录DELETEFROM[HY_YRQ_F]whereSTCD=''--流量年纪录DELETEFROM[LH_Q_DAY]whereSTCD=''--河道统计表:日表DELETEFROM[LH_Q_MONTH]whereSTCD=''--河道统计表:月表DELETEFROM[LH_Q_DAY_MinMaxAvg]whereSTCD=''--河道统计表:最大最小值表--库容DELETEFROM[ST_RSVR_R]whereSTCD=''--库容处理表DELE
3. PHP删除语句怎么写
MySQL为我们提供了delete和truncate语句来删除数据。
delete 语句的定义:
删除数据的时候用的大多都是 delete 语句。现在让我们来看一下 delete语句的定义。
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_definition]
[ORDER BY 。]
[LIMIT row_count]
delete from friends where user_name = 'simaopig';delete 注意事项:
从语法结构中,我们就可以看出,和 update 语法一样,我们是可以省略 where 子句的。不过这是一个很危险的行为。因为如果不指定 where 子句,delete 将删除表中所有的记录,而且是立即删除.
truncate 语句的简单说明:
这个语句之前我也没有接触过,也没有使用过。因为一般情况下,删除数据大家都在使用delete语句。其实这个truncate 命令很简单,它的意思是:删除表的所有记录。相当于 delete 语句不写 where 子句一样。其语法结构为:
TRUNCATE [TABLE] tbl_name
这里简单的给出个示例,我想删除 friends 表中所有的记录,可以使用如下语句:
truncate table friends;
truncate 和 delete的效率问题:
如果想要删除表的所有数据,truncate语句要比 delete 语句快。因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。这也是为什么当向一个使用 delete 清空的表插入数据时,MySQL 会记住前面产生的AUTOINCREMENT序列,并且继续利用它对AUTOINCREMENT字段编号。而truncate删除表后,表是从1开始为autoincrement字段编号。
不过truncate命令快规快,却不像delete命令那样对事务处理是安全的。因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。
4. delete语句怎么用
语法:DELETE [table.*] FROM table WHERE criteria
说明:table参数用于指定从其中删除记录的表的名称。
criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。
可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个表。不过,若用这种方法删除表,将会失去表的结构。不同的是当使用 DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。
扩展资料:
如果需要在delete的时候,按照条件删除记录,那么可能会用到子查询。
但是如下情况:
delete from student where id = (select max(id) from student);
[Err] 1093 - You can't specify target table 'student' for update in FROM clause
解决办法是:给 from 子句中的结果集起别名。
delete from student where id = (select n.max_id from (select max(id) as max_id from student) as n);
这个方法对in还是适用的
delete from student where id in (select id from student where id > 30);
[Err] 1093 - You can't specify target table 'student' for update in FROM clause
解决方法同上:
delete from student where id in (select n.id from (select id from student where id > 30) as n)
参考资料来源:百度百科-DELETE语句