## 删除数据表
>[info] 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`;
~~~
* 运行结果:
![](https://box.kancloud.cn/2d7349d8188498ae635ec4d5103d93a1_1184x877.png)
* * * * *
### 二、清空数据表
#### 清空数据表有二种方法
>[info] 1、DELETE语句,不设置条件,相当于逐条删除;
2、TRUNCATE 直接清空数据表
#### 1、DELETE 语句:
* 实例:清空 tp_temp3
* 语句:
~~~
DELETE FROM `tp5_temp3` ;
~~~
* 执行思路:
>[info] * 我们先查询一下未清空的数据
> * 清空数据表后,再插入一条新记录,查看主键的变化
##### 运行结果:
![](https://box.kancloud.cn/afc49bd8b47f876d8ad39ad21c65e921_1215x860.png)
>[info] 还记得我们的要求吗?我们要求员工编号从: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;
~~~
* 代码运行效果:
![](https://box.kancloud.cn/6f08bcb64ef0ffd8d2a6490e73e089df_1187x832.png)
#### 2、TRUNCATE 语句
* 语法:
~~~
TRUNCATE TABLE 数据表名;
~~~
* 风险提示:
>[danger] * 该操作无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;
~~~
* 运行效果
![](https://box.kancloud.cn/321db4ef7612abb5520d6d72af316f88_1215x860.png)
#### 总结:
>[success] 1、如果彻底清空数据表,TRUNCATE的效率比DELETES高,记录越多越明显!
2、如果记录以后可能还要恢复,或者只是删除部分记录,就必须用DELETE语句。
* * * * *
### 三、删除数据表
#### 语法
~~~
DROP TABLE IF EXISTS 表名 ;
~~~
* 实例:删除tp5_temp3数据表
* 语句:
~~~
#如果有tp5_temp3表,就执行删除操作
DROP TABLE IF EXISTS tp5_temp3;
#查看当前库中的表
SHOW TABLES;
~~~
* 运行结果:
![](https://box.kancloud.cn/10670928d3e1f066dfe15583a1060cf5_1114x775.png)
* * * * *
### 总结:
>[danger] 数据记录与表的删除,有一定的危险性,操作前请再三确认~~</span>
- 前言[随时更新]
- ThinkPHP 5数据库重构
- 开发环境
- 1.ThinkPHP5开发环境(Mac版)
- 2.ThinkPHP5开发环境(Win版)
- MySQL快速复习
- 1.数据库操作
- 2.数据表操作
- 1.创建数据表 (重点)
- 2.添加数据表记录
- 3.查询数据表(重点)
- 4.更新数据表
- 5.编辑数据表结构(重点)
- 6_复制数据表
- 7.删除数据和表
- 连接数据库
- 1.数据库配置文件database.php
- 2.Db类静态方法connect()
- 3.模块中的配置文件config.php
- MySQL原生查询
- 1.读操作query
- 2.写操作execute
- 选择数据表
- 1.table与setTable方法
- 2.name方法
- 3.db助手函数
- 4.alias方法
- 结果集查询
- 1.find方法
- 2.select方法
- 3.fetchSql方法
- 4.value方法
- 5.column方法
- 6.field方法
- 新增数据
- 1.insert_单条添加
- 2.insertAll_批量添加
- 3_db_助手函数添加
- 更新数据
- 1.update方法
- 2.setField更新字段
- 3_自增自减与延时更新
- 删除数据
- 1.delete方法
- 查询方法
- 1.getTableInfo方法
- 2.where方法
- 3.whereOr方法
- 4.混合查询(闭包实现)
- 表达式查询
- 1.表达式查询(重点)
- 2.exp通用查询
- 分组查询
- 1.group方法
- 2.having方法
- 排序分页查询
- 1.order方法
- 2.limit方法
- 3.page方法
- 聚合查询
- 时间查询
- 1.where方法
- 2.whereTime方法
- 高级查询
- 1.快捷查询
- 2.区间查询
- 3.批量查询
- 4.Query对象查询
- 5.混合查询
- 视图查询
- view方法
- 子查询
- 1.select方法
- 2.fetchSql方法
- 3.buildSql方法
- 4.闭包子查询
- 总结/参考
- 1.方法参数类型总结
- 2.查询/子查询/连接查询