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

4.4 修改數(shù)據(jù)表

數(shù)據(jù)表創(chuàng)建完成后,還可以根據(jù)實(shí)際需要對(duì)數(shù)據(jù)表進(jìn)行修改,例如修改表名、修改字段數(shù)據(jù)類(lèi)型、修改字段名等。

4.4.1 修改數(shù)據(jù)表的名稱(chēng)

表名可以在一個(gè)數(shù)據(jù)庫(kù)中唯一的確定一張表,數(shù)據(jù)庫(kù)系統(tǒng)通過(guò)表名來(lái)區(qū)分不同的表。例如,在公司管理系統(tǒng)數(shù)據(jù)庫(kù)company中,員工信息表emp是唯一的。在MySQL中,修改表名是通過(guò)SQL語(yǔ)句ALTER TABLE來(lái)實(shí)現(xiàn)的,具體語(yǔ)法格式如下:

    ALTER TABLE <舊表名> RENAME [TO] <新表名>;

主要參數(shù)介紹如下。

  • 舊表名:表示修改前的數(shù)據(jù)表名稱(chēng)。
  • 新表名:表示修改后的數(shù)據(jù)表名稱(chēng)。
  • TO:可選參數(shù),其是否在語(yǔ)句中出現(xiàn),不會(huì)影響執(zhí)行結(jié)果。

【實(shí)例4】修改數(shù)據(jù)表emp的名稱(chēng)為emp_01。

執(zhí)行修改數(shù)據(jù)表名稱(chēng)操作之前,使用SHOW TABLES查看數(shù)據(jù)庫(kù)中所有的表。

    SHOW TABLES;

查詢(xún)結(jié)果如圖4-6所示。

使用ALTER TABLE將表emp改名為emp_01,SQL語(yǔ)句如下:

    ALTER TABLE emp RENAME emp_01;

語(yǔ)句執(zhí)行結(jié)果如圖4-7所示。

檢驗(yàn)表emp是否改名成功。使用SHOW TABLES;查看數(shù)據(jù)庫(kù)中的表,結(jié)果如圖4-8所示。經(jīng)比較可以看到,數(shù)據(jù)表列表中已經(jīng)顯示表名為emp_01。

圖4-6 查看數(shù)據(jù)表

圖4-7 修改數(shù)據(jù)表的名稱(chēng)

圖4-8 查看改名后的數(shù)據(jù)表

4.4.2 修改字段數(shù)據(jù)類(lèi)型

修改字段的數(shù)據(jù)類(lèi)型,就是把字段的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成另一種數(shù)據(jù)類(lèi)型。在MySQL中修改字段數(shù)據(jù)類(lèi)型的語(yǔ)法格式如下:

    ALTER TABLE <表名>MODIFY<字段名> <數(shù)據(jù)類(lèi)型>;

主要參數(shù)介紹如下。

  • 表名:指要修改數(shù)據(jù)類(lèi)型的字段所在表的名稱(chēng)。
  • 字段名:指需要修改的字段。
  • 數(shù)據(jù)類(lèi)型:指修改后字段的新數(shù)據(jù)類(lèi)型。

【實(shí)例5】將數(shù)據(jù)表emp_01中name字段的數(shù)據(jù)類(lèi)型由VARCHAR(25)修改成VARCHAR(28)。

執(zhí)行修改字段數(shù)據(jù)類(lèi)型操作之前,使用DESC查看emp_01表結(jié)構(gòu),輸入如下語(yǔ)句:

    DESC emp_01;

執(zhí)行結(jié)果如圖4-9所示。

可以看到現(xiàn)在name字段的數(shù)據(jù)類(lèi)型為VARCHAR(25),下面修改其數(shù)據(jù)類(lèi)型。輸入如下SQL語(yǔ)句:

    ALTER TABLE emp_01 MODIFY name VARCHAR(28);

執(zhí)行結(jié)果如圖4-10所示。

再次使用DESC查看表,結(jié)果如圖4-11所示。

圖4-9 查看數(shù)據(jù)表的結(jié)構(gòu)

語(yǔ)句執(zhí)行后,比較會(huì)發(fā)現(xiàn)表emp_01中name字段的數(shù)據(jù)類(lèi)型已經(jīng)修改成VARCHAR(28),name字段的數(shù)據(jù)類(lèi)型修改成功。

圖4-10 修改字段的數(shù)據(jù)類(lèi)型

