数据库原理(完整版)_第1页
数据库原理(完整版)_第2页
数据库原理(完整版)_第3页
数据库原理(完整版)_第4页
数据库原理(完整版)_第5页
已阅读5页,还剩621页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理(完整版)第一页,共626页。教材及参考书(1)教材萨师煊,王珊:数据库系统概论(第三版),高等教育出版社,2000中国人民大学李红:数据库原理与应用

高等教育出版社,2003

第二页,共626页。教材及参考书(2)参考书崔巍:数据库系统与应用,

高等教育出版社,2000施伯乐:数据库系统教程高等教育出版社第三页,共626页。第一章绪论第四页,共626页。1.1

数据库系统概述

1.1.1数据库的地位1.1.2四个基本概念1.1.3数据管理技术的产生与发展第五页,共626页。数据库的地位为什么要学习数据库第六页,共626页。数据库技术始于20世纪60年代,经历了最初的基于文件的初级系统、20世纪60~70年代流行的层次系统和网状系统,而现在广泛使用的是关系数据库系统。数据库应用也从简单的事务管理扩展到各个应用领域,如用于工程设计的工程数据库、用于因特网的Web数据库、用于决策支持的数据仓库技术、用于多媒体技术的多媒体数据库等,但应用最广泛的还是在基于事务管理的各类信息系统领域。第七页,共626页。1.1数据库系统概述1.1.1数据库的地位

1.1.2四个基本概念1.1.3数据管理技术的产生与发展第八页,共626页。1.1.2四个基本概念数据(Data)数据库(Database)数据库管理系统(DBMS)数据库系统(DBS)第九页,共626页。一、数据数据(Data)是数据库中存储的基本对象数据的定义描述事物的符号记录数据的种类文字、图形、图象、声音数据的特点数据与其语义是不可分的第十页,共626页。数据举例学生档案中的学生记录(李明,男,1972,江苏,计算机系,1990)数据的形式不能完全表达其内容数据的解释语义:学生姓名、性别、出生年月、籍贯、所在系别、入学时间解释:李明是个大学生,1972年出生,江苏人,1990年考入计算机系第十一页,共626页。二、数据库(举例)第十二页,共626页。数据库——是相互关联的数据的集合。性质:用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。什么是数据库第十三页,共626页。DataBaseManagementSystem——简称DBMS三、数据库管理系统第十四页,共626页。简单说DBMS就是管理数据库的系统软件,它应该具有如下功能:数据库定义功能数据库操纵功能数据库查询功能数据库控制功能数据库通讯功能什么是数据库管理系统?第十五页,共626页。数据库管理的重要性数据库管理员——DataBaseAdministratorDBA的重要职责数据库管理和数据库管理员第十六页,共626页。DBMS的主要功能数据定义功能

提供数据定义语言(DDL)定义数据库中的数据对象数据操纵功能:提供数据操纵语言(DML)

操纵数据实现对数据库的基本操作(查询、插入、删除和修改)第十七页,共626页。DBMS的主要功能数据库的运行管理

保证数据的安全性、完整性、 多用户对数据的并发使用 发生故障后的系统恢复数据库的建立和维护功能(实用程序)数据库数据批量装载 数据库转储 介质故障恢复 数据库的重组织 性能监视等第十八页,共626页。四、数据库系统数据库系统就是基于数据库的计算机应用系统,它包括:以数据为主体的数据库管理数据库的系统软件DBMS支持数据库系统的计算机硬件环境和操作系统环境管理和使用数据库系统的人,特别是负责设计、维护数据库的技术人员——数据库管理员方便使用和管理系统的各种技术说明书和使用说明书第十九页,共626页。数据库系统(续)数据库系统构成图示参看教材page_5图1.1数据库系统在计算机系统中的位置图示参看教材page_5图1.2第二十页,共626页。1.1数据库系统概述1.1.1数据库的地位1.1.2四个基本概念

1.1.3数据管理技术的产生与发展第二十一页,共626页。1.1.3数据管理技术的产生和发展什么是数据管理对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题数据管理技术的发展过程人工管理阶段(40年代中--50年代中)文件系统阶段(50年代末--60年代中)数据库系统阶段(60年代末--现在)第二十二页,共626页。数据管理技术的产生和发展(续)数据管理技术的发展动力应用需求的推动计算机硬件的发展计算机软件的发展第二十三页,共626页。一、人工管理时期40年代中--50年代中产生的背景应用需求 科学计算 硬件水平 无直接存取存储设备 软件水平 没有操作系统 处理方式 批处理 第二十四页,共626页。人工管理(续)特点数据的管理者:应用程序,数据不保存。数据面向的对象:某一应用程序数据的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序自己控制第二十五页,共626页。应用程序1应用程序2应用程序n…数据集n数据集2数据集1…人工管理阶段第二十六页,共626页。二、文件系统时期50年代末--60年代中产生的背景应用需求 科学计算、管理 硬件水平 磁盘、磁鼓 软件水平 有文件系统 处理方式 联机实时处理、批处理

