mysql資料庫教程-修改資料表結構與刪除表
修改資料表結構與刪除表
資料表一旦定義好之後,一般不需要再去修改資料表結構,尤其是已經儲存大量資料之後。表結構的變化尤其一些約束的改變會直接影響到儲存資料本身。但在一些條件下也是可以修改資料表結構的,如剛定義好的新錶,本節主要介紹資料表結構的修改語法及例項。
修改表的字段
學生資訊表結構描述
mysql資料庫教程-修改資料表結構與刪除表
班級資訊表結構描述
1、刪除字段
刪除字段操作主要從資料表中刪除某乙個字段,刪除字段語法描述如下:
mysql資料庫教程-修改資料表結構與刪除表
刪除資料表字段
其中alter table與drop語法關鍵字,所需提供引數為待刪除資料表名字與待刪除欄位名,如我們要從學生資訊表中刪除學生性別stu***字段,實現**如下:
alter table studentinfor drop stu***;
執行結果如下:
mysql資料庫教程-修改資料表結構與刪除表
刪除結果
2、新增新字段
新增新字段也是資料表結構修改的常用操作之一,在新增新字段時需要給出欄位名稱、型別及新增位置。新增新字段語法描述如下:
mysql資料庫教程-修改資料表結構與刪除表
新增新字段語法
在語法中方括號部分表示可以省略,針對我們剛才操作的學生資訊表,我們刪除性別欄位後,再可以通過新增新字段實現性別欄位的新增。實現**如下:
alter table studentinfor add stu*** varchar(1) not null after stubirth
我們在studentinfor表中stubirth欄位之後新增了乙個stu***字段,並定義了字段型別與非空約束。
3、修改欄位名稱與型別
該命令可以同時修改欄位名稱與資料型別,基本語法描述如下:
mysql資料庫教程-修改資料表結構與刪除表
修改欄位名稱、型別
命令使用語法關鍵字alter table 和 change實現欄位名稱與型別的修改,如學生資訊表中,我們需要修改學生生日stubirth欄位為年齡,資料型別從varchar改為int。實現**描述如下:
alter table studentinfor change stubirth stuage int
4、修改字段資料型別
該命令只用於實現字段資料型別修改,命令語法描述如下:
mysql資料庫教程-修改資料表結構與刪除表
修改字段資料型別命令
該命令使用alter table與modify關鍵字實現字段資料型別修改,針對學生資訊表,我們可以將家庭住址stuhome欄位由varchar(25) 改為char(50),實現**描述如下:
alter table studentinfor modify stuhome char(50)
修改約束條件
表的約束條件修改主要包括刪除約束條件與新增約束條件等操作。新增約束時需要考慮表中對應字段儲存的值是否符合約束要求。如果不符合在新增約束時可能會出錯。
1、新增約束
新增約束需要指明對應的字段,約束名及約束型別,新增約束命令描述如下:
mysql資料庫教程-修改資料表結構與刪除表
新增約束命令
新增約束命令如上圖所示,如針對學生資訊表,我們需要對家庭住址字段設定唯一約束,則可通過新增約束命令實現。**如下:
alter table studentinfor add constraint home_unqiue unique(stuhome)
需要注意乙個問題如果要對某一欄位新增預設值約束,則需要使用以下語法:
alter table 表明
alter 欄位名 set default 『預設值』
如我們需要對家庭住址字段設定預設值山東濟南,則可使用以下命令:
alter table studentinfor
alter stuhome set default 『山東濟南』
2、刪除約束
刪除約束時需要針對不同約束型別單獨編寫刪除命令實現刪除,刪除命令語法描述如下:
mysql資料庫教程-修改資料表結構與刪除表
刪除約束
刪除約束命令如上圖所示,分別用於實現主鍵刪除、外來鍵刪除、唯一刪除 與預設值刪除。例項不再一一說明。
3、修改資料表名字
該命令主要用於實現資料表名字修改,語法如下:
mysql資料庫教程-修改資料表結構與刪除表
修改資料表名字
我們可以使用兩種方法實現資料表名字修改,例項如下:
alter table studentinfor rename to stuinfor
刪除資料表
刪除資料表時需要注意表與表之間存在的關係,如外來鍵關係,需要注意刪除的順序,首先刪除外來鍵依賴的表,再刪除具有外來鍵的表。刪除資料表語法與例項如下:
drop table 資料表名
drop table studentinfor
青禾BBS資料庫查詢語句(動網)
資料字典 查詢使用者資訊 select from dbo.dv user where username 茗跡 查詢使用者發帖總數 select usertopic from dbo.dv user where username 茗跡 查詢使用者被刪的帖子數 select userdel from d...
Mysql碎片恢復 mysql資料庫碎片整理
1 drop table table name 立刻釋放磁碟空間 不管是 innodb和myisam 2 truncate table table name 立刻釋放磁碟空間 不管是 innodb和myisam 3 delete from table name刪除表的全部資料,對於myisam 會立...
mysql資料庫教程 外來鍵 MySQL資料庫外來鍵
設定外來鍵 外來鍵及功能 成績表 參照表也叫子表 中的學號來自學生表 被參照表也叫父表 成績表中的課程號來自課程表 當要刪除或更新被參照表中的給字段的值時,參照錶該字段的值如何改變。在on delete on update設定參照動作 restrict 限制 cascade 級聯 set null ...