圖4-11 查看修改后的字段數(shù)據(jù)類(lèi)型

4.4.3 修改數(shù)據(jù)表的字段名

數(shù)據(jù)表中的字段名稱(chēng)定好之后,它不是一成不變的,可以根據(jù)需要對(duì)字段名稱(chēng)進(jìn)行修改。MySQL中修改表字段名的語(yǔ)法格式如下:

    ALTER TABLE <表名> CHANGE <舊字段名> <新字段名> <新數(shù)據(jù)類(lèi)型>;

主要參數(shù)介紹如下。

  • 表名:要修改的字段名所在的數(shù)據(jù)表。
  • 舊字段名:指修改前的字段名。
  • 新字段名:指修改后的字段名。
  • 新數(shù)據(jù)類(lèi)型:指修改后的數(shù)據(jù)類(lèi)型,如果不需要修改字段的數(shù)據(jù)類(lèi)型,可以將新數(shù)據(jù)類(lèi)型設(shè)置成與原來(lái)一樣即可,但數(shù)據(jù)類(lèi)型不能為空。

【實(shí)例6】將數(shù)據(jù)表emp_01中的name字段名稱(chēng)改為newname,輸入如下語(yǔ)句:

    ALTER TABLE emp_01 CHANGE name newname VARCHAR(28);

執(zhí)行結(jié)果如圖4-12所示。

使用DESC查看表emp_01,會(huì)發(fā)現(xiàn)字段名稱(chēng)已經(jīng)修改成功,結(jié)果如圖4-13所示,從結(jié)果可以看出,name字段的名稱(chēng)已經(jīng)修改為newname。

圖4-12 修改數(shù)據(jù)表字段的名稱(chēng)

圖4-13 查看修改后的字段名稱(chēng)

注意:由于不同類(lèi)型的數(shù)據(jù)在機(jī)器中的存儲(chǔ)方式及長(zhǎng)度并不相同,修改數(shù)據(jù)類(lèi)型可能會(huì)影響數(shù)據(jù)表中已有的數(shù)據(jù)記錄。因此,當(dāng)數(shù)據(jù)庫(kù)中已經(jīng)有數(shù)據(jù)時(shí),不要輕易修改數(shù)據(jù)類(lèi)型。

4.4.4 在數(shù)據(jù)表中添加字段

當(dāng)數(shù)據(jù)表創(chuàng)建完成后,如果字段信息不能滿(mǎn)足需要,可以根據(jù)需要在數(shù)據(jù)表中添加新的字段。在MySQL中,添加新字段的語(yǔ)法格式如下:

主要參數(shù)介紹如下。

  • 表名:要添加新字段的數(shù)據(jù)表名稱(chēng)。
  • 新字段名:需要添加的字段名稱(chēng)。
  • 約束條件:設(shè)置新字段的完整約束條件。
  • FIRST:可選參數(shù),其作用是將新添加的字段設(shè)置為表的第一個(gè)字段。
  • AFTER:可選參數(shù),其作用是將新添加的字段添加到指定的“已存在字段名”的后面。

【實(shí)例7】在數(shù)據(jù)表emp_01中添加一個(gè)字段city,輸入如下語(yǔ)句:

    ALTER TABLE emp_01 ADD city VARCHAR(20);

執(zhí)行結(jié)果如圖4-14所示。

使用DESC查看表emp_01,會(huì)發(fā)現(xiàn)在數(shù)據(jù)表的最后添加了一個(gè)名為city的字段,結(jié)果如圖4-15所示,默認(rèn)情況下,該字段放在最后一行。

圖4-14 添加字段city

圖4-15 查看添加的字段city

【實(shí)例8】在數(shù)據(jù)表emp_01中添加一個(gè)INT類(lèi)型的字段newid,SQL語(yǔ)句如下:

    ALTER TABLE emp_01 ADD newid INT FIRST;

執(zhí)行結(jié)果如圖4-16所示。

使用DESC查看表emp_01,會(huì)發(fā)現(xiàn)在表的第一列添加了一個(gè)名為newid的INT(11)類(lèi)型字段,結(jié)果如圖4-17所示。

除了在數(shù)據(jù)表最后或第一行添加字段外,還可以在表的指定列之后添加一個(gè)字段。

圖4-16 添加字段newid

圖4-17 查看添加的字段newid

