Rumah >masalah biasa >数据定义语言是什么
数据定义语言 (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:建立触发程序。
等等,都是使用来建立不同数据库对象的指令。
Atas ialah kandungan terperinci 数据定义语言是什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!