什么是SQL?
SQL(Structured Query Language)是关系数据库的标准语言,也称结构化查询语言。它是介于关系代数和元组演算之间的一种语言。SQL是一种综合性的数据库语言,实现对数据的定义、操纵和控制等功能。
01、SQL的发展
自从1970年美国IBM研究中心的E.F.Codd提出关系模型,并连续发表多篇论文以后,人们对关系数据库的研究日益深入。1972年,IBM公司开始研制实验型关系数据库管理系统SYSTEM R,并且为其配置了SQUARE(Specifying Queries As Relational Expression)查询语言。1974年,Boyce和Chamberlin在此基础上对其进行改进,将SQUARE语言改为SEQUEL(Structured English Query Language),后来SEQUEL简称为SQL,并首先在IBM公司研制的关系数据库系统System R上实现。
由于它具有功能丰富、使用方便灵活、语言简洁、易学等突出优点,因此深受计算机工业界和计算机用户的欢迎。各厂商纷纷开发基于SQL的商业应用产品,并将SQL作为关系数据库产品事实上的标准,如Oracle、DB2、Sybase等。1986年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL。1987年6月,国际标准化组织(International Organization for Standardization,ISO)将其采纳为国际标准。这两个标准现在称为“SQL 86”。ANSI在1989年10月颁布了增强完整性特征的SQL 89标准,1992年又公布了SQL 92标准,1999年发布了SQL 99,以后每隔几年会推出一个新版本。
本节的论述主要遵循SQL 92标准,由于各数据库厂商的SQL产品在支持标准SQL 92语法的同时,在功能上都做了相应的扩充,在实现上略有不同,因此,在使用具体的DBMS时,请查阅系统提供的参考手册。
02、SQL的特点
SQL有许多特点,主要体现在以下4点。
1. 高度非过程化
“过程化”是指用户不但要知道“做什么”,还应该知道“怎样做”。对于SQL,用户只需要提出“做什么”,无须具体指明“怎么做”。例如,存取路径选择、具体处理操作过程等均由系统自动完成。这种特点使得用户更能集中精力考虑要“做什么”和所要得到的结果,大大提高了开发效率。
2. 功能完备并且一体化
数据库的主要功能就是通过数据库支持的数据语言来实现的。SQL不但具有数据定义、数据查询、数据操作、数据控制功能,而且这些功能被集成到一个语言系统中,只要用SQL就可以实现数据库生命周期中的全部活动。可见,SQL功能是完备的。
3. 统一的语法结构
SQL可用于所有用户的模型,包括系统管理员、数据库管理员、应用程序员及终端用户,这些用户可以通过自含式语言和嵌入式语言两种方式对数据库进行访问,这两种方式使用统一的语法结构。
4. 语言简洁,易学易用
尽管SQL的功能很强,但语言十分简洁,SQL完成核心功能只用了以下8个动词。
数据定义:CREATE(创建)、DROP(撤销)。
数据查询:SELECT(查询)。
数据操作:INSERT(插入)、UPDATE(修改)、DELETE(删除)。
数据控制:GRANT(授权)、REVOKE(收权)。
03、SQL体系结构
SQL支持关系数据库体系结构,即外模式、模式和内模式。利用SQL可以实现对三级模式的定义、修改和数据的操作功能,在此基础上形成了SQL体系结构,如图1所示。
■ 图1 SQL体系结构
图1 中对应的几个基本概念如下。
(1) SQL用户。可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,也可以作为独立的用户接口,供交互环境下的终端用户使用。
(2) 基本表,简称基表。它是数据库中实际存在的表,在SQL中一个关系对应于一个基本表。
(3) 视图。SQL用视图概念支持非标准的外模式概念。视图是从一个或几个基本表导出的表,虽然它也是关系形式,但它本身不实际存储在数据库中,只存放对视图的定义信息(没有对应的数据)。因此,视图是一个虚表(Virtual Table)或虚关系,而基本表是一种实关系(Practical Relation)。
(4) 存储文件。每个基本表对应一个存储文件,每个存储文件都与外部存储器上一个物理文件对应。一个基本表还可以带一个或几个索引,存储文件和索引一起构成了关系数据库的内模式。
由此可以看出,一个基本表可以存放在多个存储文件中;一个视图可以来自多个基本表,一个基本表可以构造多个视图;一个用户可以查询多个视图,一个视图也可以被多个用户访问。
- 点赞
- 收藏
- 关注作者
评论(0)