【實(shí)例9】在數(shù)據(jù)表emp_01中sex行下添加一個(gè)INT類(lèi)型的字段age,SQL語(yǔ)句如下:

    ALTER TABLE emp_01 ADD age INT AFTER sex;

執(zhí)行結(jié)果如圖4-18所示。

使用DESC查看表emp_01,結(jié)果如圖4-19所示。從結(jié)果可以看出,emp_01表中增加了一個(gè)名稱(chēng)為age的字段,其位置在指定的sex字段后面,添加字段成功。

圖4-18 添加字段age

圖4-19 查看添加的字段age

4.4.5 修改字段的排序方式

對(duì)于已經(jīng)創(chuàng)建好的數(shù)據(jù)表,用戶(hù)可以根據(jù)實(shí)際需要,來(lái)修改字段的排列順序。在MySQL中,可以通過(guò)ALTER TABLE來(lái)改變表中字段的相對(duì)位置。語(yǔ)法格式如下:

    ALTER TABLE <表名> MODIFY <字段1> <數(shù)據(jù)類(lèi)型> FIRST|AFTER <字段2>;

主要參數(shù)介紹如下。

  • 字段1:指要修改位置的字段。
  • 數(shù)據(jù)類(lèi)型:指“字段1”的數(shù)據(jù)類(lèi)型。
  • FIRST:為可選參數(shù),指將“字段1”修改為表的第一個(gè)字段。
  • AFTER字段2:指將“字段1”插入到“字段2”后面。

【實(shí)例10】將數(shù)據(jù)表emp_01中的id字段修改為表的第一個(gè)字段,SQL語(yǔ)句如下:

    ALTER TABLE emp_01 MODIFY id int FIRST;

執(zhí)行結(jié)果如圖4-20所示。

使用DESC查看表emp_01,發(fā)現(xiàn)字段id已經(jīng)被移至表的第一行,結(jié)果如圖4-21所示。

圖4-20 修改字段id的位置

圖4-21 查看字段id的順序

另外,還可以根據(jù)需要修改字段到數(shù)據(jù)表的指定字段之后。

【實(shí)例11】將數(shù)據(jù)表emp_01中的name字段插入到salary字段后面,輸入語(yǔ)句如下:

    ALTER TABLE emp_01 MODIFY name VARCHAR(28) AFTER salary;

執(zhí)行結(jié)果如圖4-22所示。

使用DESC查看表emp_01,執(zhí)行結(jié)果如圖4-23所示。從結(jié)果可以看到,emp_01表中的字段name已經(jīng)被移至salary字段之后。

圖4-22 修改name字段的位置

圖4-23 移動(dòng)了字段name的位置

4.4.6 刪除不需要的字段

當(dāng)數(shù)據(jù)表中的字段不需要時(shí),可以將其從數(shù)據(jù)表中刪除。在MySQL中,刪除字段是將數(shù)據(jù)表中的某一個(gè)字段從表中移除,語(yǔ)法格式如下:

    ALTER TABLE <表名> DROP <字段名>;

主要參數(shù)介紹如下。

  • 表名:需要?jiǎng)h除的字段所在的數(shù)據(jù)表。
  • 字段名:指需要從表中刪除的字段的名稱(chēng)。

【實(shí)例12】刪除數(shù)據(jù)表emp_01表中的newid字段。輸入的語(yǔ)句如下:

    ALTER TABLE emp_01 DROP newid;

執(zhí)行結(jié)果如圖4-24所示。

使用DESC查看表emp_01,結(jié)果如圖4-25所示。從結(jié)果可以看出,emp_01表中已經(jīng)不存在名稱(chēng)為newid的字段,刪除字段成功。

圖4-24 刪除字段newid

圖4-25 查看刪除字段后的表結(jié)構(gòu)

主站蜘蛛池模板: 房产| 丹阳市| 永泰县| 东丽区| 清徐县| 嵊泗县| 株洲市| 腾冲县| 丹棱县| 深水埗区| 波密县| 亚东县| 大连市| 北辰区| 天峨县| 鄂州市| 峡江县| 昌黎县| 宾川县| 武乡县| 绥德县| 临颍县| 阿拉善左旗| 清水县| 平原县| 桃园县| 新乡县| 武功县| 治县。| 玛沁县| 常州市| 唐河县| 三门峡市| 吉隆县| 顺义区| 句容市| 潍坊市| 杂多县| 南宫市| 朔州市| 阿瓦提县|