1
数据库原理与应用技术
1.6.1.1 5.1.1 SQL的特点
5.1.1 SQL的特点

SQL集数据定义、数据操纵和数据控制功能于一体,所以说它是一门综合性的、功能极强的,同时又简单易学的语言,其主要特点有:综合统一,高度非过程化,面向集合的操作方式,灵活的使用方式,语言简洁。

1. 综合统一

非关系模型的数据语言分为模式定义语言和数据操纵语言。其缺点是,当要修改模式时,必须停止现有数据库的运行,转储数据,修改模式编译后再重装数据。而SQL集数据定义、数据操纵和数据控制功能于一体,语言风格统一,可独立完成数据库生命周期的所有活动。

2. 高度非过程化

非关系数据模型的数据操纵语言是面向过程的,为完成某项请求,必须指定存储路径,并且以“一次一记录”的方式操作。而SQL则是非过程化的、集合式的数据操纵语言,只要指出“做什么”,无须指出“怎么做”,因此无须了解存储路径。存储路径的选择及 SQL语句的操作过程由系统自动完成,这不但大大减轻了用户负担,而且有利于提高数据独立性。

3. 面向集合的操作方式

非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。例如,查找所有的女同学,用户必须一条一条地把满足条件的学生记录找出来,还需说明具体处理过程,即选择路径和循环方式等。而SQL采用面向集合的操作方式,其操作对象、查找结果可以是元组的集合。

4. 灵活的使用方式

SQL既可以是自含式语言,又可以是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL语句并对数据库进行操作;作为嵌入式语言,它能够嵌入高级语言(如C语言、Java语言等)程序中,供程序员设计程序时使用。在两种不同的使用方式下,SQL的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的做法,为用户提供了极大的灵活性与方便性。

5. 语言简洁

SQL吸取了关系代数语言、关系演算语言两者的特点和长处,故功能极强。但语言十分简洁,完成数据定义、数据操纵和数据控制等核心功能只用了9个动词,即CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE、GRANT和REVOKE。SQL的语法结构接近英语口语,因此容易学习和使用。现在所有的RDBMS都支持SQL,而其他模型的DBMS也都有相应的SQL接口,所以用SQL编写的程序是可移植的,它已成为所有数据库的公共语言。

6. 注意的问题

SQL支持关系数据库三级模式结构。其中,外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内模式对应于存储文件。

基本表是本身独立存在的表,在SQL中一个关系对应一个表。一个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。

存储文件的逻辑结构组成了关系数据库的内模式,存储文件的物理文件结构是任意的。

视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说,数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。用户可以用SQL对视图和基本表进行查询。在用户眼中,视图和基本表都是关系,而存储文件对用户是透明的。

作为数据库语言,SQL有它自己的语法结构,并有其专用的语句符号,不同的系统略有差别,主要符号都是相同的。下面给出主要的语句符号,供大家学习语句时参考。

(1) 圆括号(()):圆括号中的内容为必选参数,其中有多个可选项,各选项之间通过不同的符号分隔,用户可根据需要选择其中的一项。

(2) 方括号([ ]):方括号中的内容为可选项,用户可根据需要选用。

(3) 尖括号(<>):表示必选项。

(4) 竖线(︱):表示参数之间是或的关系,两者只选其一。

(5) 省略号(…):表示重复前面的语法单元。

(6) /**/:中间可以有多行注释语句。