第二十七页,共626页。文件系统(续)特点数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序数据的共享程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序数据控制能力:应用程序自己控制第二十八页,共626页。应用程序与数据的对应关系(文件系统)应用程序1文件1应用程序2文件2……应用程序n文件n文件系统第二十九页,共626页。文件系统中数据的结构记录内有结构。数据的结构是靠程序定义和解释的。数据只能是定长的。可以间接实现数据变长要求,但访问相应数据的应用程序复杂了。文件间是独立的,因此数据整体无结构。可以间接实现数据整体的有结构,但必须在应用程序中对描述数据间的联系。数据的最小存取单位是记录。第三十页,共626页。三、数据库系统时期60年代末以来产生的背景应用背景 大规模管理 硬件背景 大容量磁盘 软件背景 有数据库管理系统 处理方式 联机实时处理,分布处理,批处理 第三十一页,共626页。数据库系统(续)特点数据的管理者:DBMS数据面向的对象:现实世界 数据的共享程度:共享性高 数据的独立性:高度的物理独立性和一定的逻辑独立性 数据的结构化:整体结构化数据控制能力:由DBMS统一管理和控制第三十二页,共626页。应用程序与数据的对应关系(数据库系统)DBMS应用程序1应用程序2数据库…第三十三页,共626页。数据的高共享性的好处降低数据的冗余度,节省存储空间避免数据间的不一致性使系统易于扩充第三十四页,共626页。数据独立性物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。第三十五页,共626页。数据结构化整体数据的结构化是数据库的主要特征之一。数据库中实现的是数据的真正结构化数据的结构用数据模型描述,无需程序定义和解释。数据可以变长。数据的最小存取单位是数据项。第三十六页,共626页。DBMS对数据的控制功能数据的安全性(Security)保护使每个用户只能按指定方式使用和处理指定数据,保护数据以防止不合法的使用造成的数据的泄密和破坏。数据的完整性(Integrity)检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。第三十七页,共626页。DBMS对数据的控制功能并发(Concurrency)控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。数据库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。第三十八页,共626页。第一章绪论1.1数据库系统概述1.2数据模型1.3数据库系统结构1.4数据库系统的组成1.5数据库技术的研究领域1.6小结第三十九页,共626页。数据模型在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟数据模型应满足三方面要求能比较真实地模拟现实世界容易为人所理解便于在计算机上实现第四十页,共626页。数据模型(续)数据模型分成两个不同的层次(1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模。(2)数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。第四十一页,共626页。数据模型(续)客观对象的抽象过程两步抽象现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。

概念模型是现实世界到机器世界的一个中间层次。第四十二页,共626页。1.2数据模型

1.2.1数据模型的组成要素1.2.2概念模型1.2.3常用数据模型1.2.4层次模型1.2.5网状模型1.2.6关系模型第四十三页,共626页。1.2.1数据模型的组成要素数据结构数据操作数据的约束条件第四十四页,共626页。1.数据结构什么是数据结构对象类型的集合两类对象与数据类型、内容、性质有关的对象与数据之间联系有关的对象数据结构是对系统静态特性的描述第四十五页,共626页。2.数据操作数据操作对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则数据操作的类型检索更新(包括插入、删除、修改)第四十六页,共626页。数据操作(续)数据模型对操作的定义操作的确切含义操作符号操作规则(如优先级)实现操作的语言数据操作是对系统动态特性的描述。第四十七页,共626页。3.数据的约束条件数据的约束条件一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。第四十八页,共626页。数据的约束条件(续)数据模型对约束条件的定义反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。第四十九页,共626页。1.2.2概念模型1.概念模型2.信息世界中的基本概念3.概念模型的表示方法第五十页,共626页。1.概念模型概念模型的用途概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的基本要求较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解。第五十一页,共626页。2.信息世界中的基本概念

(1)实体(Entity)客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。(2)属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。

(3)码(Key)唯一标识实体的属性集称为码。

第五十二页,共626页。信息世界中的基本概念(续)(4)域(Domain)属性的取值范围称为该属性的域。(5)实体型(EntityType)用实体名及其属性名集合来抽象和刻画同类实体称为实体型(6)实体集(EntitySet)同型实体的集合称为实体集第五十三页,共626页。信息世界中的基本概念(续)(7)联系(Relationship)现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系实体型间联系两个实体型一对一联系(1:1)三个实体型一对多联系(1:n)一个实体型多对多联系(m:n)

第五十四页,共626页。两个实体型间的联系实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系第五十五页,共626页。两个实体型间的联系一对一联系如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。

实例班级与班长之间的联系:一个班级只有一个正班长一个班长只在一个班中任职第五十六页,共626页。两个实体型间的联系(续)一对多联系如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系记为1:n实例班级与学生之间的联系:一个班级中有若干名学生,每个学生只在一个班级中学习第五十七页,共626页。两个实体型间的联系(续)多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系。记为m:n实例课程与学生之间的联系:一门课程同时有若干个学生选修一个学生可以同时选修多门课程第五十八页,共626页。多个实体型间的联系(续)多个实体型间的一对多联系若实体集E1,E2,...,En存在联系,对于实体集Ej(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,...,Ei-1,Ei+1,...,En之间的联系是一对多的。第五十九页,共626页。多个实体型间的联系(续)实例

课程、教师与参考书三个实体型如果一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用课程与教师、参考书之间的联系是一对多的多个实体型间的一对一联系多个实体型间的多对多联系第六十页,共626页。同一实体集内各实体间的联系一对多联系实例

职工实体集内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系多对多联系第六十一页,共626页。3.概念模型的表示方法概念模型的表示方法很多实体-联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型第六十二页,共626页。E-R图实体型用矩形表示,矩形框内写明实体名。学生教师第六十三页,共626页。E-R图(续)属性用椭圆形表示,并用无向边将其与相应的实体连接起来学生学号年龄性别姓名第六十四页,共626页。E-R图(续)联系联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来

第六十五页,共626页。联系的表示方法实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系第六十六页,共626页。联系的表示方法(续)实体型1联系名mn同一实体型内部的m:n联系实体型1联系名实体型21m多个实体型间的1:n联系实体型3n第六十七页,共626页。联系的表示方法示例班级班级-班长班长111:1联系课程选修学生mnm:n联系班级组成学生1n1:n联系第六十八页,共626页。联系的表示方法示例(续)职工领导1n同一实体型内部的1:n联系课程讲授教师1m多个实体型间的1:n联系参考书n第六十九页,共626页。联系属性的表示方法课程选修学生mn成绩第七十页,共626页。E-R图(续)E-R图实例:

P19-P20某工厂物资管理E-R图第七十一页,共626页。1.2.3常用数据模型非关系模型层次模型(HierarchicalModel)网状模型(NetworkModel)数据结构:以基本层次联系为基本单位

基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系第七十二页,共626页。常用数据模型(续)关系模型(RelationalModel)数据结构:表面向对象模型(ObjectOrientedModel)数据结构:对象第七十三页,共626页。1.2数据模型

1.2.1数据模型的组成要素1.2.2概念模型1.2.3常用数据模型

1.2.4层次模型1.2.5网状模型1.2.6关系模型第七十四页,共626页。1.2.4层次模型1.层次数据模型的数据结构2.层次数据模型的数据操纵3.层次数据模型的与完整性约束4.层次数据模型的存储结构5.层次数据模型的优缺点

6.典型的层次数据库系统第七十五页,共626页。1.层次数据模型的数据结构层次模型

满足下面两个条件的基本层次联系的集合为层次模型。1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点第七十六页,共626页。层次数据模型的数据结构(续)

R1

根结点

R2

兄弟结点

R3

叶结点

R4

兄弟结点

R5

叶结点

叶结点第七十七页,共626页。层次数据模型的数据结构(续)表示方法实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)型之间的

一对多的联系实例:教员-学生数据模型(P23)第七十八页,共626页。层次数据模型的数据结构(续)特点结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在第七十九页,共626页。层次数据模型的数据结构(续)多对多联系在层次模型中的表示用层次模型间接表示多对多联系方法将多对多联系分解成一对多联系分解方法冗余结点法虚拟结点法第八十页,共626页。2.层次模型的数据操纵查询插入删除更新第八十一页,共626页。3.层次模型的完整性约束无相应的双亲结点值就不能插入子女结点值如果删除双亲结点值,则相应的子女结点值也被同时删除更新操作时,应更新所有相应记录,以保证数据的一致性第八十二页,共626页。4.层次数据模型的存储结构邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序链接法用指引元来反映数据之间的层次联系子女-兄弟链接法P26层次序列链接法P26第八十三页,共626页。5.层次模型的优缺点优点层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持缺点多对多联系表示不自然对插入和删除操作的限制多查询子女结点必须通过双亲结点层次命令趋于程序化第八十四页,共626页。6.典型的层次数据库系统IMS数据库管理系统第一个大型商用DBMS1968年推出IBM公司研制第八十五页,共626页。第二章关系数据库第八十六页,共626页。第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结第八十七页,共626页。关系数据库系统概述关系数据库的发展CODASYL于1962年发表的“信息代数”一文

从1970年起发表了一系列的论文20世纪70年代末的实验系统SystemR和Ingres从20世纪80年代逐步走向成熟第八十八页,共626页。关系数据库简介关系数据库应用数学方法来处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统第八十九页,共626页。关系数据库简介典型实验系统SystemRUniversityINGRES典型商用系统ORACLESYBASEINFORMIXDB2INGRES第九十页,共626页。第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结第九十一页,共626页。2.1关系模型概述关系数据库系统是支持关系模型的数据库系统关系模型的组成关系数据结构关系操作集合关系完整性约束第九十二页,共626页。1.关系数据结构单一的数据结构关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。第九十三页,共626页。2.关系操作集合1)常用的关系操作2)关系操作的特点3)关系数据语言的种类4)关系数据语言的特点第九十四页,共626页。关系操作集合(续)1)常用的关系操作查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改查询的表达能力是其中最主要的部分第九十五页,共626页。关系操作集合(续)2)关系操作的特点集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录文件系统的数据操作方式第九十六页,共626页。关系操作集合(续)3)关系数据语言的种类关系代数语言用对关系的运算来表达查询要求典型代表:ISBL第九十七页,共626页。关系操作集合(续)关系数据语言的种类(续)关系演算语言:用谓词来表达查询要求元组关系演算语言谓词变元的基本对象是元组变量典型代表:APLHA,QUEL域关系演算语言谓词变元的基本对象是域变量典型代表:QBE具有关系代数和关系演算双重特点的语言典型代表:SQL第九十八页,共626页。关系操作集合(续)4)关系数据语言的特点关系语言是一种高度非过程化的语言存取路径的选择由DBMS的优化机制来完成用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价第九十九页,共626页。3.关系完整性约束在数据库中数据完整性是指保证数据正确的特性。它包括两方面的内容:

