ThinkPHP5数据库实例详解
/操作数据表之删除数据和表
操作数据表之删除数据和表
删除数据表
1、数据表创建好以后,对数据的增删改查操作不可避免。
2、可以根据条件删除部分记录,也可以删除全部记录。
3、清空数据后,对主键的处理很重要。
一、删除部分记录
语法:
DELETE FROM 表名 WHERE 条件 ;
实例:删除tp5_temp3中id为1009和1010的记录
- 代码如下:
#先查看删除之前的记录,用来做对比 SELECT * FROM `tp5_temp3` ; #删除指定记录 DELETE FROM tp5_temp3 WHERE id IN (1009,1010); #查看删除后的结果集,确认已删除 SELECT * FROM `tp5_temp3`;
- 运行结果:
二、清空数据表
清空数据表有二种方法
1、DELETE语句,不设置条件,相当于逐条删除;
2、TRUNCATE 直接清空数据表
1、DELETE 语句:
- 实例:清空 tp_temp3
- 语句:
DELETE FROM `tp5_temp3` ;
- 执行思路:
- 我们先查询一下未清空的数据
- 清空数据表后,再插入一条新记录,查看主键的变化
运行结果:
还记得我们的要求吗?我们要求员工编号从:1001开始,所以需要手工指定一下开始的主键,因此我们对代码进行改进:
- 代码如下:
# 修改一下表结构,设置主键和约束条件 ALTER TABLE tp5_temp3 CHANGE id id INT(4) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT ; #设置自增起始于1001 ALTER TABLE tp5_temp3 AUTO_INCREMENT = 1001; #插入一条数据,便于查看效果 INSERT tp5_temp3 (name,age,salary,dept,hiredate)VALUES ('小潘潘',30,1090,'开发部','2010-12-02'); #验证主键是否已正确设置成功 SELECT * FROM tp5_temp3;
- 代码运行效果:
2、TRUNCATE 语句
- 语法:
TRUNCATE TABLE 数据表名;
风险提示:
- 该操作无MySQL操作日志;
- 数据删除后不可以恢复;
- 将表恢复到新建状态,自增主键从1开始。
实例:清空tp5_temp3表,主键从1重新开始
代码:
# 清除表中全部记录,重置自增主键为 1 TRUNCATE TABLE tp5_temp3; #插入一条数据,便于查看效果 INSERT tp5_temp3 (name,age,salary,dept,hiredate)VALUES ('冰冰',18,8090,'财务部','2012-10-02'); #验证主键是否已正确设置成功 SELECT * FROM tp5_temp3;
- 运行效果
总结:
1、如果彻底清空数据表,TRUNCATE的效率比DELETES高,记录越多越明显!
2、如果记录以后可能还要恢复,或者只是删除部分记录,就必须用DELETE语句。
三、删除数据表
语法
DROP TABLE IF EXISTS 表名 ;
实例:删除tp5_temp3数据表
语句:
#如果有tp5_temp3表,就执行删除操作 DROP TABLE IF EXISTS tp5_temp3; #查看当前库中的表 SHOW TABLES;
- 运行结果:
总结:
数据记录与表的删除,有一定的危险性,操作前请再三确认~~