首頁 > 常見問題 > 主體

資料定義語言是什麼

(*-*)浩
發布: 2019-11-16 14:54:08
原創
9278 人瀏覽過

資料定義語言 (Data Definition Language, DDL) 是SQL語言集中負責資料結構定義與資料庫物件定義的語言,由CREATE、ALTER與DROP三個語法組成。

資料定義語言是什麼

最早是由Codasyl (Conference on Data Systems Languages) 資料模型開始,現在納入SQL 指令中作為其中一個子集。

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

Sql語句分為三大類:

資料定義語言,負責建立、修改、刪除表格、索引、檢視、函數、預存程序和觸發器等物件;

資料操縱語言,負責資料庫中資料的插入、修改、刪除等操作;

##資料控制語言,用來授予和撤銷使用者權限。

範例

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為交易記錄檔的聲明。若需要更進階的設置,則還有 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 來聲明,主鍵則是用PRIMARK KEY 來聲明,計算型字段(Computed Field)則是直接給定表達式等等,CREATE TABLE 指令很常用,但若設置起來會較為複雜,因此許多資料庫管理人員都會使用GUI工具來設計。

其他像是:

CREATE INDEX:建立資料表索引。

CREATE PROCEDURE:建立預存程式。

CREATE FUNCTION:建立使用者函數。

CREATE VIEW:建立檢視表。

CREATE TRIGGER:建立觸發程序。

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

以上是資料定義語言是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!