与现实世界中应用需求的数据的相容性和正确性;数据库内数据之间的相容性和正确性。

在关系数据模型中一般将数据完整性分为三类

实体完整性参照完整性用户定义完整性

第一百页,共626页。第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结第一百零一页,共626页。2.2关系数据结构关系数据结构非常简单,在关系数据模型中,现实世界中的实体及实体与实体之间的联系均用关系来表示。从逻辑或用户的观点来看,关系就是二维表。

第一百零二页,共626页。2.2关系数据结构2.2.1关系2.2.2关系模式2.2.3关系数据库第一百零三页,共626页。2.2.1关系⒈域(Domain)2.笛卡尔积(CartesianProduct)3.关系(Relation)第一百零四页,共626页。⒈域(Domain)域是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数长度指定长度的字符串集合{‘男’,‘女’}介于某个取值范围的日期第一百零五页,共626页。2.笛卡尔积(CartesianProduct)1)笛卡尔积给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一个组合不能重复第一百零六页,共626页。笛卡尔积(续)例给出三个域:

D1=SUPERVISOR={张清玫,刘逸}

D2=SPECIALITY={计算机专业,信息专业}D3=POSTGRADUATE={李勇,刘晨,王敏}则D1,D2,D3的笛卡尔积为:D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}第一百零七页,共626页。笛卡尔积(续)2)元组(Tuple)笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。

