3.1 SQL概述
大多数数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。
3.1.1 SQL的产生与发展
SQL提出于1974年,后成为许多数据库的标准语言,SQL标准也经历了不断发展的过程,也增加了许多功能和做出了不少改变。目前,没有一个数据库能够支持SQL标准的所有概念和特性,许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改,又可以支持标准以外的一些功能特性。
3.1.2 SQL的特点
SQL是一个综合的、功能极强同时又简洁易学的语言。SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:
(1)综合统一:SQL可以独立完成数据库生命周期中的全部活动,包括定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库;对数据库中的数据进行查询和更新;数据库重构和维护;数据库安全性、完整性控制,以及事物控制;嵌入式SQL和动态SQL定义。
(2)高度非过程化:使用SQL进行数据操作时,只要提出“做什么”,无须指明“怎么做”,因此无须了解存取路径,存取路径的选择以及SQL的操作过程由系统自动完成。
(3)面向集合的操作方式:SQL采用集合操作方式,不仅操作对象、查找结果、一次插入、删除、更新操作的对象都可以是元组的集合。
(4)以同一种语法结构提供多种使用方式:SQL可以在终端独立使用,也可以嵌入到高级语言程序中,而且这两种不同的条件下,SQL的语法结构基本是一致的。
(5)语言简洁,易学易用:完成SQL核心功能只有9个动词:SELECT,CREATE,DROP,ALTER,INSERT,UPDATE,DELETE,GRANT,REVOKE。
3.1.3 SQL的基本概念
支持SQL的关系数据库管理系统支持数据库的三级模式结构,其中,外模式包含若干视图view和部分基本表base table,模式包括若干基本表,内模式包括若干存储文件stored file。
基本表是本身独立存在的表,一个关系就对应一个基本表,一个或多个基本表对应一个存储文件,一个表可以带若干索引,索引也放在存储文件中。
存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理结构对最终用户是隐蔽的。
视图是从一个或多个基本表导出的表,数据库只存放视图的定义而不存放视图对应的数据,这些数据在导出视图的基本表中,视图是一个虚表,概念上与基本表同等,视图上可以再定义视图。
3.2 学生-课程数据库
学生表:Student(Sno,Sname,Ssex,Sage,Sdept),主码Sno。
课程表:Course(Cno,Cname,Cpno,Ccredit),主码Cno。
学生选课表:SC(Sno,Cno,Grade),主码Sno,Cno。