DDL
數(shù)據(jù)庫模式定義語言DDL(Data Definition Language),是用于描述數(shù)據(jù)庫中要存儲(chǔ)的現(xiàn)實(shí)世界實(shí)體的語言。一個(gè)數(shù)據(jù)庫模式包含該數(shù)據(jù)庫中所有實(shí)體的描述定義。這些定義包括結(jié)構(gòu)定義、操作方法定義等。
DDL描述的模式,必須由計(jì)算機(jī)軟件進(jìn)行編譯,轉(zhuǎn)換為便于計(jì)算機(jī)存儲(chǔ)、查詢和操縱的格式,完成這個(gè)轉(zhuǎn)換工作的程序稱為模式編譯器。
模式編譯器處理模式定義主要產(chǎn)生兩種類型的數(shù)據(jù):數(shù)據(jù)字典以及數(shù)據(jù)類型和結(jié)構(gòu)定義。
數(shù)據(jù)字典和數(shù)據(jù)庫內(nèi)部結(jié)構(gòu)信息是創(chuàng)建該模式所對(duì)應(yīng)的數(shù)據(jù)庫的依據(jù),根據(jù)這些信息創(chuàng)建每個(gè)數(shù)據(jù)庫對(duì)應(yīng)的邏輯結(jié)構(gòu);對(duì)數(shù)據(jù)庫數(shù)據(jù)的訪問、查詢也根據(jù)模式信息決定數(shù)據(jù)存取的方式和類型,以及數(shù)據(jù)之間的關(guān)系和對(duì)數(shù)據(jù)的完整性約束。
數(shù)據(jù)字典是模式的內(nèi)部信息表示,數(shù)據(jù)字典的存儲(chǔ)方式對(duì)不同的DBMS各不相同。
數(shù)據(jù)類型和結(jié)構(gòu)的定義,是指當(dāng)應(yīng)用程序與數(shù)據(jù)庫連接操作時(shí),應(yīng)用程序需要了解產(chǎn)生和提取的數(shù)據(jù)類型和結(jié)構(gòu)。是為各種宿主語言提供的用戶工作區(qū)的數(shù)據(jù)類型和結(jié)構(gòu)定義,使用戶工作區(qū)和數(shù)據(jù)庫的邏輯結(jié)構(gòu)相一致,減少數(shù)據(jù)的轉(zhuǎn)換過程,這種數(shù)據(jù)類型和結(jié)構(gòu)的定義通常用一個(gè)頭文件來實(shí)現(xiàn)。
數(shù)據(jù)庫模式的定義通常有兩種方式: 交互方式定義模式和通過數(shù)據(jù)描述語言 DDL 描述文本定義模式。 常見的DDL語句
CREATE DATABASE
創(chuàng)建數(shù)據(jù)庫
CREATE {DATABASE | SCHEMA} db_name
| [DEFAULT] COLLATE collation_name
CREATE TABLE 創(chuàng)建數(shù)據(jù)庫表格
CREATE [TEMPORARY] TABLE tbl_name
ALTER TABLE
修改數(shù)據(jù)庫表格
ALTER TABLE tbl_name
ADD [COLUMN] column_definition [FIRST | AFTER col_name ]
| ADD [COLUMN] (column_definition,...)
| ADD INDEX (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
PRIMARY KEY (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
UNIQUE (index_col_name,...)
| ADD (index_col_name,...)
| ADD [CONSTRAINT [symbol]]
FOREIGN KEY (index_col_name,...)
[reference_definition]
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
| CHANGE [COLUMN] old_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP INDEX index_name
| DROP FOREIGN KEY fk_symbol
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO] new_tbl_name
| ORDER BY col_name
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
| [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]
| DISCARD TABLESPACE
| IMPORT TABLESPACE
DROP TABLE
刪除數(shù)據(jù)庫表格
DROP [TEMPORARY] TABLE
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE]
CREATE VIEW
創(chuàng)建視圖
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
[WITH [CASCADED | LOCAL] CHECK OPTION]
ALTER VIEW
修改視圖
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
DROP VIEW
刪除視圖
DROP VIEW
view_name [, view_name] ...
[RESTRICT | CASCADE]