3)分量(Component)笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。

第一百零八页,共626页。笛卡尔积(续)4)基数(Cardinalnumber)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:在上例中,基数:2×2×3=12,即D1×D2×D3共有2×2×3=12个元组第一百零九页,共626页。笛卡尔积(续)5)笛卡尔积的表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中,12个元组可列成一张二维表第一百一十页,共626页。

第一百一十一页,共626页。笛卡尔积(续)第一百一十二页,共626页。3.关系(Relation)1)关系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为

R(D1,D2,…,Dn)

R:关系名n:关系的目或度(Degree)第一百一十三页,共626页。关系(续)注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。由于笛卡尔积不满足交换律,即(d1,d2,…,dn)≠(d2,d1,…,dn)

但关系满足交换律,即(d1,d2,…,di,dj,…,dn)=(d1,d2,…,dj,di

,…,dn)(i,j=1,2,…,n)解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性第一百一十四页,共626页。关系(续)例在表2.1的笛卡尔积中取出有实际意义的元组来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)关系名,属性名假设:导师与专业:1:1,导师与研究生:1:n于是:SAP关系可以包含三个元组{(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),(刘逸,信息专业,王敏)}

第一百一十五页,共626页。关系(续)2)元组关系中的每个元素是关系中的元组,通常用t表示。3)单元关系与二元关系当n=1时,称该关系为单元关系(Unaryrelation)。当n=2时,称该关系为二元关系(Binaryrelation)。第一百一十六页,共626页。关系(续)4)关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。第一百一十七页,共626页。关系(续)5)属性关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。第一百一十八页,共626页。关系(续)6)码候选码(Candidatekey)若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码在最简单的情况下,候选码只包含一个属性。称为全码(All-key)在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)第一百一十九页,共626页。关系(续)码(续)主码若一个关系有多个候选码,则选定其中一个为主码(Primarykey)主码的诸属性称为主属性(Primeattribute)。不包含在任何侯选码中的属性称为非码属性(Non-keyattribute)第一百二十页,共626页。关系(续)7)三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据第一百二十一页,共626页。8)基本关系的性质①列是同质的(Homogeneous)每一列中的分量是同一类型的数据,来自同一个域②不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名第一百二十二页,共626页。基本关系的性质(续)上例中也可以只给出两个域:人(PERSON)=张清玫,刘逸,李勇,刘晨,王敏专业(SPECIALITY)=计算机专业,信息专业SAP关系的导师属性和研究生属性都从PERSON域中取值为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。例如定义:导师属性名为SUPERVISOR-PERSON(或SUPERVISOR)研究生属性名为POSTGRADUATE-PERSON(或POSTGRADUATE)第一百二十三页,共626页。基本关系的性质(续)③列的顺序无所谓列的次序可以任意交换遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序第一百二十四页,共626页。基本关系的性质(续)④任意两个元组不能完全相同由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质。例如:Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。第一百二十五页,共626页。基本关系的性质(续)⑤行的顺序无所谓行的次序可以任意交换遵循这一性质的数据库产品(如ORACLE),插入一个元组时永远插至最后一行但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了元组的顺序第一百二十六页,共626页。基本关系的性质(续)⑥分量必须取原子值每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条第一百二十七页,共626页。2.2关系数据结构2.2.1关系2.2.2关系模式2.2.3关系数据库第一百二十八页,共626页。2.2.2关系模式1.什么是关系模式2.定义关系模式3.关系模式与关系第一百二十九页,共626页。1.什么是关系模式关系模式(RelationSchema)是型-静态稳定关系是值-动态变化,因为操作更新数据库中数据关系模式需要描述:域:元组语义以及完整性约束条件元组:该关系所涉及的属性集的笛卡尔积的一个元素关系是元组的集合,笛卡尔积的子集。关系模式必须指出这个元组集合的结构,由哪些属性构成,这些属性来自哪些域,属性与域之间的映像关系。关系由元组语义-n目谓词确定,n目谓词为真的笛卡尔积中的元素的全体就构成了该关系模式的关系。第一百三十页,共626页。2.定义关系模式定义:关系的描述称为关系模式,可以形式化地表示为:

