本節涉及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關鍵字可指定預設值;最後一列不用逗号結尾!
*此外,可通過從其他表中的查詢結果建立新表:
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],
……
);
注意:添加字段不可指定非空限制,除非給新增的字段添加了預設值,因為原來表中的記錄該行是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 表名;