My SQL筆記一(表的建立、修改、刪除)
1 表的建立、修改及刪除
分別說明MySQL資料庫中表在建立、修改和刪除過程中的各種操作和約束處理。
-
- 建立表
CREAT TABEL IF NOT EXISTS “tabel_name”(column_name column_type);
設定主鍵
分單欄位主鍵和多欄位主鍵。
單欄位主鍵語法:屬性名 屬性型別 PRIMARY KEY
多欄位主鍵語法:PRIMARY KEY(屬性名1,屬性名2,…,屬性名n)
設定外來鍵
語法:CONSTRAINT 外來鍵別名 FOREIGH KEY(屬性1.1,屬性1.2,…,屬性1.n) REFERENCES 表名(屬性2.1,屬性2.2,…,屬性2.n)
其中,外來鍵別名是外來鍵的代號,屬性1引數列表是子表中設定的外來鍵;表明是指父表的表名,屬性2引數列表是父表的主鍵。
設定非空
語法:屬性名 資料型別 NOT NULL
唯一性約束
語法:屬性名 資料型別 UNIQUE
唯一性約束將保證所有記錄中該欄位的值不能重複出現。
設定自增
語法:屬性名 資料型別 AUTO_INCREMENT
一個表只能有一個欄位使用AUTO_INCREMENT約束,且該欄位必須為主鍵的一部分。資料型別可以使任何整數型別。預設情況下,欄位值從1開始自增。
預設值
語法:屬性名 資料型別 DEFAULT 預設值
指定預設值後,在插入新的記錄時,如果沒有為這個欄位賦值,那麼DB將自動為這個欄位插入預設值。如果沒有使用DEFAULT指定預設值,也沒有指定欄位為非空,那麼欄位的預設值為空(NULL)。
ENGINE 設定引擎,CHARSET設定編碼。
例子:在資料庫RUNOOB建立資料表runoob_tbl:
USE RUNOOB;
CREAT TABEL IF NOT EXISTS `runoob_tb1`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_anthor` VARCHAR(30) NOT NULL,
`submission_date` DATE,
PRIMARY KEY(`runoob_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
- 查看錶結構
查看錶結構基本語句
語法:DESCRIBE 表名;其中,DESCRIBE可縮寫為DESC
該語法查看錶的基本結構,包括:欄位名、欄位資料型別、是否為主鍵和預設值等。
DESC runoob_tb1(column_name column_type);
查看錶詳細結構語句
語法:SHOW CREATE TABLE 表名
除可查看錶基本結構資訊外,還可查看錶預設的儲存引擎和欄位編碼、完整性約束條件等資訊。加上\G可美化展示效果。
-
- 修改表
修改表本身的資訊,包括欄位、資料型別、約束等內容。
修改表名
語法:ALTER TABLE 就表名 RENAME [TO] 新表名;
同一個DB中,表名是唯一的。
修改欄位的資料型別
語法:ALTER TABLE 表名 MODIFY 屬性名 資料型別;
屬性名即欄位名。
修改欄位名
語法:ALTER TABLE 表名 CHANGE 舊屬性名 新屬性名 新資料型別;
如果資料型別不需要修改,將新資料型別設定成與原來的一樣。
增加欄位
語法:ALTER TABLE 表名 屬性名1 資料型別 [完整性約束條件] [FIRST] [AFTER 屬性名2];
其中,“屬性名1”引數指需要增加的欄位的名稱;“資料型別”為新增欄位的資料型別;“完整性約束條件”是可選的,設定新增欄位的完整性約束條件;“FIRST”是可選的,作用是將新增欄位設定為表中的第一個欄位;“AFTER 屬性名2”是可選引數,作用是將新增欄位新增到“屬性名2”所指的欄位後。如果SQL中沒有“FIRST”、“AFTER 屬性名2”制定新增引數的位置,新增的欄位預設為是表的最後一個欄位。
刪除欄位
語法:ALTER TABLE 表名DROP 屬性名;
屬性名為需要從表中刪除的欄位的名稱。
DROP TABLE runoob_tb1;
修改欄位的排列位置
語法:ALTER TABLE 表名 MODIFY 屬性名1 資料型別 FIRST|AFTER 屬性名2;
其中,“屬性名1”引數制定需要修改位置的欄位的名稱;“資料型別”指“屬性名1”的資料型別;“FIRST”引數指定位置為表的第一個位置;“AFTER 屬性名2”引數指定“屬性名1”插入在“屬性名2”之後。
-
- 更改表的儲存引擎
語法:ALTER TABLE 表名 ENGINE=儲存引擎;
其中,儲存引擎為設定的新的儲存引擎的名稱。
-
- 刪除外來鍵約束
語法:ALTER TABLE 表名 DROP FOREIGH KEY 外來鍵別名;
其中外來鍵別名引數指建立表時設定的外來鍵的別號。
-
- 刪除表
在刪除存在外來鍵關係的表時,通過先刪除子表的外來鍵約束再刪除父表的方法可以不影響子表中的資料保證資料庫的安全。