R(U,D,dom,F) R关系名 U组成该关系的属性名集合 D属性组U中属性所来自的域 dom属性向域的映象集合 F属性间的数据依赖关系集合第一百三十一页,共626页。定义关系模式(续)例:导师和研究生出自同一个域——人,必须取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON第一百三十二页,共626页。定义关系模式(续)关系模式通常可以简记为

R(U)或

R(A1,A2,…,An)

R关系名A1,A2,…,An属性名注:域名及属性向域的映象常常直接说明为属性的类型、长度第一百三十三页,共626页。3.关系模式与关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系通过上下文加以区别第一百三十四页,共626页。2.2关系数据结构2.2.1关系2.2.2关系模式2.2.3关系数据库第一百三十五页,共626页。2.2.3关系数据库1.关系数据库2.关系数据库的型与值第一百三十六页,共626页。1.关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。第一百三十七页,共626页。2.关系数据库的型与值关系数据库也有型和值之分关系数据库的型称为关系数据库模式,是对关系数据库的描述若干域的定义在这些域上定义的若干关系模式关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库第一百三十八页,共626页。第二章关系数据库2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结第一百三十九页,共626页。2.3关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。第一百四十页,共626页。关系的完整性(续)2.3.1实体完整性2.3.2.参照完整性2.3.3.用户定义的完整性第一百四十一页,共626页。2.3.1实体完整性实体完整性规则(EntityIntegrity)若属性A是基本关系R的主属性,则属性A不能取空值例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)如果POSTGRADUATE属性为主码,因为前两个属性一定会重,(假设研究生不会重名),则其不能取空值第一百四十二页,共626页。实体完整性规则实体完整性是要保证关系中的每个元组都是可识别和唯一的。实体完整性规则的具体内容是:若属性A是关系R的主属性,则属性A不可以为空值。实体完整性是关系模型必须满足的完整性约束条件,也称作是关系的不变性。关系数据库管理系统可以用主关键字实现实体完整性,这是由关系系统自动支持的。第一百四十三页,共626页。对实体完整性规则的几点说明实体完整性规则是针对关系而言的,而关系则对应一个现实世界中的实体集。例如,仓库关系对应现实世界中的仓库实体集。现实世界中的实体是可区分的,它们具有某种标识特征;相应地,关系中的元组也是可区分的,在关系中用主关键字做唯一性标识。主关键字中的属性、即主属性不能取空值。如果主属性取空值,则意味着关系中的某个元组是不可标识的,即存在不可区分的实体,这与实体的定义也是矛盾的。第一百四十四页,共626页。关系的完整性2.3.1实体完整性2.3.2.参照完整性2.3.3.用户定义的完整性第一百四十五页,共626页。2.3.2参照完整性1.关系间的引用2.外码3.参照完整性规则第一百四十六页,共626页。1.关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1学生实体、专业实体以及专业与学生间的一对多联系学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)第一百四十七页,共626页。两个关系间存在属性的引用,即学生关系引用了专业关系的主码“专业号”。学生关系中的专业号值必须是确实存在的专业,即,学生关系中的某个属性的取值需要参照专业关系的属性取值。第一百四十八页,共626页。

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

