全套课件-数据库系统原理与应用.ppt

上传人(卖家):三亚风情 文档编号:3199034 上传时间:2022-08-01 格式:PPT 页数:604 大小:5.01MB
下载 相关 举报
全套课件-数据库系统原理与应用.ppt_第1页
第1页 / 共604页
全套课件-数据库系统原理与应用.ppt_第2页
第2页 / 共604页
全套课件-数据库系统原理与应用.ppt_第3页
第3页 / 共604页
全套课件-数据库系统原理与应用.ppt_第4页
第4页 / 共604页
全套课件-数据库系统原理与应用.ppt_第5页
第5页 / 共604页
点击查看更多>>
资源描述

1、第1章 数据库基本知识 1.1 信息、数据与数据处理 1.2 数据库系统 1.3 数据模型1.1 信息、数据与数据处理 1.1.1 数据与信息 1.1.2 数据处理 1.1.3 数据处理的发展 1.1.4 数据库技术的发展 1.1.5 数据库新技术返回首页1.1.1 数据与信息 数据的概念包括两个方面,即数据内容和数据形式。数据内容是指所描述客观事物的具体特性,也就是通常所说的数据的“值”;数据形式则是指数据内容存储在媒体上的具体形式,也就是通常所说的数据的“类型”。数据主要有数字、文字、声音、图形和图像等多种形式。信息是指数据经过加工处理后所获取的有用知识。信息是以某种数据形式表现的。数据和

2、信息是两个相互联系、但又相互区别的概念;数据是信息的具体表现形式,信息是数据有意义的表现。返回本节1.1.2 数据处理 数据处理就是将数据转换为信息的过程。数据处理的内容主要包括:数据的收集、整理、存储、加工、分类、维护、排序、检索和传输等一系列活动的总和。数据处理的目的是从大量的数据中,根据数据自身的规律和及其相互联系,通过分析、归纳、推理等科学方法,利用计算机技术、数据库技术等技术手段,提取有效的信息资源,为进一步分析、管理和决策提供依据。数据处理也称信息处理。返回本节1.1.3 数据处理的发展1人工管理阶段 早期的计算机主要用于科学计算,计算处理的数据量很小,基本上不存在数据管理的问题。

3、从50年代初,开始将计算机应用于数据处理。2文件管理阶段 从50年代后期开始至60年代末为文件管理阶段,应用程序通过专门管理数据的软件即文件系统管理来使用数据。3数据库管理阶段 数据库管理阶段是60年代末在文件管理基础上发展起来的。应用程序 1 应用程序 2 应用程序 n 数据组 1 数据组 2 数据组 3 图1-1 人工管理阶段程序与数据的关系 图1-2 文件管理阶段程序与数据的关系图1-3 应用程序与数据之间的关系返回本节1.1.4 数据库技术的发展(1)1969年IBM公司研制、开发了数据库管理系统商品化软件IMS(Information Management System),IMS的数

4、据模型是层次结构的。(2)美国数据系统语言协会CODASYL(Conference On Data System Language)下属的数据库任务组DBTG(Data Base Task Group)对数据库方法进行系统的讨论、研究,提出了若干报告,成为OBTG报告。OBTG报告确定并且建立了数据库系统的许多概念、方法和技术。(3)1970年IBM公司San Jose研究实验室的研究员E.F.Codd发表了著名的“大型共享系统的关系数据库的关系模型”论文,为关系数据库技术奠定了理论基础。自20世纪70年代开始,数据库技术有了很大的发展,表现为:(1)数据库方法,特别是OBTG方法和思想应用于

