- 1、本文档共147页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 4 章 关系数据库标准语言SQL 4-1 SQL概述 4-2 数据定义 4-3 查询 4-4 数据更新 4-5 视图 4-6 数据控制 4-1 SQL概述 结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。 1. SQL 的特点: (1) 综合统一 非关系模型(层次模型、网状模型)的数据语言一般部分为模式数据定义语言(简称模式DDL)、外模式数据定义语言(简称外模式DDL或子模式DDL)、与数据存储有关的描述语言(简称DSDL)及数据操纵语言(简称DML),分别用于定义模式、外模式、内模式和进行数据的存取与处置。当用户数据库投入运行后,如果需要修改模式,必须停止现有数据库的运行,转储数据,修改模式并编译后再重装数据库,十分麻烦 。 SQL语言集DDL、DML、DCL的于一体,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列功能。 (2)非过程化 非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而用SQL语言进行数据操作,只要提出“做什么”,而用户无需了解存取路径,用户只需提出“做什么”,而不必指明“怎么做”。存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。 (3)面向集合的操作方式 SQL语言采用集合操作方式,不仅查找结果可以是元组的集合。非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。例如查询所有平均成绩在80分以上的学生姓名,用户必须一条一条地把满足条件的学生记录找出来(通常要说明具体处理过程,即按照哪条路径,如何循环等)。而SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 (4)以同一种语法结构提供两种使用方式 SQL语言可采用交互式和嵌入式两种使用方式。SQL语言既是交互式语言,又是嵌入式语言。作为交互式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的做法,提供了极大的灵活性与方便性。 (5)语言简洁 SQL语言功能极强,但由于设计巧妙,语言十分简授,完成核心功能只用了9个动词,如表所示。SQL语言接近英语口语,因此容易学习,容易使用。 2. SQL语言的基本概念 SQL语言支持关系数据库三级模式结构。外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。 模式:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。 内模式:一个存储文件中可有多个基本表。 存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理文件结构是任意的。 外模式:视图是从基本表或其他视图中导出的表,它不独立存储在数据库中,数据库只存放视图的定义,因此视图是一个虚表。 用户可以用SQL语言对视图和基本表进行查询。在用户眼中,视图和基本表都是关系,而存储文件对用户是透明的。 下面将逐一介绍各SQL语句的功能和格式。为了突出基本概念和基本功能,忽略了许多语法细节。各个DBMS产品在实现标准SQL语言时也各有差别,一般都做了某种扩充。因此,具体使用某个DBMs产品时,还应参阅系统提供的有关手册。 4-2 数据定义 SQL的数据定义功能包括定义表、定义视图和定义索引,如上表所示。 视图是基于基本表的虚表,索引是依附于基本表的,因此SQL通常不提供修改视图定义和修改索引定义的操作。用户如果想修改视图定义或索引定义,只能先将它们删除掉,然后再重建。不过有些关系数据库产品如Oracle允许直接修改视图定义。 本节只介绍如何定义基本表和索引,视图的概念及其定义方法将在以后专门讨论。 1.定义基本表 CREATE TABLE 表名 (列名数据类型 [列级完整性约束条件] [,列名 数据类型 [列级完整性约束条件]...) [,表级完整性约束条件];
文档评论(0)