## 刪除數據表
>[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`;
~~~
* 運行結果:

* * * * *
### 二、清空數據表
#### 清空數據表有二種方法
>[info] 1、DELETE語句,不設置條件,相當于逐條刪除;
2、TRUNCATE 直接清空數據表
#### 1、DELETE 語句:
* 實例:清空 tp_temp3
* 語句:
~~~
DELETE FROM `tp5_temp3` ;
~~~
* 執行思路:
>[info] * 我們先查詢一下未清空的數據
> * 清空數據表后,再插入一條新記錄,查看主鍵的變化
##### 運行結果:

>[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;
~~~
* 代碼運行效果:

#### 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;
~~~
* 運行效果

#### 總結:
>[success] 1、如果徹底清空數據表,TRUNCATE的效率比DELETES高,記錄越多越明顯!
2、如果記錄以后可能還要恢復,或者只是刪除部分記錄,就必須用DELETE語句。
* * * * *
### 三、刪除數據表
#### 語法
~~~
DROP TABLE IF EXISTS 表名 ;
~~~
* 實例:刪除tp5_temp3數據表
* 語句:
~~~
#如果有tp5_temp3表,就執行刪除操作
DROP TABLE IF EXISTS tp5_temp3;
#查看當前庫中的表
SHOW TABLES;
~~~
* 運行結果:

* * * * *
### 總結:
>[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.查詢/子查詢/連接查詢