当前位置首页 > 百科> 正文

统一资料库语言

2018-10-19 03:10:43 百科
统一资料库语言

统一资料库语言

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的程式语言,是一种资料库查询和程式设计语言,用于存取数据以及查询、更新和管理关係资料库系统;同时也是资料库脚本档案的扩展名。

1986年10月,美国国家标準协会对SQL进行规範后,以此作为关係式资料库管理系统的标準语言(ANSI X3. 135-1986),1987年得到国际标準组织的支持下成为国际标準。

基本介绍

  • 中文名:统一资料库语言
  • 外文名:unified database language
  • 分类:计算机 编程
  • 又名:结构化查询语言
  • 简称:SQL
  • 时间:1986年

简介

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的程式语言,是一种资料库查询和程式设计语言,用于存取数据以及查询、更新和管理关係资料库系统;同时也是资料库脚本档案的扩展名。
1986年10月,美国国家标準协会对SQL进行规範后,以此作为关係式资料库管理系统的标準语言(ANSI X3. 135-1986),1987年得到国际标準组织的支持下成为国际标準。

发展历史

SQL语言的发展是从1974年开始的,其发展过程如下:
1974年由Boyce和Chamberlin提出,当时称SEQUEL。
1976年IBM公司的Sanjase研究所在研製RDBMS SYSTEM R时改为SQL。
1979年Oracle公司发表第一个基于SQL的商业化RDBMS产品。
1982年IBM公司出版第一个RDBMS语言SQL/DS。
1985年IBM公司出版第一个RDBMS语言DB2。
1986年美国国家标準化组织ANSI宣布SQL作为资料库工业标準。
SQL 是一种可以在资料库中数据进行查询、从资料库中取回数据、在资料库中插入新的数据记录、更新资料库中的数据、删除资料库中已有记录的一种计算机语言。还可以创建新的资料库,在资料库中建表、创建存储过程、创建视图以及设定其许可权。所以在资料库语言中,SQL 语言的运用是相当广泛的。
SQL是一个标準的资料库语言,是面向集合的描述性非过程化语言。它功能强,效率高,简单易学易维护。然而SQL语言由于以上优点,同时也出现了这样一个问题:它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而绝大部分套用都是一个完整的过程,显然用SQL完全实现这些功能是很困难的。所以大多数资料库公司为了解决此问题,作了如下两方面的工作:
1、扩充SQL,在SQL中引入过程性结构;
2、把SQL嵌入到高级语言中,以便一起完成一个完整的套用。

分类

统一资料库语言包括四类种主要程式设计语言类别的语句:数据查询语言(DQL),数据操作语言(DML)和数据定义语言(DDL)及数据控制语言(DCL)还有。

数据查询语言DQL

数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:
SELECT <栏位名表>
FROM <表或视图名>
WHERE <查询条件>
示例:查询年龄大于28岁的所有学生的信息 SELECT * FROM student WHERE sage>28。

数据操作语言DML

数据操纵语言DML主要有三种形式:
1) 插入:INSERT
语法格式1: insert into 表名 values(值1,值2......,值n);
语法格式2: insert into 表明(栏位名1,栏位名2,......,栏位名n) values(值1,值2,......,值n)。
2) 更新:UPDATE
语法格式:update 表名 set 赋值表达式 [where 条件]
3) 删除:DELETE
语法格式:delete from 表 [where 条件]。

数据定义语言DDL

数据定义语言DDL用来创建资料库中的各种对象:表、视图、索引、同义词、聚簇等。例如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
DDL操作是隐性提交的,不能rollback。

数据控制语言DCL

数据控制语言DCL用来授予或回收访问资料库的某种特权,并控制资料库操纵事务发生的时间及效果,对资料库实行监视等。如:
1) GRANT:授权。
2) ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。ROLLBACK:回滚。
回滚命令使资料库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK。
3) COMMIT [WORK]:提交。
在资料库的插入、删除和修改操作时,只有当事务在提交到资料库时才算完成。在事务提交前,只有运算元据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。
(1)显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;
(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
(3) 自动提交
若把AUTOCOMMIT设定为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SET AUTOCOMMIT ON。

特点

1、语言风格统一。SQL语言将数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成资料库生命周期的全部活动,包括定义数据模式、插入数据、建立资料库、查询、更新、维护、资料库重构、资料库安全性控制等一系列操作要求,这就是为资料库套用系统开发提供了良好的环境。用户在资料库系统运行投入后,还可以还可以根据需要随时、逐步地修改模式,且并不影响资料库的运行,从而使系统具有良好的可扩展性。
2、操作过程统一。在关係模型中实体和实体间的联繫均用关係表示,这种单一的数据结构使数据的查找、插入、删除、修改等每一种操作都只需要一种操作符,从而克服了非关係系统的信息表示方式的多样性带来的操作複杂性。例如,在DBTG中,需要两种插入操作符:STORE用来把记录存入资料库,COONNECT用来把记录插入系值以建立数据之间的联繫。非关係模型(层次模型、网状模型)的语言一般都分为模式数据定义语言(schema data definition language,模式DDL)、外模式数据定义语言(subschema data definition languange,外模式DDL)、与数据存储有关的描述语言(data storage description language,DSDL)及数据操纵语言(data manipulation language,DML),分别用于定义模式、外模式、内模式和进行数据的存取与处理。当用户资料库投入运行后,如果需要修改模式,必须停止现有资料库的运行、存储数据、修改模式并编译后再从装资料库,十分不便。
3、高度非过程化。SQL语言进行数据操作,只需提出“做什幺”,而无需指明“怎幺做”,因此无需了解具体的存取路径,因为存取路径的选择以及SQL语句的操作过程由系统自动完成。这不仅大大减轻了用户负担,而且有利于提高数据独立性。非关係数据模型的数据操纵语言是面向过程的语言。用户为完成某项请求,必须自行指定详细的存取路径。
4、面向集合的操作方式。SQL语言採用集合操作方式,请求只需一条SELECT命令即可获得满足所有条件的元组集合。SQL不仅操作对象、查找结果可以是元祖的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。非关係数据模型採用的是面向记录的操作方式,操作对象是一条记录。例如,查询所有平均成绩再60分及以上的学生姓名,用户必须编写一大段处理程式,指明存取路径和循环控制方法等,才能一条一条地把所有满足条件地学生记录查找出来。
5、一种语法,两种使用方式。SQL语言既是自含式语言,又是嵌入式语言。
6、语言简介,易学易用。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net