当前位置:首页 > 百科

数据定义语言

数据定义语言 (Data Definition Language, DDL) 是SQ势大L语言集中负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三初反由个语法所组成,最早是由 Codasyl (Conference on Data S来自ystems Languages) 数据模型开始,现在被纳入 SQL 指令中作为其中一个子集。目前大多数的DBMS都支持对数据库对象的DDL操作,部份数360百科据库 (如 PostgreSQL) 可把DDL放在交易指令中,也就是它可以被撤回 (Rollback)。较新版本的DBMS会加入DD马克量械费L专用的触发程序,让数据库管理员可以约奏席百离光工追踪来自DDL的修改。.

  • 中文名 数据定义语言
  • 外文名 Data Definition Language
  • 简称  DDL
  • 组成 CREATE、ALTER与DROP

CREATE

  CREATE 来自是负责数据库对象的建360百科立,举凡数据库、数据表、数据库索引、预存胶染只当言气程序、用户函数、触发程序或其工是用户自定型别等对象,都可以使用 CREATE 指令来建立,而为了各式数据库对象的不同,CREATE 也有很多的参数。

  例如,CREATE DATABASE (建立数据库) 的指令为:

  CREATE DATAB律联两当刘务谈ASE Sales

  ON ( NAME = Sales_da调修烧胶已举难吸t, FILENAME = 'saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 )

  LOG ON ( NAME = Sales_log, FILENA善色些象婷期语相征ME = 'salelog.ldf', SIZE = 5MB, M践头二AXSIZE = 25MB, FILEGROWTH = 5MB )

  其中的ON为数据库文件的声明,而LOG ON为交易记录档的声明。 若需要更高级的设置,则还有 FOR 和 WITH 以及 COLLATE等等。

  又例如,CREATE 切装肥去TABLE (建立数据表) 的指令为:

  CREATE TABLE [dbo].[PurchaseOrderDetail]

  (

  [PurchaseOrderID] [i马握停杆nt] NOT NULL REFERENCES Purchasing.PurchaseOrderHeader(PurchaseOrderID), -- 具引用完整性限制字段

  [LineNumber] [smallint] NOT NULL,

  [Produc切谈杨片倍样tID] [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_PurchaseO丰露布rderDetail_rowg积级她站比验杂听球uid] DEFAULT (newid()), -上胞注灯静- 具限制字段,并有默认值

  [ModifiedDate] [datetime] NOT NULL CONSTRAINT [DF_PurchaseOrderDetail_ModifiedDate] DEFAULT (getdate()), -- 具限制字段,并有默认值

  [LineTotal] AS (([UnitPrice]*[OrderQty])),

  [StockedQty易统冲它源号以] AS (([Recei状增被阻看轮vedQty]-[RejectedQty])),

  CONSTRAINT [PK_Purch怀肉条结每概和车aseOrderDetail_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:建立触发程序。

  等等,都是使用来建立不同数据库对象的指令。

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 字段。

DROP

  DROP 则是删除数据库对象的指令,并且只需要指定要删除的数据库对象名称即可,在 DDL 语法中算是最简单的。

  例如:

  DROP TABLE myTable; -- 删除 myTable 数据表。

  DROP VIEW myView; -- 删么三磁也拉哪除 myView 检视表。

逻辑结构

  SQL语言支持的关系数据库三级逻辑结构。

  1) SQL语言支持的关系数据库三级逻辑结构由外层、概念层和内存构成,如图所示。

  2)在概念层,对应于概念模式的概念记录型的是基本表。基本表是这样的一种表,它本身实际存在。一个基本表就是一个关系,它不是由其他表导出的表。基本表是使用CREATE TABLE语句建立的。

  3)在外层,用户所看到的可以是基本表,也可以是视图,也可以是基本表+视图。视图是一个虚拟表,它是由一个或几个基本表导出的表,它不直接存在于物理存储器上的表。视图是使用CR必短候EATE SQL VIEW语句建立的。

  4)在内层,候牛著每个基本表用一个来自存储文件来表示,即360百科用一组类型相同的存储记录值来表示。DBA可以对物理存储文件进行操作。

语言特点

  SQL语言的主要特点。

  1) SQL语言类似于英语的自然语言,语言简洁,易学易用,初学者经过短期培训就可以使厂级用SQL存取数据。

  2) SQL语言是一种非过程语言,只要用户提出"干什么",至于"怎么干"则由RDBMS来解决,向用户隐蔽数据的存取路径。

  3) SQL语言是一种面向集合的语言,操作的对象决传占激罗参永怎培乡集和结果都是关系。

  4) SQL语言既可独立使用,又可嵌入到宿主语言中使用,具有自含型和宿主型两种特点。

  5) SQL语言具有查询、操作、定义和控制四种语言一体化的特点。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信
上一篇:战象

相关文章