5、各种计算机系统,出现了许多商品化数据库系统,它们大都是基于网状模型和层次模型的。(2)这些商用系统的运行,使数据库技术日益广泛地应用到企业管理、事务处理、交通运输、信息检索、军事指挥、政府管理和辅助决策等各个方面,深入到生产、生活的各个领域。数据库技术成为实现和优化信息系统的基本技术。(3)关系方法的理论研究和软件系统的研制取得了很大的成果。返回本节1.1.5 数据库新技术 1分布式数据库分布式数据库系统(Distributed DataBase System,DDBS)是在集中式数据库基础上发展起来的,是数据库技术与计算机网络技术、分布处理技术相结合的产物。分布式数据库系统的主要特点如下:(

6、1)数据是分布的。(2)数据是逻辑相关的。(3)结点的自治性。2面向对象数据库 面向对象数据库系统(Object-Oriented DataBase System,OODBS)是将面向对象的模型、方法和机制,与先进的数据库技术有机地结合而形成的新型数据库系统。它从关系模型中脱离出来,强调在数据库框架中的发展类型、数据抽象、继承和持久性;它的基本设计思想是,一方面把面向对象语言向数据库方向扩展,使应用程序能够存取并处理对象;另一方面扩展数据库系统,使其具有面向对象的特征,提供一种综合的语义数据建模概念集,以便对现实世界中复杂应用的实体和联系建模。3多媒体数据库多媒体数据库系统(Multi-Med

7、ia DataBase System,MDBS)是数据库技术与多媒体技术相结合的产物。(1)数据量大。(2)结构复杂。(3)时序性。(4)数据传输的连续性。从实际应用的角度考虑,多媒体数据库管理系统(MDBMS)应具有如下基本功能:(1)应能够有效地表示多种媒体数据,对不同媒体的数据,如文本、图形、图像、声音等能够按应用的不同,采用不同的表示方法。(2)应能够处理各种媒体数据,正确识别和表现各种媒体数据的特征、各种媒体间的空间或时间的关联。(3)应能够像其他格式化数据一样对多媒体数据进行操作。(4)应具有开放功能,提供多媒体数据库的应用程序接口等。4数据仓库 数据仓库可以提供对企业数据方便访问

8、和具有强大分析能力的工具,从企业数据中获得有价值的信息,发掘企业的竞争优势,提高企业的运营效率和指导企业决策。数据仓库作为决策支持系统(Decision Support System,DSS)的有效解决方案,涉及三方面的技术内容:数据仓库技术、联机分析处理(On-Line Analysis Processing,OLAP)技术和数据挖掘(Data Mining,DM)技术。返回本节1.2 数据库系统 1.2.1 数据库系统的组成 1.2.2 数据库系统体系结构 1.2.3 数据库管理系统的功能 1.2.4 数据库管理系统的组成 1.2.5 数据库系统的特点返回首页1.2.1 数据库系统的组成

9、1计算机硬件 2数据库管理系统 3数据库 4应用程序 5数据库用户 返回本节1.2.2 数据库系统体系结构 1模式模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构。2外模式外模式又称子模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。3内模式内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。4数据库系统的二级映射数据库系统的三级模式是数据在三个级

10、别(层次)上的抽象,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的物理表示和存储。数据库 内模式 全局视图 概念模式-内模式映射 外模式 1 外模式 1 物理级 存储视图 概念模式 概念级 用户视图 外模式-概念模式映射 用户级 应用程序 1 应用程序 2 应用程序 3 应用程序 4 OS DBMS 图1-5 数据库系统的体系结构返回本节1.2.3 数据库管理系统的功能 1数据库定义(描述)功能 2数据库操纵功能 3数据库运行管理功能 4数据组织、存储和管理 5数据库的建立和维护 6通信功能返回本节1.2.4 数据库管理系统的组成 1数据定义语言及其编译处理程序 2数据操作语言及其

11、编译程序 3数据库运行控制程序 4实用程序返回本节1.2.5 数据库系统的特点 1数据共享 2减少数据冗余 3具有较高的数据独立性 (1)物理数据独立:(2)逻辑数据独立:4增强了数据安全性和完整性保护 返回本节1.3 数据模型 1.3.1 现实世界的数据描述 1.3.2 数据模型 1.3.3 关系的基本概念及其特点返回首页1.3.1 现实世界的数据描述1信息处理的三个层次(1)现实世界。(2)信息世界。(3)数据世界。2信息世界中的基本概念 (1)实体。(2)属性。(3)域。(4)实体型和实体值。(5)实体集。(6)实体联系。3实体模型实体模型又称概念模型,它是反映实体之间联系的模型。数据库

