结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,也是一个通用的,功能极强的关系数据库语言。
数据库系统的主要功能是通过数据库支持的数据语言来实现的。
非关系模型(层次模型,网状模型)的数据语言一般都分为:
a . 模式数据定义语言(模式DDL)
b . 外模式数据定义语言(外模式DDL或子模式DDL)
c . 数据存储有关的描述语言(DSDL)
d . 数据操纵语言(DML)
目前,没有一个数据库系统能够支持SQL标准的所有概念和特性。
1. SQL的特点
(1) 综合统一:SQL语言集数据定义语言DDL,数据操纵语言DML,数据控制语言DCL的功能于一体。在关系模型中实体与实体间对的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一性,查找,插入,删除,更新等每一种操作都只需要一种操作符,从而克服了非关系系统由于信息表示方式的多样性带来的操作复杂性。
(2) 高度非过程化:用SQL语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语言的操作过程。这有利于提高数据独立性。
(3) 面向集合的操作方式:SQL语言采用集合操作方式,不仅操作对象和查找结果可以是元组的集合,而且插入,删除,更新操作的对象也可以是元组的集合。
(4) 以同一种语法结构提供两种使用方式:SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中(例如C,C++,JAVA),供程序员设计程序时使用。
(5) 语言简捷,易学易用。 完成核心功能只用了9个动词,如下图。
2. SQL的基本概念
支持SQL的关系数据库管理系统同样支持数据库三级模式结构。如下图所示。
其中外模式包含若干视图和部分基本表,数据库模式包括若干基本表,内模式包括若干存储文件。
(1) 基本表
基本表是本身独立存在的表,在关系数据库管理系统中一个关系就对应一个基本表。一个或多个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。
(2) 视图
视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图。
(3) 存储文件
存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理结构对最终用户是隐蔽的。