官术网_书友最值得收藏!

4.5 刪除數據表

對于不再需要的數據表,可以將其從數據庫中刪除。本節將詳細講解數據庫中數據表的刪除方法。

4.5.1 刪除沒有被關聯的表

在MySQL中,使用DROP TABLE可以一次刪除一個或多個沒有被其他表關聯的數據表。語法格式如下:

    DROP TABLE [IF EXISTS]表1,表2,…,表n;

主要參數介紹如下。

  • 表n:指要刪除的表的名稱,后面可以同時刪除多個表,只需將刪除的表名一次寫在后面,相互之間用逗號隔開。

【實例13】刪除數據表emp_01,輸入如下語句:

    DROP TABLE emp_01;

執行結果如圖4-26所示。

使用“SHOW TABLES;”語句查看當前數據庫中所有的數據表,查看結果如圖4-27所示。從執行結果可以看出,數據庫中已經沒有了數據表emp_01,說明數據表刪除成功。

圖4-26 刪除表emp_01

圖4-27 數據表刪除成功

4.5.2 刪除被其他表關聯的主表

在數據表之間存在外鍵關聯的情況下,如果直接刪除父表,結果會顯示失敗。原因是直接刪除,將破壞表的參照完整性。如果必須要刪除,可以先刪除與它關聯的子表,再刪除父表,只是這樣會同時刪除兩個表中的數據。如果想要單獨刪除父表,只需將關聯的表的外鍵約束條件取消,然后再刪除父表即可。

【實例14】刪除存在關聯關系的數據表。

在數據庫mydbase中創建兩個關聯表,首先,創建表tb_1,SQL語句如下:

執行結果如圖4-28所示。

接下來創建表tb_2,SQL語句如下:

執行結果如圖4-29所示。

圖4-28 創建數據表tb_1

圖4-29 創建數據表tb_2

使用SHOW CREATE TABLE命令查看表tb_2的外鍵約束,SQL語句如下:

    SHOW CREATE TABLE tb_2\G

執行結果如圖4-30所示,從結果可以看到,在數據表tb_2上創建了一個名稱為fk_tb_dt的外鍵約束。

圖4-30 查看數據表的結構

下面直接刪除父表tb_1,輸入刪除語句如下:

    DROP TABLE tb_1;

執行結果如圖4-31所示,可以看到,如前面所述,在存在外鍵約束時,父表不能被直接刪除。

接下來,解除關聯子表tb_2的外鍵約束,SQL語句如下:

    ALTER TABLE tb_2 DROP FOREIGN KEY fk_tb_dt;

語句執行結果如圖4-32所示,將取消表tb_1和tb_2之間的關聯關系。

圖4-31 直接刪除父表

圖4-32 取消表的關聯關系

此時,再次輸入刪除語句,將原來的父表tb_1刪除,SQL語句如下:

    DROP TABLE tb_1;

執行結果如圖4-33所示。最后通過“SHOW TABLES;”語句查看數據表列表,結果如圖4-34所示,可以看到,數據表列表中已經不存在名稱為tb_1的表。

圖4-33 刪除父表tb_1

圖4-34 查看數據表列表

主站蜘蛛池模板: 丰顺县| 师宗县| 彰武县| 嘉义县| 枝江市| 田林县| 兴海县| 盐津县| 丹江口市| 丰城市| 新余市| 松阳县| 和硕县| 惠东县| 盱眙县| 收藏| 五家渠市| 修武县| 玉环县| 巴马| 淄博市| 镇康县| 图们市| 成安县| 南召县| 通辽市| 常宁市| 西乌| 登封市| 安国市| 平南县| 当雄县| 西平县| 凤山县| 谢通门县| 湘乡市| 湛江市| 贡觉县| 姚安县| 射洪县| 麦盖提县|