重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//删除是记录是用sql语句,比如 delete from xxx(table) where id=1 删除 id=1的记录
创新互联建站于2013年开始,先为焦作等服务建站,焦作等地企业,进行企业商务咨询服务。为焦作企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
//数据库操作后,手动关闭是好得习惯,不手动关闭,php程序也会最后自动关闭
参考方法:
delete from 表名;
truncate table 表名;
不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
这个需要分两个步骤完成。
1、删除数据库数据;
2、删除文件。
一般存入数据库的数据和文件都有关联性,如文件名存在数据库某字段中,这时候可以查询出要删除的某条数据,找到这条数据中的文件名,然后先将这条数据删除,再把文件名对应的文件删除。
删除数据库数据使用delete语法,删除服务器文件使用unlink函数。
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删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。
sample code:
?php
if($del_id!=""){
$del_num=count($del_id);
for($i=0;$i$del_num;$i++){
mysql_query("Delete from news where id='$del_id[$i]'");
}
echo("script type='text/javascript'alert('删除成功!');history.back();/script");
}else{
echo("script type='text/javascript'alert('请先选择项目!');history.back();/script");
}
?
$sql = ' TRUNCATE TABLE `table_name` ' ; // 清空表数据,并重置自增主键id 从1重头开始自增;
mysql_query ( $sql ) ;
原理就是执行一条清空表数据的 sql 语句;