12、设计的重要任务就是建立实体模型,建立概念数据库的具体描述。在建立实体模型时,实体要逐一命名以示区别,并描述它们之间的各种联系。实体模型只是将现实世界的客观对象抽象为某种信息结构,这种信息结构并不依赖于具体的计算机系统,E-R图是目前常用的概念模型的表示方法。返回本节1.3.2 数据模型 1层次模型(Hierarchical Model)用树形结构表示实体和实体间联系的数据模型称为层次模型。层次模型的基本特点:(1)有且仅有一个结点无父结点,称其为根结点。(2)其他结点有且只一个父结点。2网状模型(Network Model)用网状结构表示实体和实体之间关系的数据模型称为网状模型。网状模型的基本

13、特点:(1)一个以上结点无父结点。(2)至少有一结点有多于一个的父结点。3关系模型(Relational Model)用二维表来表示实体和实体间联系的数据模型称为关系模型。例如,在关系模型中可用如表1-1的形式表示学生对象。关系不但可以表示实体间一对多的联系,也可以方便地表示多对多的联系。学号姓名性别班级名系别代号地址出生日期是否团员备注011110李建国男计012101湖北武汉1984-9-28是 011103李宁女电013402江西九江1985-5-6否 011202赵娜女英011203广西南宁1984-2-21否 011111赵琳女计012101江苏南京1985-11-18是 02140

14、5罗宇波男英011203江苏南通1985-12-12否 表1-1 学生基本情况表返回本节1.3.3 关系的基本概念及其特点1关系的基本概念(1)关系:一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。(2)元组:二维表的每一行在关系中称为元组。(3)属性:二维表的每一列在关系中称为属性,每个属性都有一个属性名,属性值则是各个元组在该属性上的取值。(4)域:属性的取值范围称为域。2关系模型的主要优点关系模型具有如下优点:(1)数据结构单一。关系模型中,不管是实体还是实体之间的联系,都用关系来表示,而关系都对应一张二维数据表,数据结构简单、清晰。(2

15、)关系规范化,并建立在严格的理论基础上。关系中每个属性不可再分割,构成关系的基本规范。同时关系是建立在严格的数学概念基础上,具有坚实的理论基础。(3)概念简单,操作方便。返回本节第2章 关系数据库 2.1 关系数据库概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系数据库管理系统2.1 关系数据库概述 所谓关系数据库就是采用关系模型作为数据的组织方式,换句话说就是支持关系模型的数据库系统。关系模型由三个部分构成:关系数据结构、关系数据操作和完整性约束。返回首页1.关系数据结构关系模型的数据结构非常简单,实际上就是一张二维表,但这种简单的二维表却可以表达丰富的语义,

16、可以很方便地描述出现实世界的实体以及实体之间的各种联系。2.关系数据操作关系数据操作采用集合操作方式,即操作的对象和结果都是集合。关系数据操作包括查询和更新两个部分:查询:选择、投影、连接、除、并、交、差等。更新:增加、删除以及修改3.完整性约束 完整性约束条件是关系数据模型的一个重要组成部分,是为了保证数据库中的数据一致性。完整性约束分为三类:实体完整性、参照完整性和用户定义完整性。返回本节2.2 关系数据结构 2.2.1 关系 2.2.2 关系模式 2.2.3 关系数据库返回首页2.2.1 关系 1域定义 域是一组具有相同数据类型的值的集合。域中所包含的值的个数叫做域的基数。域是需要命名的

17、。2.笛卡尔积定义 给定一组域D1,D2,D3,Dn,则这些域的笛卡尔积为:D1D2D3Dn=(d1,d2,d3,dn)|diDj,i=1,2,n,其中:(1)每一个元组(d1,d2,d3,dn)叫做一个n元组,简称元组。(2)元组的每一个值di叫做一个分量。(3)笛卡尔积的基数为:3关系D1D2Dn的子集叫作在域D1,D2,Dn上的关系,用R(D1,D2,Dn)表示。其中R表示关系的名字,n是关系的目或度(degree)。4码的定义(1)码(Key)。(2)侯选码(Candidate Key)。(3)主码(Primary Key)。(4)主属性(Prime Attribute)。(5)非主属

