NOVOTS KMS 词汇表 Glossary    联系我们 Contact Us
查询 Search  
   
按类别浏览 Browse by Category
NOVOTS KMS .: 数据库 .: SQL语言分类

SQL语言分类

SQL语言分类 DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 数据定义语言 数据定义语言 (Data Definition Language, DDL) 是SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成,最早是由 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为交易记录档的声明。 若需要更高级的设置,则还有 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 检视表。 数据操纵语言 数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。例如,对表中数据的插入、删除、修改、排序和检索。 插入操作 把数据插入到数据库中指定的位置上去,如Append 是在数据库文件的末尾添加记录,而INSERT是在指定记录前添加记录。 删除操作 删除数据库中不必再继续保留的一组记录,如DELETE 对数据库中记录作删除标志。PACK是将标有删除标志的记录彻底清除掉。ZAP 是去掉数据库文件的所有记录。 修改操作 修改记录或数据库模式,或在原有数据的基础上,产生新的关系模式和记录,如连接Join操作和投影操作Projection. 排序操作 改变物理存储的排列方式。如SORT命令按指定关键字串把DBF文件中记录排序。从物理存储的观点看,数据库发生了变化,但从逻辑的观点(或集合论观点看),新的关系与排序前是等价的。 检索操作 从数据库中检索出满足条件的数据,它可以是一个数据项,一个记录或一组记录。如BROWSE单元实现对数据的浏览操作。SELECT选出满足一定条件和范围的记录。 数据控制语言 数据控制语言DCL(Data Control Language)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。 GRANT语句 GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色。 授予语句权限的语法形式为:GRANT {ALL | statement[,...n]} TO security_account [ ,...n ] 授予对象权限的语法形式为:GRANT{ ALL [ PRIVILEGES ] | permission [ ,...n ] }{[ ( column [ ,...n ] ) ]ON { table | view }| ON { table | view } [ ( column [ ,...n ] ) ]| ON {stored_procedure | extended_procedure }| ON { user_defined_function } }TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role} ] DENY语句 DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。否定语句权限的语法形式为:DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ] 否定对象权限的语法形式为:DENY{ ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] )] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] |ON { stored_procedure | extended_procedure } | ON {user_defined_function } } TO security_account [ ,...n ] [ CASCADE ] REVOKE语句 REVOKE语句是与GRANT语句相反的语句,它能够将以前在当前数据库内的用户或者角色上授予或拒绝的权限删除,但是该语句并不影响用户或者角色从其他角色中作为成员继承过来的权限。 收回语句权限的语法形式为:REVOKE { ALL | statement [ ,...n ] } FROM security_account [ ,...n ] 收回对象权限的语法形式为:REVOKE[ GRANT OPTION FOR ] { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ (column [ ,...n ] ) ] | ON { stored_procedure | extended_procedure } |ON { user_defined_function } } { TO | FROM } security_account [ ,...n ][ CASCADE ] [ AS { group | role } ]

这篇文章对你多有用?

相关文章

article SQL语言基础
1.SQL的特点 ...

(No rating)  8-25-2020    Views: 57   
article SQL语言基础
最近在学习有关数据库方面的东西,一些基础的命令...

(No rating)  4-29-2010    Views: 916   

用户评语

添加评语
当前还没有评语.


.: .: .: .: .:
[ 登陆 ]
北京护航科技有限公司 2006

Novots Technologies Limited