第一百四十九页,共626页。关系间的引用(续)例2学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)第一百五十页,共626页。例2要说明的也是属性间存在引用。同样,选修关系中的学号必须是学生关系中有记录的学生,选修关系中的课程号值必须是课程关系中确实存在的。选修关系中某些属性的取值需要参照其他关系中属性的取值。第一百五十一页,共626页。

学生学生选课课程第一百五十二页,共626页。关系间的引用(续)例3学生实体及其内部的领导联系(一对多)

学生(学号,姓名,性别,专业号,年龄,班长)班长引用了本关系中“学号”属性,即必须是确实存在的学生的学号第一百五十三页,共626页。2.外码(ForeignKey)设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(ReferencingRelation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。第一百五十四页,共626页。外码(续)说明关系R和S不一定是不同的关系目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别第一百五十五页,共626页。3.参照完整性规则若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。第一百五十六页,共626页。参照完整性规则(续)学生关系中每个元组的“专业号”属性只取下面两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中第一百五十七页,共626页。例1中“专业号”为学生关系的外码,专业关系为被参照关系专业号学生关系

专业关系例2中(略)

学号课程号学生关系选修关系课程关系

第一百五十八页,共626页。参照完整性规则(续)选修(学号,课程号,成绩)“学号”和“课程号”是选修关系中的主属性按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值第一百五十九页,共626页。参照完整性规则(续)学生(学号,姓名,性别,专业号,年龄,班长)“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;(2)非空值,这时该值必须是本关系中某个元组的学号值第一百六十页,共626页。关系的完整性(续)2.3.1实体完整性2.3.2.参照完整性2.3.3.用户定义的完整性第一百六十一页,共626页。2.3.3用户定义的完整性一种与应用密切相关的数据完整性约束,如某个属性的值必须唯一某个非主属性不能取空值某个属性的取值必须在某个范围内某些属性值之间应该满足一定的函数关系等类似以上的约束不是关系数据模型本身所要求的,而是为了满足具体应用必须的语义要求在用户定义完整性中最常见的是限定属性的取值范围,即对值域的约束,所以在用户定义完整性中最常见的是域完整性约束。第一百六十二页,共626页。用户定义完整性约束的作用执行插入操作时检查完整性执行插入操作时需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。执行删除操作时检查完整性执行删除操作时一般只需要检查参照完整性规则。执行更新操作时检查完整性执行更新操作可以看作是先删除旧的元组,然后再插入新的元组。所以执行更新操作时的完整性检查综合了上述两种情况。第一百六十三页,共626页。用户定义的完整性(续)例: 课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3,4}第一百六十四页,共626页。2.4关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,是用对关系的运算表达查询的。三大要素:运算对象、运算符、运算结果运算符:集合运算符∪,-,∩,×专门的关系运算符∏÷……算术比较符≥≠……逻辑运算符∨∧……第一百六十五页,共626页。引入记号关系模式R(A1,A2,…,An),t∈R表示R的一个元组t。t[Ai]表示属性元组t中相应于属性Ai的分量若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An的一部分A称作属性列或域列。元组的连接给定关系R(X,Z),定义当t[X]=x时,x在R中的象集为表示R中属性组X上值为x的诸元组在Z上分量的集合。第一百六十六页,共626页。2.4关系代数关系的数据操作集合查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改第一百六十七页,共626页。关系的完整性约束实体完整性参照完整性外码用户定义的完整性第一百六十八页,共626页。第三章关系数据库标准语言 SQL第一百六十九页,共626页。3.1SQL概述SQL的特点1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方法5.语言简洁,易学易用第一百七十页,共626页。5.语言简捷,易学易用第一百七十一页,共626页。3.2数据定义第一百七十二页,共626页。3.2.1定义语句格式CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束>],<列名><数据类型>[<列级完整性约束>],……,[<表级完整性约束>])[<其它参数>]Ÿ