18、性(Non-Key Attribute)。5关系的三种类型(1)基本关系:基本关系通常又称为基本表或基表,指的是实实在在存在的表。(2)导出表:导出表是从一个或几个基本表进行查询而得到的结果所对应的表。(3)视图:视图是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。6基本关系的6条性质(1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。(2)不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。(3)列的顺序无所谓,即列的次序可以任意交换。(4)任意两个元组不能完全相同。(5)行的顺序无所谓,即行的次序可以任意交换。(6)分量必须取原子值,

19、也就是说每一个分量都必须是不可分的数据项。图书号Bookid图书名Bookname编者Editor价格Price出版社Publish出版年月PubDate库存数QtyTP2001-001数据结构李国庆22.00清华大学出版社2001-01-0820TP2003-002数据结构刘娇丽18.9中国水利水电出版社2003-10-1550TP2002-001高等数学刘自强12.00中国水利水电出版社2002-01-0860TP2003-001数据库系统汪 洋14.00人民邮电出版社2003-05-1826TP2004-005数据库原理与应用刘淳24中国水利水电出版社2004-07-25100表2-2

20、图书关系BOOK借书卡号Cardid读者姓名Name性别Sex工作单位Dept读者类别ClassT0001刘勇男计算机系1S0101丁钰女人事处2S0111张清蜂男培训部3T0002张伟女计算机系1表2-3 读者关系READER图书号Bookid借书卡号Cardid借书日期Bdate还书日期SdateTP2003-002T00012003-11-182003-12-09TP2001-001S01012003-02-282003-05-20TP2003-001S01112004-05-06 TP2003-002S01012004-02-08 表2-4 借书关系BORROW返回本节2.2.2 关系

21、模式所谓关系模式就是对关系的描述。描述的内容包括:元组集合结构:有哪些属性、属性来自哪些域,属性与域之间的映象关系(属性的长度和类型)。元组集合的语义。完整性约束条件:属性间的相互关系,属性的取值范围限制。返回本节2.2.3 关系数据库 所有支持关系数据库模型的实体及实体之间联系的关系集合就构成了一个关系数据库。关系数据库有型与值之分,型称为关系数据库的模式,值称为关系数据库的值。关系数据库模式与关系数据库的值通常统称为关系数据库。返回本节2.3 关系的完整性 1实体完整性 2参照完整性 3.用户定义完整性 返回首页职工姓名Name部门编号DeptNo 部门编号DeptNo部门名称DeptNa

22、me刘勇0101计算机系丁钰0202人事处张清蜂 03电子系 表2-5 职工 表2-6 部门返回本节2.4 关系代数 2.4.1 传统的集合运算 2.4.2 专门的关系运算返回首页运算符含义集合运算符并-差交广义笛卡尔积专门的关系运算符选择投影 连接除表2-7 关系代数运算符运算符含义比较运算符 大于大于或等于小于小于或等于等于不等于逻辑运算符非与或续表2.4.1 传统的集合运算 1并 2差-3.交 4广义笛卡尔积表2-8 传统集合运算举例返回本节2.4.2 专门的关系运算1选择(selection)选择又称为限制,它是在关系R中选择满足给定条件的元组,组成一个新的关系。记作:F(R)=t|t

23、RF(t)=TRUE 2投影(projection)从关系R上选取若干属性列A,并删除重复行,组成新的关系。记作:A(R)=t A|t R投影操作是从列的角度进行的运算。例2-3 查询关系BOOK中所有图书的书名和对应的出版社。Bookname,Publish(Book)结果如下:BooknamePublish数据结构清华大学出版社数据结构中国水利水电出版社高等数学中国水利水电出版社数据库系统人民邮电出版社数据库原理与应用中国水利水电出版社例2-4 查询“中国水利水电出版社”出版的所有藏书的书名和库存数量。Bookname,Qty(Publish=中国水利水电出版社(Book)结果如下:Boo

24、knameQty数据结构50高等数学60数据库原理与应用1003连接(join)连接也称为连接。它是从两个关系R和S的笛卡尔积RS中选取属性间满足一定条件的元组,构成新的关系。记作:BookidBooknamePublishTP2001-001数据结构清华大学出版社TP2003-002数据结构中国水利水电出版社TP2002-001高等数学中国水利水电出版社TP2003-001数据库系统人民邮电出版社TP2004-005数据库原理与应用中国水利水电出版社表2-9(a)R关系CardidBookidT0001TP2003-002S0101TP2001-001S0111TP2003-001S0101

25、TP2003-002表2-9(b)S关系RBookidBookNamePublishSBookidCardidTP2001-001数据结构清华大学出版社TP2001-001S0101TP2003-002数据结构中国水利水电出版社TP2003-002T0001TP2003-002数据结构中国水利水电出版社TP2003-002S0101TP2003-001数据库系统人民邮电出版社TP2003-001S0111表2-9(c)R和S的等值连接4除(division)为了说明除法运算,先得给出象集的概念。象集的定义:给定一个关系R(X,Z),X和Z为属性组。定义当t(X)=时,在R中的象集为:Zx=tZ

26、|tR,tX=x它表示R中属性组X上值为的诸元组在Z上分量的集合。例2-6 设关系R,S分别如表2-10中的(a)和(b)所示,求RS。返回本节2.5 关系数据库管理系统(1)(最小)关系系统。即满足上面最基本的条件,支持关系数据结构,支持选择、投影和连接操作。(2)关系完备系统。支持关系数据结构和所有的关系代数操作。(3)全关系。这类系统支持关系模型的所有特征,而且支持数据结构中域的概念及实体完整性和参照完整性。返回首页第3章 关系数据库标准语言SQL 3.1 SQL概述 3.2 数据定义 3.3 数据查询 3.4 数据更新 3.5 视图 3.6 数据控制3.1 SQL概述 1SQL语言SQ

27、L语言是1974年由BOYCE和CHAMBERLIN提出的。1975年至1979年IBM公司SANJOSE RESEARCH LABORATORY研究的关系数据库管理系统原型系统SYSTEM R实现了这种语言,由于它功能丰富,语言简洁,使用方便,被众多计算机公司和软件公司所采用,经各公司不断修改、扩充和完善,SQL语言最终发展为关系数据库的标准语言。返回首页 2扩展SQL语言尽管ASNI和ISO已经针对SQL制定了一些标准,但标准SQL语言只能完成数据库的大部分操作,不适合为关系数据库编写各种类型的程序,各家厂商针对其各自的数据库软件版本做了某些扩充和修改,一般都根据需要增加了一些非标准的SQ

28、L语言。经扩充后的SQL语言称为扩展SQL语言。返回本节3.2 数据定义 1基本表定义 2修改基本表 3删除基本表 4建立索引 5删除索引返回首页 SQL数据定义功能包括定义基本表、定义视图和定义索引等,如表3-1所示。由于视图是基于基本表的虚表,索引是基于基本表的,因此SQL通常不提供修改视图和索引语句,用户如果要修改视图或索引,只能先将它们删除,然后重新创建。操作对象操作方式创建删除修改基本表CREATE TABLEDROP TABLEALTER TABLE视图CREATE VIEWDROP VIEW 索引CREATE INDEXDROP INDEX 表3-1 SQL数据定义语句1基本表定

29、义CREATE TABLE 表名说明:(1)其中表名是要定义的基本表的名称。一个表可以由一个或多个属性列组成。(2)创建表时通常还可以定义与该表有关的完整性约束条件。(3)数据类型:SQL Server 2000常用数据类型。1)实体完整性定义语法:CONSTRAINT 约束名 PRIMARY KEY(属性列表)2)参照完整性定义语法:CONSTRAINT 约束名 FOREIGN KEY(列名)REFERENCES(被参照表列名)。3)自定义完整性定义语法:列值非空:CONSTRAINT 约束名 NOT NULL。列 值 惟 一:C O N S T R A I N T 约 束 名 UNIQUE

