数据库知识整理——关系数据库SQL简介
SQL(Structured Query Language)早已确立起自己作为关系数据库标准语言的地位,已被众多商用 DBMS 产品(如DB2、ORACLE、INGRES、SYSBASE、MySQL、SQL Server 和 VFP 等)所采用,使得它已成为关系数据库领域中的一个主流语言。SQL是在1974年由Boyce和 Chamberlin提出的,它是关系数据库中最普遍使用的语言,包括数据査询(Query)、数据操纵(Manipulation)、数据定义(Definition)和数据控制(Contol)功能,是一种通用的、功能强大的关系数据库的标准语言。

SQL标准
SQL主要有3个标准:ANSI(美国国家标准机构)SQL;对 ANSI SQL 进行修改后在 1992年采用的标准 SQL-92 或 SQL2;最近的 SQL-99 标准,也称为 SQL3 标准。SQL-99 从 SQL-92扩充而来,并增加了对象关系特征和许多其他新的功能。
SQL的特点
(1) 综合统一
非关系模型的数据语言分为模式定义语言和数据操纵语言,其缺点是当要修改模式时,必须停止现有数据库的运行,转储数据,修改模式编译后再重装数据库。SQL集数据定义、数据操纵和数据控制功能于一体,语言风格统一,可独立完成数据库生命周期的所有活动。
(2) 高度非过程化
非关系数据模型的数据操纵语言是面向过程的,若要完成某项请求,必须指定存储路径; 而 SQL语言是高度非过程化语言,当进行数据操作时,只要指出“做什么”无须指出“怎么做”,存储路径对用户来说是透明的,提高了数据的独立性。
(3) 面向集合的操作方式
非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。而 SQL语言采用面向集合的操作方式,其操作对象、查找结果可以是元组的集合。
(4) 两种使用方式
第一种方式,用户可以在终端键盘上输入 SQL 命令,对数据库进行操作,故称之为自含式语言;第二种方式,将SQL语言嵌入到高级语言程序中,所以又称为嵌入式语言。
(5) 语言简洁、易学易用
SOL语言功能极强,完成核心功能只用了9个动词,包括以下4类。
- 数据查询DQL:SELECT
- 数据定义DDL:CREATE、DROP、ALTER
- 数据操纵DML:INSERT、UPDATE、DELETE
- 数据控制DCL:GRANT、REVORK
SQL的基本组成(三级模式和二级映像)

三级模式
- 外模式(视图):外模式也被称为子模式或用户模式,它代表了数据库用户能够看到和使用的局部数据的逻辑结构和特征。每个外模式都是概念模式的一个子集,与特定的用户或应用程序相关。
- 概念模式(基本表):概念模式又称逻辑模式或模式,它是数据库中全体数据的全局逻辑结构和特征的描述,是所有用户的公共数据视图。它由数据库设计者综合所有用户的数据,按照统一的观点构造而成,定义了包括数据项、数据类型、数据之间的关系以及完整性约束等在内的全部信息。概念模式是三级模式结构的中间层,一个数据库只有一个概念模式。
- 内模式(存储文件):内模式定义了数据在存储介质上的物理结构和存储方式,是数据在数据库内部的表示方法。例如,记录的存储方式是顺序存储、按照B树结构存储还是按Hash方法存储;索引如何组织;数据是否压缩、加密等,都由内模式定义。一个数据库也只有一个内模式。
二级映射
- 外模式/概念模式映像:保障逻辑独立性,该映像定义了外模式与概念模式之间的对应关系。当概念模式发生改变时(例如增加新的关系、属性或修改属性数据类型),数据库管理员只需修改此映像,而保持外模式不变。这样,基于这些外模式编写的应用程序就无需修改,从而实现了数据的逻辑独立性。
- 概念模式内模式映像:保障物理独立性,该映像定义了概念模式与内模式之间的对应关系。当数据库的存储结构改变时(例如更换了更高效的存储结构或索引方式),数据库管理员只需修改此映像,而保持概念模式不变。因此,应用程序同样不受影响,这就实现了数据的物理独立性。
