1 / 22

第 4 章 关系数据库标准语言 SQL

4.1 SQL 概述 4.2 SQL 表达式 4.3 SQL 数据定义 4.4 SQL 数据查询 4.5 SQL 数据操纵 4.6 SQL 数据控制. 第 4 章 关系数据库标准语言 SQL. 引言 SQL 语言的确立、发展、标准化及其应用可称之为数据库的一场革命。 SQL 作为关系数据库的标准语言,促使各大数据库厂家纷纷利用 SQL 作为共同的数据存取语言和标准接口,迅速推出各自的 SQL 软件或与 SQL 的接口软件,由此实现了以 SQL 为共同基础的不同数据库间的互操作。

abena
Download Presentation

第 4 章 关系数据库标准语言 SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4.1 SQL概述 4.2 SQL表达式 4.3 SQL数据定义 4.4 SQL数据查询 4.5 SQL数据操纵 4.6 SQL数据控制 第4章 关系数据库标准语言SQL

  2. 引言 SQL语言的确立、发展、标准化及其应用可称之为数据库的一场革命。SQL作为关系数据库的标准语言,促使各大数据库厂家纷纷利用SQL作为共同的数据存取语言和标准接口,迅速推出各自的SQL软件或与SQL的接口软件,由此实现了以SQL为共同基础的不同数据库间的互操作。 SQL语言对数据库以外的领域也产生了很大影响。有不少软件产品将SQL语言的数据定义功能与图形功能、软件工程工具、软件开发工具、人工智能程序等结合起来,以发挥更强大的功能。 第4章 关系数据库标准语言SQL

  3. 通过本章学习,可以了解(或掌握): SQL语言基本概况; SQL数据定义功能; SQL数据查询功能; SQL数据操纵功能; SQL数据控制功能; SQL语言视图应用。 第4章 关系数据库标准语言SQL

  4. 4.1.1 SQL语言的发展 4.1.2 SQL的特点 4.1.3 SQL语言基本概念 4.1.4 SQL的支持特性 4.1.5 SQL的语句类型 4.1 SQL概述

  5. SQL语言原名SEQUEL(读作[si:kwl]),是一个通用的、功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言(Structured Query Language),其功能包括数据定义、数据查询、数据操纵和数据控制。 4.1 SQL概述

  6. SQL语言是一种面向关系数据库的国际标准语言,在当前数据库领域中应用最为广泛和成功,其近三十年的发展历程主要有以下几个阶段: (1)1974年由Boyce和Chamberlin提出,当时称为SEQUEL(Structured English Query Language)。 (2)1975~1979年IBM公司对SEQUEL进行了修改,并由San Jose Research Laboratory研制了著名的关系数据库管理系统原型System R,实现了这种语言。 4.1.1 SQL语言的发展

  7. (3)1981年IBM推出了商用关系数据库SQL/DS,并将其改名为SQL,由于它功能丰富,语言简洁,因此倍受用户及计算机工业界欢迎,被众多计算机公司和软件公司所采用。(3)1981年IBM推出了商用关系数据库SQL/DS,并将其改名为SQL,由于它功能丰富,语言简洁,因此倍受用户及计算机工业界欢迎,被众多计算机公司和软件公司所采用。 (4)目前SQL语言不仅用于小型数据库如Foxpro、Access,而且更广泛用于各种大型数据库,如Sysbase、SQL Server、Oracle、Informix、DB2、Ingres等。 4.1.1 SQL语言的发展

  8. SQL成为国际标准,即意味着它在发展中经历了一系列标准化过程: (1) 1982年美国国家标准局(American National Standard Institute,简称ANSI)开始制订SQL标准。 (2)1986年10月ANSI的数据库委员会X3H2批准了SQL作为关系数据库语言的美国标准;同年ANSI公布SQL语言的第一个标准SQL-86,并于次年由国际标准化组织(International Standardization Organization,简称ISO)通过SQL-86标准。 (3)1989年ISO对SQL-86进行补充,推出SQL-89标准。 (4)1992年ISO又推出SQL-92标准,亦称SQL2。 4.1.1 SQL语言的发展

  9. (5)1999年起ANSI陆续公布增加了面向对象功能的新标准SQL-99(亦称SQL3)的12个标准文本。(5)1999年起ANSI陆续公布增加了面向对象功能的新标准SQL-99(亦称SQL3)的12个标准文本。 目前大多数数据库管理系统均支持SQL-92(SQL2),有少部分支持SQL3。 4.1.1 SQL语言的发展

  10. 1.综合统一 数据库系统的主要功能是通过数据库支持的数据语言来实现的。 非关系模型的数据语言一般都分为模式数据定义语言(Schema Data Definition Language,简称模式DDL)、外模式数据定义语言(Subschema Data Definition Language,简称外模式DDL或子模式DDL)、与数据存储有关的描述语言(Data Storage Description Language,简称DSDL)及数据操纵语言(Data Manipulation Language,简称DML),分别用于定义模式、外模式、内模式和进行数据的存取与处置。 4.1.2 SQL的特点

  11. 当用户数据库投入运行后,如果需要修改模式,必须停止现行数据库的运行,转储数据,修改模式并编译后重装数据库,十分麻烦。当用户数据库投入运行后,如果需要修改模式,必须停止现行数据库的运行,转储数据,修改模式并编译后重装数据库,十分麻烦。 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、建立数据库、插入数据、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统的开发提供了良好的环境。用户在数据库系统投入运行后,还可根据需要随时修改模式,且不影响数据库的运行,从而使系统具有良好的可扩展性。 4.1.2 SQL的特点

  12. 2.高度非过程化 SQL是一种非过程语言,用其进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,只要指明所需的数据即可,具体的SQL语句操作过程由系统自动完成。这不但大大减轻了用户负担,降低了出错率,而且有利于提高数据的独立性。 3.面向集合的操作方式 SQL是一种面向集合的语言,与面向记录的方式截然不同,每个命令的操作对象是一个或多个表,结果也是一个表。这种采用集合的操作方式不仅操作对象、查找结果可以是记录的集合,而且一次插入、删除、更新操作的对象也可以是记录的集合。 4.1.2 SQL的特点

  13. 4.同一种语法结构,两种使用方式 SQL语言既是自含式语言,又是嵌入式语言,或独立使用也可嵌入到宿主语言中。作为自含式语言它能够独立地用于联机交互方式,即在终端机上进行数据库操作,这适用于终端用户、应用程序员和DBA。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、COBOL、FORTRAN、PL/1)程序中,供开发使用。在这两种方式下,SQL语法结构基本一致,为用户提供了极大的灵活性和方便性。 5.语言简洁易用 SQL语言设计巧妙,以简洁的语句实现强大的功能,9个动词即可完成核心功能,见表4-1(下页)。另外语言本身接近英语自然语言,易学易懂。 4.1.2 SQL的特点

  14. SQL功能 动词 数据查询DQ SELECT 数据定义DD CREATE,DROP,ALTER 数据操纵DM INSERT,UPDATE,DELETE 数据控制DC GTANT,REVOKE 4.1.2 SQL的特点 表4-1 SQL语言的动词

  15. 4.1.3 SQL语言基本概念 • 根据E.F.Codd的定义,关系数据模型中关系(Relation)与表(Table)同义,关系数据库是表的集合,表是关系数据库的基本组成单位,数据库操作即是对表的操作。 • 第1章已指出,表的有关概念在关系模型术语中分别对应为:表—关系,行—元组、记录,列—属性、字段。这些术语经常混合使用。 • 关系示例:物资当前库存关系 • Wzkcb(Wzbm,Wzckbm,Price,Wzkcl) • 其中Wzbm、Wzckbm、Price、Wzkcl分别表示物资编码、物资仓库编码、物资价格、物资库存量。

  16. 4.1.3 SQL语言基本概念 • SQL中,表分为基表(Base Table)和视图(View)。 • (1)基表 基表是独立存在的表,不由其他表导出,其数据显式地存储于数据库中。一个关系对应一个基表,一个或多个基表对应一个存储文件,一个表可带若干索引,索引也存放于存储文件中。表4-2为一个基表,表中Rq表示日期,其它字段名的含义与前面相同。 表4-2 每月物资库存表Months_Wzkcb

  17. 4.1.3 SQL语言基本概念 • (2)视图 视图是一种虚表,即数据库里一个物理上不存在,但用户看起来却存在的表。与之相比,基表则在物理存储中的确物理地存放着表中每一行的内容。视图由一个或几个基表(或视图)导出,它没有自身的、物理上可区分的存储区,即不能作为一个表显式地独立存储在数据库中。实际上,系统只是把视图的定义存放在系统表里的某个地方。视图就像加在其基表上的过滤器。同基表一样,它也由一组命名字段和记录行组成,但其中的数据在视图被引用时才动态生成。视图定义的查询语句可以引用一个或多个表,也可以引用当前数据库或其他数据库中的视图。另外,用户可以在视图上再定义视图。表4-3为表4-2的一个视图。 表4-3 每月物资库存视图Months_Wzkcb_view

  18. SQL语言支持关系数据库三级模式结构,如图4.1所示。其中外模式对应于视图和部分基表,模式对应于基表,内模式对应于存储文件。SQL语言支持关系数据库三级模式结构,如图4.1所示。其中外模式对应于视图和部分基表,模式对应于基表,内模式对应于存储文件。 SQL SQL 视图1 视图1 视图2 视图2 外模式 外模式 基本表1 基本表1 基本表2 基本表2 基本表3 基本表3 基本表4 基本表4 模 式 模 式 存储文件1 存储文件1 存储文件2 存储文件2 内模式 内模式 图4.1 SQL对关系数 据库三级模式的支持 图4.1 SQL对关系数 据库三级模式的支持 4.1.4 SQL的支持特性 • SQL语言支持关系数据库三级模式结构,如图4.1所示。其中外模式对应于视图和部分基表,模式对应于基表,内模式对应于存储文件。

  19. 1.四种基本语句 SQL有四大主要功能,相应有四类语句: (1) 数据查询语言DQL (2) 数据定义语言DDL (3) 数据操纵语言DML (4) 数据控制语言DCL 4.1.5 SQL的语句类型

  20. 2.扩展语句 新标准SQL2和SQL3极大地扩充、丰富了SQL语言,SQL3按照语句功能把SQL语句分为七类:SQL模式语句、SQL数据语句、SQL事务语句、SQL控制语句、SQL连接语句、SQL会话语句、SQL诊断语句。 SQL语句由动词、SQL对象、限定词等组成。SQL3规定的SQL对象(Object)有:簇集(Cluster)、授权ID、特权(Privilege)、目录(Catalog)、模式(Schema)、表(Table)、字段(Column)、SQL域(Domain)和UDT、约束和断言(Constraint and Assertion)、字符集(Character Set)、聚合(Collation)、翻译(Translation)、触发器(Trigger)、模块 4.1.5 SQL的语句类型

  21. (Module)、调用例程(SQL-invoked Routine)等。 目前尚没有一个数据库产品完全支持SQL2和SQL3定义的这七类语句和SQL对象,因而本章后面各节仅针对SQL核心部分的基本概念和常用的一些SQL数据类型及语句展开介绍。 4.1.5 SQL的语句类型

  22. 3.符号约定 SQL语法定义中使用了变型的巴科斯范式(Backus-Naur Form,BNF)标记,本章叙述遵循此规定中的相关约定符号。 ::= 定义运算符,把所定义的语法元素与定义分开,从左至右阅读定义。 { } 表示必须选择其中的一项或多项。 [ ] 表示其中内容可任选。 < > 表示其中是语法元素的名称。 | 竖直线把语法元素组分开,表示或者的意思,在构造SQL语句时必须选其中一个元素。 … 表示前面的内容可重复多次。 SQL和其他计算机语言一样,保留一些字作为专用,用户只能按SQL规定使用保留字,而不能用它们作为表名、字段名或其他事物。 4.1.5 SQL的语句类型

More Related