fbpx
维基百科

資料定義語言

資料定義語言(data definition language,DDL)屬於DBMS語言的一種,用於明確定義概念綱要(conceptual schemas)及內部綱要(internal schemas),DBMS內的DDL編譯器(compiler)能夠處理DDL,識別綱要建構物(schema constructs)的描述(description)並加以存入DBMS目錄中的綱要描述(schema description)[1]。 為SQL語言集中負責資料結構定義與資料庫物件定義的語言,由CREATEALTERDROP三個語法所組成,最早是由Codasyl(Conference on Data Systems Languages)資料模型開始,現在被納入SQL指令中作為其中一個子集。

語法結構

目前大多數的DBMS都支援對資料庫物件的DDL操作,部份資料庫 (如 PostgreSQL) 可把DDL放在交易指令中,也就是它可以被撤回 (Rollback)。較新版本的DBMS會加入DDL專用的觸發程序,讓資料庫管理員可以追蹤來自DDL的修改。

CREATE

CREATE 是負責資料庫物件的建立,舉凡資料庫資料表資料庫索引預存程序、使用者函數、觸發程序或是使用者自定型別等物件,都可以使用 CREATE 指令來建立,而為了各式資料庫物件的不同,CREATE 也有很多的參數。

例如,CREATE DATABASE (建立資料庫) 的指令為:

CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = 'saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) 

其中的ON為資料庫檔案的宣告,而LOG ON為交易記錄檔的宣告。 若需要更進階的設定,則還有 FORWITH 以及 COLLATE等等。

又例如,CREATE TABLE (建立資料表) 的指令為:

CREATE TABLE [dbo].[PurchaseOrderDetail] (  [PurchaseOrderID] [int] NOT NULL REFERENCES Purchasing.PurchaseOrderHeader(PurchaseOrderID), -- 具參考完整性限制欄位  [LineNumber] [smallint] NOT NULL,  [ProductID] [int] NULL REFERENCES Production.Product(ProductID), -- 具參考完整性限制欄位  [UnitPrice] [money] NULL,  [OrderQty] [smallint] NULL,  [ReceivedQty] [float] NULL,  [RejectedQty] [float] NULL,  [DueDate] [datetime] NULL,  [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_PurchaseOrderDetail_rowguid] DEFAULT (newid()), -- 具限制欄位,並有預設值  [ModifiedDate] [datetime] NOT NULL CONSTRAINT [DF_PurchaseOrderDetail_ModifiedDate] DEFAULT (getdate()), -- 具限制欄位,並有預設值  [LineTotal] AS (([UnitPrice]*[OrderQty])),  [StockedQty] AS (([ReceivedQty]-[RejectedQty])), CONSTRAINT [PK_PurchaseOrderDetail_PurchaseOrderID_LineNumber] -- 主鍵宣告  PRIMARY KEY CLUSTERED ([PurchaseOrderID], [LineNumber])  WITH (IGNORE_DUP_KEY = OFF) )  ON [PRIMARY] 

其中,每個欄位的格式都有定義,並且若有需要建立參考完整性的連結時,可以使用 REFERENCES 來宣告,主鍵則是用PRIMARY KEY 來宣告,計算型欄位(Computed Field)則是直接給定運算式等等,CREATE TABLE 指令很常用,但若設定起來會較為複雜,因此很多資料庫管理人員都會使用GUI工具來設計。

其他像是:

  • CREATE INDEX:建立資料表索引。
  • CREATE PROCEDURE:建立預存程序。
  • CREATE FUNCTION:建立使用者函數。
  • CREATE VIEW:建立檢視表。
  • CREATE TRIGGER:建立觸發程序。

等等,都是使用來建立不同資料庫物件的指令。

ALTER

ALTER 是負責資料庫物件修改的指令,相較於 CREATE 需要定義完整的資料物件參數,ALTER 則是可依照要修改的幅度來決定使用的參數,因此使用上並不會太困難,例如:

ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL ; -- 在資料表 doc_exa 中加入一個新的欄位,名稱為 column_b,資料型別為 varchar(20),允許 NULL 值。 ALTER TABLE doc_exb DROP COLUMN column_b ; -- 在資料表 doc_exb 中移除 column_b 欄位。 alter table scm.scm_d_pp_detail_1h change column PP_ID_2H PP_ID_1H varchar(50) -- 列改名 alter table test modify address char(10) --修改表列类型 

DROP

DROP 則是刪除資料庫物件的指令,並且只需要指定要刪除的資料庫物件名稱即可,在 DDL 語法中算是最簡單的。

例如:

DROP TABLE myTable; -- 刪除 myTable 資料表。 DROP VIEW myView; -- 刪除 myView 檢視表。 

DBMS語言

其他DBMS語言包括:

參考資料

  1. MySQL SQL Syntax (页面存档备份,存于互联网档案馆
  2. Oracle® Database SQL Language Reference[失效連結]
  3. Transact-SQL Reference (页面存档备份,存于互联网档案馆
  4. PostgreSQL SQL Commands (页面存档备份,存于互联网档案馆
  1. ^ 1.0 1.1 Elmasri, R., & Navathe, S. B. (2017). Fundamentals of database systems. Hoboken, NJ: Pearson.

資料定義語言, 此條目已列出參考文獻, 但因為沒有文內引註而使來源仍然不明, 2017年5月29日, 请加上合适的文內引註来改善这篇条目, data, definition, language, 屬於dbms語言的一種, 用於明確定義概念綱要, conceptual, schemas, 及內部綱要, internal, schemas, dbms內的ddl編譯器, compiler, 能夠處理ddl, 識別綱要建構物, schema, constructs, 的描述, description, 並加以存入dbms目. 此條目已列出參考文獻 但因為沒有文內引註而使來源仍然不明 2017年5月29日 请加上合适的文內引註来改善这篇条目 資料定義語言 data definition language DDL 屬於DBMS語言的一種 用於明確定義概念綱要 conceptual schemas 及內部綱要 internal schemas DBMS內的DDL編譯器 compiler 能夠處理DDL 識別綱要建構物 schema constructs 的描述 description 並加以存入DBMS目錄中的綱要描述 schema description 1 為SQL語言集中負責資料結構定義與資料庫物件定義的語言 由CREATE ALTER與DROP三個語法所組成 最早是由Codasyl Conference on Data Systems Languages 資料模型開始 現在被納入SQL指令中作為其中一個子集 目录 1 語法結構 1 1 CREATE 1 2 ALTER 1 3 DROP 2 DBMS語言 3 參考資料語法結構 编辑目前大多數的DBMS都支援對資料庫物件的DDL操作 部份資料庫 如 PostgreSQL 可把DDL放在交易指令中 也就是它可以被撤回 Rollback 較新版本的DBMS會加入DDL專用的觸發程序 讓資料庫管理員可以追蹤來自DDL的修改 CREATE 编辑 CREATE 是負責資料庫物件的建立 舉凡資料庫 資料表 資料庫索引 預存程序 使用者函數 觸發程序或是使用者自定型別等物件 都可以使用 CREATE 指令來建立 而為了各式資料庫物件的不同 CREATE 也有很多的參數 例如 CREATE DATABASE 建立資料庫 的指令為 CREATE DATABASE Sales ON NAME Sales dat FILENAME saledat mdf SIZE 10 MAXSIZE 50 FILEGROWTH 5 LOG ON NAME Sales log FILENAME salelog ldf SIZE 5 MB MAXSIZE 25 MB FILEGROWTH 5 MB 其中的ON為資料庫檔案的宣告 而LOG ON為交易記錄檔的宣告 若需要更進階的設定 則還有 FOR 和 WITH 以及 COLLATE等等 又例如 CREATE TABLE 建立資料表 的指令為 CREATE TABLE dbo PurchaseOrderDetail PurchaseOrderID int NOT NULL REFERENCES Purchasing PurchaseOrderHeader PurchaseOrderID 具參考完整性限制欄位 LineNumber smallint NOT NULL ProductID int NULL REFERENCES Production Product ProductID 具參考完整性限制欄位 UnitPrice money NULL OrderQty smallint NULL ReceivedQty float NULL RejectedQty float NULL DueDate datetime NULL rowguid uniqueidentifier ROWGUIDCOL NOT NULL CONSTRAINT DF PurchaseOrderDetail rowguid DEFAULT newid 具限制欄位 並有預設值 ModifiedDate datetime NOT NULL CONSTRAINT DF PurchaseOrderDetail ModifiedDate DEFAULT getdate 具限制欄位 並有預設值 LineTotal AS UnitPrice OrderQty StockedQty AS ReceivedQty RejectedQty CONSTRAINT PK PurchaseOrderDetail PurchaseOrderID LineNumber 主鍵宣告 PRIMARY KEY CLUSTERED PurchaseOrderID LineNumber WITH IGNORE DUP KEY OFF ON PRIMARY 其中 每個欄位的格式都有定義 並且若有需要建立參考完整性的連結時 可以使用 REFERENCES 來宣告 主鍵則是用PRIMARY KEY 來宣告 計算型欄位 Computed Field 則是直接給定運算式等等 CREATE TABLE 指令很常用 但若設定起來會較為複雜 因此很多資料庫管理人員都會使用GUI工具來設計 其他像是 CREATE INDEX 建立資料表索引 CREATE PROCEDURE 建立預存程序 CREATE FUNCTION 建立使用者函數 CREATE VIEW 建立檢視表 CREATE TRIGGER 建立觸發程序 等等 都是使用來建立不同資料庫物件的指令 ALTER 编辑 ALTER 是負責資料庫物件修改的指令 相較於CREATE 需要定義完整的資料物件參數 ALTER 則是可依照要修改的幅度來決定使用的參數 因此使用上並不會太困難 例如 ALTER TABLE doc exa ADD column b VARCHAR 20 NULL 在資料表 doc exa 中加入一個新的欄位 名稱為 column b 資料型別為 varchar 20 允許 NULL 值 ALTER TABLE doc exb DROP COLUMN column b 在資料表 doc exb 中移除 column b 欄位 alter table scm scm d pp detail 1h change column PP ID 2H PP ID 1H varchar 50 列改名 alter table test modify address char 10 修改表列类型 DROP 编辑 DROP 則是刪除資料庫物件的指令 並且只需要指定要刪除的資料庫物件名稱即可 在 DDL 語法中算是最簡單的 例如 DROP TABLE myTable 刪除 myTable 資料表 DROP VIEW myView 刪除 myView 檢視表 DBMS語言 编辑其他DBMS語言包括 儲存定義語言 Storage Definition Language SDL 視野定義語言 View Definition Language VDL 資料操縱語言 Data Manipulation Language DML 1 參考資料 编辑DDL MySQL SQL Syntax 页面存档备份 存于互联网档案馆 Oracle Database SQL Language Reference 失效連結 Transact SQL Reference 页面存档备份 存于互联网档案馆 PostgreSQL SQL Commands 页面存档备份 存于互联网档案馆 1 0 1 1 Elmasri R amp Navathe S B 2017 Fundamentals of database systems Hoboken NJ Pearson 取自 https zh wikipedia org w index php title 資料定義語言 amp oldid 72277939, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。