數據表一旦定義好之後,一般不需要再去修改數據表結構,尤其是已經存儲大量數據之後。表結構的變化尤其一些約束的改變會直接影響到存儲數據本身。但在一些條件下也是可以修改數據表結構的,如剛定義好的新表,本節主要介紹數據表結構的修改語法及實例。
01修改表的欄位
修改表的欄位主要類型包括刪除欄位、添加新欄位、修改欄位名稱、修改欄位類型四種操作類型。我們以上一篇文章創建的數據表為例對修改表欄位進行說明。上節課我們創建了學生信息表與班級信息表,結構描述如下:
1、刪除欄位
刪除欄位操作主要從數據表中刪除某一個欄位,刪除欄位語法描述如下:
其中alter table與drop語法關鍵字,所需提供參數為待刪除數據表名字與待刪除欄位名,如我們要從學生信息表中刪除學生性別stusex欄位,實現代碼如下:
alter table studentinfor drop stuSex;執行結果如下:
2、添加新欄位
添加新欄位也是數據表結構修改的常用操作之一,在添加新欄位時需要給出欄位名稱、類型及添加位置。添加新欄位語法描述如下:
在語法中方括號部分表示可以省略,針對我們剛才操作的學生信息表,我們刪除性別欄位後,再可以通過添加新欄位實現性別欄位的添加。實現代碼如下:
ALTER TABLE studentinfor ADD stuSex VARCHAR(1) NOT NULL AFTER stuBirth我們在studentinfor表中stuBirth欄位之後新增了一個stuSex欄位,並定義了欄位類型與非空約束。
3、修改欄位名稱與類型
該命令可以同時修改欄位名稱與數據類型,基本語法描述如下:
命令使用語法關鍵字alter table 和 change實現欄位名稱與類型的修改,如學生信息表中,我們需要修改學生生日stuBirth欄位為年齡,數據類型從varchar改為int。實現代碼描述如下:
ALTER TABLE studentinfor CHANGE stuBirth stuAge INT
4、修改欄位數據類型
該命令只用於實現欄位數據類型修改,命令語法描述如下:
該命令使用alter table與modify關鍵字實現欄位數據類型修改,針對學生信息表,我們可以將家庭住址stuHome欄位由varchar(25) 改為char(50),實現代碼描述如下:
ALTER TABLE studentinfor MODIFY stuHome CHAR(50)
02修改約束條件
表的約束條件修改主要包括刪除約束條件與添加約束條件等操作。添加約束時需要考慮表中對應欄位存儲的值是否符合約束要求。如果不符合在添加約束時可能會出錯。
1、添加約束
添加約束需要指明對應的欄位,約束名及約束類型,添加約束命令描述如下:
添加約束命令如上圖所示,如針對學生信息表,我們需要對家庭住址欄位設置唯一約束,則可通過添加約束命令實現。代碼如下:
ALTER TABLE studentinfor ADD CONSTRAINT home_unqiue UNIQUE(stuHome)
需要注意一個問題如果要對某一欄位添加默認值約束,則需要使用以下語法:
ALTER TABLE 表明ALTER 欄位名 SET DEFAULT '默認值'如我們需要對家庭住址欄位設置默認值山東濟南,則可使用以下命令:
ALTER TABLE studentinforALTER stuHome SET DEFAULT '山東濟南'
2、刪除約束
刪除約束時需要針對不同約束類型單獨編寫刪除命令實現刪除,刪除命令語法描述如下:
刪除約束命令如上圖所示,分別用於實現主鍵刪除、外鍵刪除、唯一刪除 與默認值刪除。實例不再一一說明。
3、修改數據表名字
該命令主要用於實現數據表名字修改,語法如下:
我們可以使用兩種方法實現數據表名字修改,實例如下:
ALTER TABLE studentinfor RENAME TO stuinfor刪除數據表
刪除數據表時需要注意表與表之間存在的關係,如外鍵關係,需要注意刪除的順序,首先刪除外鍵依賴的表,再刪除具有外鍵的表。刪除數據表語法與實例如下:
drop table 數據表名drop table studentinfor
本百家號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可在評論區回復。更多程序設計相關教程及實例分享,期待大家關注與閱讀!