30、(属性列表)。逻辑表达式:CONSTRAINT 约束名 CHECK(表达式)。例3-1 创建图书信息表、读者信息表和借阅表。(1)创建图书信息表。CREATE TABLE BOOK(BOOKID CHAR(20)PRIMARY KEY,BOOKNAME VARCHAR(60)NOT NULL,EDITOR CHAR(8),PRICE NUMERIC(5,2),PUBLISH CHAR(30),PUBDATE DATETIME,QTY INT)(2)创建读者信息表。CREATE TABLE READER(CARDID CHAR(10)PRIMARY KEY,NAME CHAR(8),SEX CH

31、AR(2),DEPT CHAR(20),CLASS INT)-读者类型:1代表教师,2代表学生,3代表临时读者。(3)创建借阅表。CREATE TABLE BORROW(BOOKID CHAR(20),CARDID CHAR(10),BDATE DATETIME NOT NULL,SDATE DATETIME NOT NULL,PRIMARY KEY(BOOKID,CARDID,BDATE),CONSTRAINT FK_BOOKID FOREIGN KEY(BOOKID)REFERENCES BOOK(BOOKID),CONSTRAINT FK_CARDID FOREIGN KEY(CARDI

32、D)REFERENCES READER(CARDID)2修改基本表随着应用环境和应用需求的变化,有时需要修改已建立好的基本表,包括增加新列、增加新的完整性约束条件、修改原有的列定义或删除已有的完整性约束条件等。SQL语言用ALTER TABLE语句修改基本表,其一般格式为:ALTER TABLE ALTER COLUMN NULL|NOT NULLADD 完整性约束 ADD DROP CONSTRAINT DROP COLUMN 例3-2 在图书信息表中增加一列出版时期(PUBDATE),并将BOOKID列宽改为15。ALTER TABLE BOOK ADD PUBDATE DATETIME

33、GOALTER TABLE BOOK ALTER COLUMN BOOKID CHAR(15)例3-3 删除借阅表中的参照完整性。ALTER TABLE BORROW DROP CONSTRAINT FK_BOOKIDGO ALTER TABLE BORROW DROP CONSTRAINT FK_CARDID 3删除基本表当某个基本表不再需要时,可以使用SQL语句DROP TABLE进行删除。其一般格式为:DROP TABLE 4建立索引在SQL语言中,建立索引使用CREATE INDEX语句,其一般格式为:CREATE UNIQUE CLUSTER INDEX ON (,);5删除索引索引

34、一经建立,就由系统使用和维护它,不需要用户干预。建立索引是为了减少查询操作的时间,但如果数据修改频繁,系统会花费许多时间来维护索引。这时,可以删除一些不必要的索引。返回本节3.3 数据查询 3.3.1 单表查询 3.3.2 多表查询 3.3.3 嵌套查询返回首页建立数据库的目的是为了查询数据,因此,可以说数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:SELECT ALL|DISTINCT ,FROM ,别名 WHERE GROUP BY HAVING ORDER BY ASC|DESC ;3.3.1 单表查询

35、 1选择表中的若干列 2选择表中满足条件的记录 3对查询结果排序 4使用集函数 5分组统计 1选择表中的若干列 选择表中的全部列或部分列,这类运算又称为投影。其变化方式主要表现在SELECT子句的上。例3-6 查询所有读者的卡号和姓名。SELECT CARDID,NAMEFROM READER例3-7 查询所有图书信息。SELECT *FROM BOOK说明:*代表所有列2选择表中满足条件的记录 查询满足指定条件的元组可以通过WHERE子句实现。条件表达式是操作数与运算符的组合,操作数可以包括常数、变量和字段等。常用运算符如表3-2所示。(1)比较运算:(2)确定范围:(3)集合运算:(4)字

36、符匹配:(5)空值判断:(6)逻辑运算:查询条件运算符比较=,=,=,!=,确定范围BETWEEN.AND.NOT BETWEEN.AND集合运算IN,NOT IN字符匹配LIKE,NOT LIKE空值判断IS NULL,IS NOT NULL逻辑运算AND,OR,NOT表3-2 常用运算符3对查询结果排序 如果没有指定查询结果的显示顺序,DBMS将按其最方便的顺序(通常是元组在表中的先后顺序)输出查询结果。用户也可以用ORDER BY子句指定按照一个或多个属性列的升序(ASC)或降序(DESC)重新排列查询结果,其中升序ASC为缺省值。4使用集函数 为了进一步方便用户,增强检索功能,SQL提

37、供了许多集函数,主要包括:COUNT(DISTINCT|ALL *)统计元组个数。COUNT(DISTINCT|ALL )统计一列中值的个数。SUM(DISTINCT|ALL )计算一列值的总和(此列必须是数值型)。AVG(DISTINCT|ALL )计算一列值的平均值(此列必须是数值型)。MAX(DISTINCT|ALL )计算一列值的最大值。MIN(DISTINCT|ALL )计算一列值的最小值。5分组统计 GROUP BY子句可以将查询结果中的各行按一列或多列取值相等的原则进行分组。分组一般与集函数一起使用。对查询结果分组的目的是为了细化集函数的作用范围。如果未对查询结果分组,集函数将作

38、用于整个查询结果,即对查询结果中的所有记录进行计算。如果有分组,集函数将作用于每一个分组,即集函数对每个组分别进行计算。返回本节3.3.2 多表查询 1等值与非等值连接查询 2自然连接 3自身连接 4外连接 5连接查询综合实例 1等值与非等值连接查询 当用户的一个查询请求涉及到数据库的多个表时,必须按照一定的条件把这些表连接在一起,以便能够共同提供用户需要的信息。用来连接两个表的条件称为连接条件或连接谓词,其一般格式为:.例3-24 查询所有有借书未还的读者的姓名。SELECT NAMEFROM READER,BORROWWHERE READER.CARDID=BORROW.CARDID AN

39、D SDATE IS NULL结果如下:NAME -丁钰 张清蜂 -例3-25 查询所有读者信息及借阅情况。SELECT READER.*,BORROW.*FROM READER,BORROWWHERE READER.CARDID=BORROW.CARDID该查询结果中将包含READER和BORROW表中的所有列。2自然连接 如果按照两个表中的相同属性进行等值连接,且目标列中去掉了重复的属性列,但保留所有不重复的属性列,则称为自然连接。例3-26 自然连接READER和BORROW表。SELECT READER.CARDID,NAME,SEX,DEPT,CLASS,BOOKID,BDATE,S

40、DATEFROM READER,BORROWWHERE READER.CARDID=BORROW.CARDID查询结果如下:3自身连接 连接操作不仅可以在两个表之间操作,也可以是一个表与其自己进行连接,这种操作称为自身连接。例3-27 查询书名相同而出版社不同的所有图书的书名。SELECT DISTINCT B1.BOOKNAMEFROM BOOK B1,BOOK B2WHERE B1.BOOKNAME=B2.BOOKNAME AND B1.PUBLISHB2.PUBLISH查询结果为:BOOKNAME -数据结构-4外连接 在通常的连接操作中,只有满足连接条件的元组才能作为结果输出。如例3-

41、26,如果某读者还没有借书记录,在结果集中就看不到该读者的信息。外连接又分为左外连、右外连和全外连。左外连:查询结果中不仅包含符合连接条件的行,而且包含左表中所有数据行。右外连:查询结果中不仅包含符合连接条件的行,而且包含右表中所有数据行。全外连:查询结果中不仅包含符合连接条件的行,而且包含两个连接表中所有数据行。5连接查询综合实例 例3-29 查询借书期限超过2个月的所有读者的姓名、所借书籍名和借书日期。SELECT NAME,BOOKNAME,BDATEFROM BOOK,READER,BORROWWHERE BOOK.BOOKID=BORROW.BOOKID AND READER.CAR

42、DID=BORROW.CARDIDAND DATEDIFF(MM,BDATE,GETDATE()2例3-30 按读者姓名查询指定读者的借还书历史记录。假设读者姓名为“刘勇”。SELECT BOOK.NAME,BDATE,SDATEFROM BORROW,BOOK,READERWHERE BOOK.BOOKID=BORROW.BOOKID AND READER.CARDID=BORROW.CARDIDAND READER.NAME=刘勇如果按卡号查询,只须将READER.NAME=刘勇改为:READER.CARDID=指定的卡号。返回本节3.3.3 嵌套查询 1带IN谓词的子查询 2带有比较运算

43、符的子查询 3带有ANY或ALL谓词的子查询 4带有EXISTS谓词的子查询 1带IN谓词的子查询 带有IN谓词的子查询是指父查询与子查询之间用IN进行连接,判断某个属性列值是否在子查询的结果中。由于在嵌套查询中,子查询的结果往往是一个集合,所以谓词IN是嵌套查询中最经常使用的谓词。例3-32 查询借了“数据库系统”书籍的所有读者的姓名。SELECT NAMEFROM READERWHERE CARDID IN (SELECT CARDID FROM BORROW WHERE BOOKID IN (SELECT BOOKID FROM BOOK WHERE BOOKNAME=数据库系统)2带有

44、比较运算符的子查询 带有比较运算符的子查询是指父查询与子查询之间用比较运算符进行连接。当用户能确切知道内层查询返回的是单值时,可以用、=、=、!或等比较运算符。3带有ANY或ALL谓词的子查询 如果用户不能确切知道子查询的返回结果为单值时,可以使用带有ANY或ALL谓词的子查询,但ANY或ALL谓词必须与比较运算符一起使用。例3-34 查询所有正借阅“中国水利水电出版社”出版的书籍的读者姓名。SELECT NAMEFROM READERWHERE CARDID=ANY(SELECT CARDID FROM BORROW WHERE SDATE IS NULL AND BOOKID=ANY(SE

45、LECT BOOKID FROM BOOK WHERE PUBLISH=中国水利水电出版社)或!=ANYIN-MAXMIN=MINALL-NOT INMINMAX=MAX表3-3 ANY,ALL谓词与集函数及IN谓词的等价转换关系4带有EXISTS谓词的子查询 EXISTS 代表存在。带有EXISTS量词的子查询不返回任何实际数据,它只产生逻辑真值true或逻辑假值false。若内层查询结果非空,则外层的WHERE子句返回真值,否则返回假值。例3-35 查询借阅了书号为TP2004-005图书的所有读者姓名。SELECT NAMEFROM READERWHERE EXISTS(SELECT*F

46、ROM BORROW WHERE BORROW.CARDID=READER.ID AND BOOKID=TP2004-005)返回本节3.4 数据更新 3.4.1 插入数据 3.4.2 修改数据 3.4.3 删除数据返回首页3.4.1 插入数据1插入单个元组插入单个元组的INSERT语句的语法格式为:INSERT INTO(,)VALUES(,)其功能是将新元组插入指定表中。2插入子查询结果插入子查询结果的INSERT语句的格式为:INSERT INTO(,)子查询;其功能是以批量插入,一次将子查询的结果全部插入指定表中。子查询结果中列数应与INTO子句中的属性列数相同,否则会出现语法错误。例

47、3-38 按书号统计每种图书的借出数量并保存到另一个表中。CREATE TABLE BOOKQTY(BOOKID CHAR(20),QTY INT)GOINSERT INTO BOOKQTYSELECT BOOKID,COUNT(*)FROM BORROWWHERE SDATE IS NULLGROUP BY BOOKID返回本节3.4.2 修改数据修改操作又称为更新操作,其语句格式为:UPDATE SET=,=WHERE;其功能是修改指定表中满足WHERE条件的元组。其中SET子句用于指定修改方法,即用的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。例3-39 读

48、者还书操作。设读者卡号为T0001,书号为TP2003-002。UPDATE BORROWSET SDATE=GETDATE()WHERE BOOKID=TP2003-002 AND CARDID=T0001GOUPDATE BOOKSET QTY=QTY+1WHERE BOOKID=TP2003-002返回本节3.4.3 删除数据删除数据指删除表中的某些记录,删除语句的一般格式为:DELETEFROMWHERE;DELETE语句的功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,表示删除表中的全部元组,但表的结构仍在。也就是说,DELETE语句删除的是表中的数据,

49、而不是表的结构。例3-41 删除卡号为T0035的读者的所有借书记录,然后删除该读者信息。DELETE FROM BORROWWHERE CARDID=T0035GODELETE FROM READERWHERE CARDID=T0035返回本节3.5 视图 1建立视图 2删除视图 3查询视图 4更新视图 5视图的用途 返回首页1建立视图 SQL语言用CREATE VIEW命令建立视图,其一般格式为:CREATE VIEW(,)ASWITH CHECK OPTION;其中子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY子句和DISTINCT短语。例3-44 建立读者类别

50、为学生(CLASS=1)的读者视图。CREATE VIEW S_READERASSELECT*FROM READERWHERE CLASS=1例3-45 创建教师读者视图,并要求进行修改和插入操作时仍保证视图只有教师记录。CREATE VIEW T_READERASSELECT CARDID,NAME,SEX,DEPTFROM READERWHERE CLASS=2WITH CHECK OPTION返回本节2删除视图 视图建好后,若导出此视图的基本表被删除了,该视图将失效,但一般不会被自动删除。删除视图通常需要显式地使用DROP VIEW语句进行。该语句的格式为:DROP VIEW;一个视图被

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(全套课件-数据库系统原理与应用.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|