<表名>给出要创建的基本表的名称;Ÿ

<列名>给出列名或字段名;Ÿ

<数据类型>Ÿ

<列级完整性约束>Ÿ

<表级完整性约束>Ÿ

<其它参数>第一百七十三页,共626页。为列指定数据类型及其数据宽度;

关系数据库支持非常丰富的数据类型,不同的数据库管理系统支持的数据类型基本是一样的,右表列出了常用的数据类型。

数据类型第一百七十四页,共626页。用于定义列或字段一级的完整性约束,一般包括:NOTNULL和NULL约束

PRIMARYKEY约束

UNIQUE约束

FOREIGNKEY约束

DEFAULT定义

CHECK约束

列级完整性约束第一百七十五页,共626页。用于定义表一级的完整性约束,一般包括:PRIMARYKEY约束(复合属性构成的主关键字说明)FOREIGNKEY约束(外部关键字及参照关系说明)CHECK约束(同时涉及到多个属性的域完整性约束)

表级完整性约束第一百七十六页,共626页。不是SQL的标准选项,一般用于与物理存储有关的说明,不同的数据库管理系统定义的方式肯定不同,另外该项参数一般也不是必需的。

其他参数第一百七十七页,共626页。例题[例1]建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15));第一百七十八页,共626页。二、修改基本表ALTERTABLE<表名>[ADD<新列名><数据类型>[<列级完整性约束>]]|[DROP<完整性约束名>][MODIFY<列名><数据类型>][DROPCOLUMN<列名>][ALTERCOLUMN<列名><数据类型>[<列级完整性约束>]]第一百七十九页,共626页。例题[例2]向Student表增加“入学时间”列,其数据类型为日期型。

ALTERTABLEStudentADDScomeDATE;不论基本表中原来是否已有数据,新增加的列一律为空值。

第一百八十页,共626页。例题[例3]将年龄的数据类型改为半字长整数。

ALTERTABLEStudentMODIFYSageSMALLINT;修改原有的列定义可能会破坏已有数据。

第一百八十一页,共626页。例题[例4]删除关于学号必须取唯一值的约束。

ALTERTABLEStudentDROPUNIQUE(Sno);SQL没有提供删除属性列的语句,只能间接实现,先将原表中要保留的列及其内容复制到一个新表中,然后删除原表,并将新表命名为原表名。

第一百八十二页,共626页。三、删除基本表 DROPTABLE<表名>;

基本表删除 数据、表上的索引都删除 表上的视图往往仍然保留,但 无法引用删除基本表时,系统会自动从数据字典中删去有关该基本表及其索引的描述,因此建立在此表上的视图虽然已保留,但已无法引用第一百八十三页,共626页。例题例5删除Student表DROPTABLEStudent;第一百八十四页,共626页。3.2.2建立与删除索引建立索引是加快查询速度的有效手段建立索引DBA或表的属主(即建立表的人)根据需要建立和删除有些DBMS自动建立以下列上的索引

PRIMARYKEYUNIQUE维护索引

DBMS自动完成

使用索引

DBMS自动选择是否使用索引以及使用哪些索引第一百八十五页,共626页。一、建立索引语句格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…); 用<表名>指定要建索引的基本表名字索引可以建立在该表的一列或多列上,各列名之间用逗号分隔用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一个索引值只对应唯一的数据记录CLUSTER表示要建立的索引是聚簇索引第一百八十六页,共626页。建立索引(续)唯一值索引对于已含重复值的属性列不能建UNIQUE索引对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束第一百八十七页,共626页。建立索引(续)聚簇索引建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中记录的物理顺序一致例:CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一个聚簇索引,而且Student表中的记录将按照Sname值的升序存放

第一百八十八页,共626页。建立索引(续)在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的适用范围很少对基表进行增删操作很少对其中的变长列进行修改操作第一百八十九页,共626页。聚簇索引是指索引项的顺序与表中记录的物理顺序一致的索引组织。例CREATECLUSTERINDEXStusnameONStudent(Sname);将会在Student表的Sname列上建一个聚簇索引,而且记录会按照Sname值的升序存放。用户可以在最常查询的列上建立聚簇索引以提高查询效率。但在一个基本表上只能建一个,而且更新索引列数据会导致表中记录的物理顺序的变更,因此经常更新的数据列不宜建立。第一百九十页,共626页。例题[例6]为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno)CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);第一百九十一页,共626页。二、删除索引DROPINDEX<索引名>;删除索引时,系统会从数据字典中删去有关该索引的描述。[例7]删除Student表的Stusname索引。 DROPINDEXStusname;第一百九十二页,共626页。3.3.1概述语句格式SELECT[ALL|DISTINCT]<目标表达式>[,<目标表达式>]…FROM<表名或视图名>[,<表名或视图名>…][WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];第一百九十三页,共626页。示例数据库学生-课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:SC(Sno,Cno,Grade)第一百九十四页,共626页。3.3查询3.3.1概述3.3.2单表查询3.3.3连接查询3.3.4嵌套查询3.3.5集合查询3.3.6小结第一百九十五页,共626页。3.3.2单表查询查询仅涉及一个表,是一种最简单的查询操作一、选择表中的若干列二、选择表中的若干元组三、对查询结果排序四、使用集函数五、对查询结果分组

