种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

数据定义语言

(2019-11-17 14:18:15) 百科综合
数据定义语言

数据定义语言

数据定义语言 (Data Definition Language, DDL) 是SQL语言集中负责数据结构定义与资料库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成,最早是由 Codasyl (Conference on Data Systems Languages) 数据模型开始,现在被纳入 SQL 指令中作为其中一个子集。目前大多数的DBMS都支持对资料库对象的DDL操作,部份资料库 (如 PostgreSQL) 可把DDL放在交易指令中,也就是它可以被撤回 (Rollback)。较新版本的DBMS会加入DDL专用的触发程式,让资料库管理员可以追蹤来自DDL的修改。.

基本介绍

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

简介

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:建立触发程式。
等等,都是使用来建立不同资料库对象的指令。

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语言

逻辑结构

SQL语言支持的关係资料库三级逻辑结构。
1) SQL语言支持的关係资料库三级逻辑结构由外层、概念层和记忆体构成,如图所示。
2)在概念层,对应于概念模式的概念记录型的是基本表。基本表是这样的一种表,它本身实际存在。一个基本表就是一个关係,它不是由其他表导出的表。基本表是使用CREATE TABLE语句建立的。
3)在外层,用户所看到的可以是基本表,也可以是视图,也可以是基本表+视图。视图是一个虚拟表,它是由一个或几个基本表导出的表,它不直接存在于物理存储器上的表。视图是使用CREATE SQL VIEW语句建立的。
4)在内层,每个基本表用一个存储档案来表示,即用一组类型相同的存储记录值来表示。DBA可以对物理存储档案进行操作。

主要特点

1) SQL语言类似于英语的自然语言,语言简洁,易学易用,初学者经过短期培训就可以使用SQL存取数据。
2) SQL语言是一种非过程语言,只要用户提出“乾什幺”,至于“怎幺乾”则由RDBMS来解决,向用户隐蔽数据的存取路径。
3) SQL语言是一种面向集合的语言,操作的对象和结果都是关係。
4) SQL语言既可独立使用,又可嵌入到宿主语言中使用,具有自含型和宿主型两种特点。
5) SQL语言具有查询、操作、定义和控制四种语言一体化的特点。

标 签

搜索
随机推荐

Powered By 种豆资源网||