- MySQL入門(mén)很輕松(微課超值版)
- 云尚科技
- 2330字
- 2020-09-18 11:30:47
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)
- CMDB分步構(gòu)建指南
- Windows系統(tǒng)管理與服務(wù)配置
- INSTANT FreeMarker Starter
- Neo4j Essentials
- Java面向?qū)ο蟪绦蜷_(kāi)發(fā)及實(shí)戰(zhàn)
- Banana Pi Cookbook
- 單片機(jī)應(yīng)用技術(shù)
- Node.js Design Patterns
- Visual C#通用范例開(kāi)發(fā)金典
- Learning OpenStack Networking(Neutron)(Second Edition)
- Android傳感器開(kāi)發(fā)與智能設(shè)備案例實(shí)戰(zhàn)
- Learning Material Design
- JavaScript+jQuery網(wǎng)頁(yè)特效設(shè)計(jì)任務(wù)驅(qū)動(dòng)教程
- jQuery for Designers Beginner's Guide Second Edition
- Python數(shù)據(jù)可視化之美:專(zhuān)業(yè)圖表繪制指南(全彩)