第一百九十六页,共626页。从职工关系中检索所有工资值SELECT工资FROM职工结果是:12201210125012301250SELECTDISTINCT工资FROM职工结果是:1220121012501230第一百九十七页,共626页。单表查询用户在查询时可根据应用的需要改变列的显示顺序例2查询全体学生的姓名、学号、所在系。查询全部列-将所有的列名在SELECT后面列出或者用*表示列名例3SELECT*FROMStudent;查询经过计算的值例4查询全体学生姓名及其出生年份SELECTSname,1996-SageFROMStudent;第一百九十八页,共626页。单表查询<目标列表达式>不仅可以是算术表达式,还可以是字符串常量、函数等。例5查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名SELECTSname,’YearofBirth:’,1996-Sage,ISLOWER(Sdept)FROMStudent;输出结果:Sname’YearofBirth:’1996-SageISLOWER(Sdept)

李勇YearofBirth:1976cs刘晨YearofBirth:1977is王名YearofBirth:1978ma张立YearofBirth:1977is第一百九十九页,共626页。[例5.*]使用列别名改变查询结果的列标题SELECTSnameNAME,'YearofBirth:’

BIRTH,

2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROM

Student;输出结果:

NAMEBIRTHBIRTHDAYDEPARTMENT

李勇YearofBirth:1976cs刘晨YearofBirth:1977is王名YearofBirth:1978ma张立YearofBirth:1977is第二百页,共626页。二、选择表中的若干元组消除取值重复的行查询满足条件的元组第二百零一页,共626页。1.消除取值重复的行在SELECT子句中使用DISTINCT短语假设SC表中有下列数据 SnoCnoGrade

9500119295001285950013889500229095002380第二百零二页,共626页。ALL与

DISTINCT

[例6]查询选修了课程的学生学号。(1)SELECTSnoFROMSC;(因为默认的是ALL)SELECTALLSnoFROMSC;

所以结果为:Sno

9500195001950019500295002第二百零三页,共626页。例题(续)(2)SELECTDISTINCTSnoFROMSC;

结果:

Sno

9500195002总结:两个本来并不完全相同的元组,投影到指定的某些列上后,可能变成完全相同的行,于是必须用DISTINCT短语或象下面那样用WHERE语句。第二百零四页,共626页。2.查询满足条件的元组WHERE子句常用的查询条件第二百零五页,共626页。(1)比较大小在WHERE子句的<比较条件>中使用比较运算符=,>,<,>=,<=,!=或<>,!>,!<,逻辑运算符NOT+比较运算符[例8]查询所有年龄在20岁以下的学生姓名及其年龄。

SELECTSname,Sage

FROMStudentWHERESage<20;或SELECTSname,SageFROMStudentWHERENOTSage>=20;

第二百零六页,共626页。例9查询考试成绩有不及格的学生的学号SELECTDISTINCTSnoFROMSCWHEREGrade<60;第二百零七页,共626页。(2)确定范围使用谓词BETWEEN…(下限)AND…(上限)NOTBETWEEN…AND…[例10]查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。

SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;

第二百零八页,共626页。例题(续)[例11]查询年龄不在20~23岁之间的学生姓名、系别和年龄。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;

第二百零九页,共626页。(3)确定集合使用谓词IN<值表>,NOTIN<值表>

<值表>:用逗号分隔的一组取值[例12]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');第二百一十页,共626页。(3)确定集合[例13]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。SELECTSname,SsexFROMStudent WHERESdeptNOTIN('IS','MA','CS');第二百一十一页,共626页。(4)字符串匹配[NOT]LIKE‘<匹配串>’[ESCAPE‘<换码字符>’]<匹配串>:指定匹配模板匹配模板:固定字符串或含通配符的字符串当匹配模板为固定字符串时,即不含通配符时可以用=运算符取代LIKE谓词用!=或<>运算符取代NOTLIKE谓词第二百一十二页,共626页。通配符%(百分号)代表任意长度(长度可以为0)的字符串例:a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab等都满足该匹配

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论