天天看點

MySQL筆記-DDL語句

本節涉及MySQL關鍵字:create、drop、alter、truncate、change、modify等。

一、常見資料庫對象介紹

資料表是最基本的資料庫對象,也是存儲資料的邏輯單元。但資料庫裡不隻包含資料表,通常包含以下幾種常見資料庫對象:

1、資料表:table,存儲資料的邏輯單元,行為記錄,列為字段。

2、視圖:view,一個或多個資料表裡資料的邏輯顯示。視圖并不存儲資料。

3、索引:index,用于提高查詢性能,相當于書的目錄。

4、函數:fuction,用于完成一次特點的計算,具有一個傳回值。

5、存儲過程:procedure,用于完成一次完整的業務處理,無傳回值,但可通過傳出參數将多個值傳給調用環境(?)。

6、觸發器:trigger,相當于一個事件監聽器,當資料庫發生特定事件後,被觸發,完成相應處理。

7、限制:constraint,用于保證資料完整性的規則。

注:關于view、index、function等的使用方法與作用,後面單獨學習讨論。

create、drop與alter等關鍵字後可緊跟不同的資料庫對象關鍵字,表示具體操作哪種資料庫對象,如create table table1,create view ,……

二、DDL 文法

1、create建立

*建立并使用資料庫:

create database dbName;

use dbName;

*建立表,基本文法:

create table [模式名.]表名(

columnName1 dataType [default value1],

……

);

注:default關鍵字可指定預設值;最後一列不用逗号結尾!

MySQL筆記-DDL語句

*此外,可通過從其他表中的查詢結果建立新表:

create table tableName as subQuery;

如:create table newInfo as SELECT * FROM student; 将建立一個與student一樣的表newInfo。

注:MySQL支援的資料類型,小節單獨讨論。

2、drop删除

*删除資料庫:drop database dbName;

*删除表:drop table tableName;

說明:删除表或資料庫後,對應的對象不再存在,相關聯的索引、限制也被删除。

3、alter修改表結構

alter關鍵字通常可用于添加字段、删除字段、修改字段、修改表名。

1)、添加字段(add)。文法:

alter table 表名 add(

columnName dataType [default value],

……

);

MySQL筆記-DDL語句

注意:添加字段不可指定非空限制,除非給新增的字段添加了預設值,因為原來表中的記錄該行是NULL。

2)、删除字段(drop)。文法:

alter table 表名 drop columnName;

3)、修改字段(modify)。文法:

alter table 表名 modify columnName dataType [default value] [first|after column_name];

說明:MySQL的modify隻能同時修改一個字段,而Oracle等資料庫的modify可同時修改多個字段,文法同add增加字段相似。

4)、修改表名(rename)。文法:

alter table 表名 rename to newName;

例:alter table student rename to students;

5)、修改字段(change)。文法:

alter table 表名 change oldColumnName newColumnName dataType [default value] [first|after column_name];

注:modify與change都能修改字段,但change比modify多一個修改字段名的能力,故change關鍵字後接舊與新的字段名。

4、truncate截斷表

大多數資料庫将truncate歸為DDL 處理,被稱為“截斷”某個表——删除表裡的全部資料,但保留表結構,比DML裡的delete指令快許多,因為delete是删除指定的記 錄,還需要查找。 

文法:

truncate 表名;

MySQL筆記-DDL語句