携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
数据库系统-SQL概述
SQL历史
-
1970年Codd提出了关系模型之后,由于关系代数或者关系都太数学了,难以被普通用户接受,于是1973年IBM开展了System R的研制工作
-
System R 以关系模型为基础,但是摈弃了数学语言,以自然语言方向,结果诞生了结构化英语查询语言(Structured English Query Language,SEQUEL)
负责人为Don Chamberlin博士
-
后来更名为SQL,发音不变
-
System R获得1988年度ACM“软件系统奖”
SQL标准的进展过程
| 标准 | 大致页数 | 发布日期 |
|---|---|---|
| SQL\86 | 1986.10 | |
| SQL\89(FIPS 127-1) | 120页 | 1989年 |
| SQL\92 | 622页 | 1992年 |
| SQL99(SQL 3) | 1700页 | 1999年 |
| SQL2003 | 3600页 | 2003年 |
| SQL2008 | 3777页 | 2006年 |
| SQL2011 | 2010年 |
目前,没有一个数据库系统能够支持SQL标准的所有概念和特性
SQL的特点
SQL示例
SELECT Sno,Grade
FROM SC
WHERE Con='3'
ORDER BY Grade DESC
从表SC中选取学号Sno和成绩Grade满足条件课程号Cno=“3”按照成绩Grade降序排序
-
综合统一
-
集数据定义语言(DDl),数据操作语言(DML),数据控制语言(DCL)功能于一体
-
可以独立完成数据库生命周期中的全部活动:
- 定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库
- 对数据库中的数据进行查询和更新
- 数据库重构和维护
- 数据库完全性、完整性控制、以及事物控制
- 嵌入式SQL和动态SQL定义
-
-
高度非过程化
- 非关系数据模型的数据操纵语言“面向过程”,必须指定存取路径
- SQL只要提出“做什么”,无须了解存取路径
- 存取路径的选择以及SQL的操作过程由系统自动完成
-
面向集合的操作方式
- 非关系数据模型采用面向记录的操作方式,操作对象是一条记录
- SQL采用集合操作方式
- 操作对象、查询结果可以是元组的集合
- 一次插入、删除、更新操作的对象可以是元组的集合
-
以同一种语法结构提供多种使用方式
-
SQL是独立的语言
能够独立地用于联机交互的使用方式
-
SQL又是嵌入式语言
SQL能嵌入到高级语言(如C、C++、Java)程序中,供程序员设计程序时使用
-
-
语言简洁,易学易用
- SQL功能极强,完成核心功能只用了9个动词
SQL功能 动词 数据查询 SELECT 数据定义 CREATE,DROP,ALTER 数据操纵 INSERT,UPDATE,DELETE 数据控制 GRANT,REVOKE
基本表
- 本身独立存在的表
- SQL中一个关系就对应一个基本表
- 一个(或多个)基本表对应一个存储文件
- 一个表可以带若干索引
存储文件
- 逻辑结构组成了关系数据库的内模式
- 物理结构对用户是隐蔽了
视图
- 从一个或几个基本表导出的表
- 数据库中只存放视图的定义而不存放视图对应的数据
- 视图是一个虚表
- 用户可以在视图上再定义视图