《数据管理系统》PPT课件.ppt

上传人:wuy****n92 文档编号:71667858 上传时间:2023-02-04 格式:PPT 页数:92 大小:311KB
返回 下载 相关 举报
《数据管理系统》PPT课件.ppt_第1页
第1页 / 共92页
《数据管理系统》PPT课件.ppt_第2页
第2页 / 共92页
点击查看更多>>
资源描述

《《数据管理系统》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据管理系统》PPT课件.ppt(92页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 第第9 9讲讲 数据库管理系统数据库管理系统l第第6章章 数据库管理系统数据库管理系统l6.1 6.1 数据库管理系统数据库管理系统l6.2 6.2 关系数据库标准语言关系数据库标准语言SQL l6.3 6.3 数据库管理系统实例数据库管理系统实例(Microsoft SQL Server 2000Microsoft SQL Server 2000)l6.4 6.4 数据库应用系统开发数据库应用系统开发l6.5 6.5 数据库技术的发展趋势数据库技术的发展趋势 6.1 6.1 数据库管理系统数据库管理系统(DBMS)(DBMS)l 数据库管理系统是位于用户和操作系统之间的数数据库管理系统是位

2、于用户和操作系统之间的数据管理软件。本节包括如下内容:据管理软件。本节包括如下内容:l l6.1.1 6.1.1 数据库管理系统的功能数据库管理系统的功能 l6.1.2 6.1.2 数据库管理系统的特点数据库管理系统的特点l6.1.3 6.1.3 数据库系统架构数据库系统架构l6.1.4 6.1.4 数据库管理系统组件数据库管理系统组件l6.1.5 6.1.5 常见的数据库管理系统常见的数据库管理系统 6.1.1 6.1.1 数据库管理系统的功能数据库管理系统的功能l 科学地组织和存储数据、高效地获取和维护数据科学地组织和存储数据、高效地获取和维护数据,用户使用的各种数据库命令以及应用程序的执

3、行,最用户使用的各种数据库命令以及应用程序的执行,最终都是终都是DBMSDBMS来实现的。来实现的。DBMS DBMS 的主要功能包括:的主要功能包括:(1)(1)数据库定义数据库定义 (2)(2)数据操纵数据操纵 (3)(3)数据库控制数据库控制 (4)(4)数据库维护数据库维护 (1 1)数据库的定义功能数据库的定义功能 l 为了存储大量数据,需要定义数据库和数据库中为了存储大量数据,需要定义数据库和数据库中的各种架构,例如表、视图和索引等对象。对一个具的各种架构,例如表、视图和索引等对象。对一个具体的数据库系统来说,通常允许用户使用一种被称为体的数据库系统来说,通常允许用户使用一种被称为

4、数据定义语言数据定义语言(data definition language,DDL)的的专门语言来建立数据库,定义数据库的架构。并且还专门语言来建立数据库,定义数据库的架构。并且还可以对这些数据库和数据库架构进行修改和删除。可以对这些数据库和数据库架构进行修改和删除。l 例如,在例如,在Microsoft SQL Server数据库系统中,数据库系统中,可以使用可以使用Transact-SQL语言中的下列语言中的下列DDL语句定义语句定义数据库和数据库中的各种对象。数据库和数据库中的各种对象。CREATE DATABASE:创建数据库;CREATE TABLE:创建表;CREATE VIEW:

5、创建视图;(2 2)数据操纵功能)数据操纵功能l l 当数据存储到数据库中之后,用户就可以使用其中的数据。当数据存储到数据库中之后,用户就可以使用其中的数据。数据库系统提供了可以查询数据库中数据的查询数据库系统提供了可以查询数据库中数据的查询(Query)语言,语言,该语言经常被称为数据操纵语言该语言经常被称为数据操纵语言(data manipulation language,DML)。使用。使用DML语言可以在数据库中执行以下语言可以在数据库中执行以下操作:检索指定的数据、插入需要的数据、更新已经变化的操作:检索指定的数据、插入需要的数据、更新已经变化的或错误的数据、删除无用的或不再需要的数

6、据等。或错误的数据、删除无用的或不再需要的数据等。l 在在Microsoft SQL Server数据库系统中,可以实现数据数据库系统中,可以实现数据查询功能的查询功能的Transact-SQL语言包括如下的语言包括如下的DML语句。语句。SELECT:检索数据;INSERT:插入数据;UPDATE:更新数据;DELETE:删除数据。(3 3)数据库控制功能)数据库控制功能l 对于存储大量数据的数据库应用系统来说,有大对于存储大量数据的数据库应用系统来说,有大量使用数据和执行操作的用户。量使用数据和执行操作的用户。l控制多用户的访问包括两层含义:控制多用户的访问包括两层含义:第一层含义是不同的

7、用户只能执行允许执行的操作第二层含义是不同用户之间的操作互不影响。(4)数据库维护功能)数据库维护功能 l 数数据据库库维维护护功功能能:包包括括初初始始数数据据的的装装入入、数数据据库库的的转转储储或或后后备备功功能能、数数据据库库恢恢复复功功能能、数数据据库库的的重重组组织织功功能能以以及及性性能能分分析等功能。析等功能。6.1.2 数据库管理系统的特点数据库管理系统的特点 l传统的文件管理阶段相比,现代的数据库管理系统阶传统的文件管理阶段相比,现代的数据库管理系统阶段具有以下特点:段具有以下特点:使用复杂的数据模型表示结构。具有很高的数据独立性。为用户提供了方便的接口。提供了完整的数据控

8、制功能。提高了系统的灵活性。6.1.3 6.1.3 数据库管理系统架构数据库管理系统架构l 数据库系统架构指数据库系统中数据的存储、管理数据库系统架构指数据库系统中数据的存储、管理和使用等规范形式,包括:和使用等规范形式,包括:1.数据存储架构数据存储架构2.数据视图管理架构数据视图管理架构3.数据库应用架构数据库应用架构 1.数据存储架构数据存储架构l 数据存储架构是指数据库中物理数据和逻辑数据数据存储架构是指数据库中物理数据和逻辑数据的表示形式、物理数据和逻辑数据之间关系映射方式的表示形式、物理数据和逻辑数据之间关系映射方式的说明。的说明。l l 在数据库系统中,可以使用两种描述形式表示客

9、在数据库系统中,可以使用两种描述形式表示客观世界的数据,即物理数据描述和逻辑数据描述。观世界的数据,即物理数据描述和逻辑数据描述。l l 物理数据和逻辑数据之间的转换通过数据库管理物理数据和逻辑数据之间的转换通过数据库管理系统实现。系统实现。逻辑数据和物理数据术语的对应关系示意图逻辑数据和物理数据术语的对应关系示意图 2.数据视图管理架构数据视图管理架构l 数据在存储过程中的不同阶段具有不同的表现形数据在存储过程中的不同阶段具有不同的表现形式。这种数据的不同表现形式也可以称为数据视图式。这种数据的不同表现形式也可以称为数据视图(data view)。数据视图就是从某个角度看到的数据特。数据视图

10、就是从某个角度看到的数据特性。性。数据视图管理架构指在数据库系统中如何使数据视图管理架构指在数据库系统中如何使用数据视图定义和管理各种逻辑数据和物理数据。用数据视图定义和管理各种逻辑数据和物理数据。l 目前,数据视图管理架构使用三模式方法,即需目前,数据视图管理架构使用三模式方法,即需要从三个不同的角度来定义数据:要从三个不同的角度来定义数据:外模式内模式概念模式 数据视图管理架构示意图数据视图管理架构示意图 3.数据库应用架构数据库应用架构l在一个数据库应用系统中,包括数据存储层、业务处理层和界在一个数据库应用系统中,包括数据存储层、业务处理层和界面表示层等三个层次。面表示层等三个层次。数据

11、存储层数据存储层就是完成对数据的各种维护操作,一般是由数据库系统来完成该层上的工作。业务处理层业务处理层是数据库应用将要处理的与用户紧密相关的各种业务操作,这一层次的工作通常使用有关程序设计语言的编程来完成。界面表示层界面表示层是数据库应用系统提供给用户的可视化操作界面,是用户提出请求和接收回应的地方。l数据库应用架构数据库应用架构是指数据库应用系统中数据存储层、业务处理是指数据库应用系统中数据存储层、业务处理层、界面表示层以及网络通信之间的布局和分布。层、界面表示层以及网络通信之间的布局和分布。数据库应用架构分类数据库应用架构分类l 根据目前数据库系统的应用和发展,可以把这些应用归为根据目前

12、数据库系统的应用和发展,可以把这些应用归为五类,即:五类,即:单用户数据库应用架构集中式数据库应用架构客户机/服务器(Client/Server,C/S)应用架构多层数据库应用架构Internet数据库应用架构 其中客户机/服务器(C/S)应用架构是当前比较流行的架构。在这种架构中。客户机负责管理用户界面、接受用户数据、处理应用逻辑、生成数据库服务请求,然后将这些请求发送给服务器,服务器接受用户请求、处理请求、把访问数据仓库的结果数据和执行状态返回给客户机。随着Interne技术的迅猛发展,Internet数据库应用架构也正在广泛应用,该框架的核心是Web服务器,它负责接受浏览器的超文本传输协

13、议的数据请求,然后根据查询条件到数据服务器获得相关的数据,并将结果翻译成超文本标记语言文件传送给提出请求请求的浏览器。6.1.4 6.1.4 数据库管理系统组件数据库管理系统组件l 本节以关系型本节以关系型DBMS为例研究为例研究DBMS的组成部分或组件。通的组成部分或组件。通过研究过研究DBMS的组件,了解的组件,了解DBMS是如何处理用户的查询和修是如何处理用户的查询和修改等操作的。改等操作的。l DBMS的组成如下:的组成如下:l1.数据和元数据存储数据和元数据存储l2.存储管理器存储管理器l3.查询处理器查询处理器l4.事务管理器事务管理器l5.输入模块输入模块-模式修改、查询和修改模

14、式修改、查询和修改l DBMS的核心组件结构如下图所示:的核心组件结构如下图所示:关系型数据库管理系统组件结构示意图关系型数据库管理系统组件结构示意图 1.数据和元数据数据和元数据l 在上图的底部,是一个磁盘形状的图形,用于数据在上图的底部,是一个磁盘形状的图形,用于数据和元数据的存储。此处存储的内容不但包含数据,还和元数据的存储。此处存储的内容不但包含数据,还包含元数据。包含元数据。l 数据数据是数据库管理系统管理的对象。是数据库管理系统管理的对象。l 元数据元数据是有关数据结构的信息,即元数据是描述是有关数据结构的信息,即元数据是描述数据的数据。数据的数据。l 在关系型数据库管理系统中,数

15、据是用户添加到在关系型数据库管理系统中,数据是用户添加到表中的数据,元数据是描述有关表名、列名和数据类表中的数据,元数据是描述有关表名、列名和数据类型等数据库对象的数据。型等数据库对象的数据。2.查询处理器查询处理器l查询处理器不仅负责处理查询,还负责处理修改和模查询处理器不仅负责处理查询,还负责处理修改和模式修改请求。式修改请求。l查询处理器包括编译器、解释器和预编译器。查询处理器包括编译器、解释器和预编译器。编译器负责对查询或修改语句进行优化并转换成可以执行的低层命令。解释器负责编译或解释模式修改,并将它记录在元数据中。预编译器完成嵌入在宿主语言中的查询语句。3.存储管理器存储管理器l 存

16、储管理器存储管理器是根据获得的请求信息,从数据存储中获得信是根据获得的请求信息,从数据存储中获得信息或修改数据存储中的信息。息或修改数据存储中的信息。l 在一个简单的数据库系统中,存储管理器实际上是操作系在一个简单的数据库系统中,存储管理器实际上是操作系统的文件系统。然而,为了提高数据库的使用效率,统的文件系统。然而,为了提高数据库的使用效率,DBMS通通常直接控制存储在磁盘上的数据。常直接控制存储在磁盘上的数据。l 存储管理器由两个组件组成:文件管理器和缓冲区管理器。存储管理器由两个组件组成:文件管理器和缓冲区管理器。l 文件管理器文件管理器负责跟踪磁盘上文件的位置或根据内存管理器负责跟踪磁

17、盘上文件的位置或根据内存管理器中的请求获得数据块。中的请求获得数据块。l 缓冲区管理器缓冲区管理器负责内存的管理。它通过文件管理器从磁盘负责内存的管理。它通过文件管理器从磁盘上获取数据块,并在内存中选择用于存储这些数据块的内存位上获取数据块,并在内存中选择用于存储这些数据块的内存位置。缓冲区管理器可以把磁盘上的数据块保存一段时间,但是置。缓冲区管理器可以把磁盘上的数据块保存一段时间,但是如果内存不足,可以释放这些数据块,然后利用释放出来的空如果内存不足,可以释放这些数据块,然后利用释放出来的空间保存新的数据块。间保存新的数据块。4.事务管理器事务管理器l 事务管理器负责系统的完整性工作。事务管

18、理器事务管理器负责系统的完整性工作。事务管理器必须确保同时运行的查询语句不互相影响,即使是系必须确保同时运行的查询语句不互相影响,即使是系统由于各种原因突然失败,不会丢失任何数据。统由于各种原因突然失败,不会丢失任何数据。l 事务管理器与查询处理器互相影响,因为事务管事务管理器与查询处理器互相影响,因为事务管理器必须了解当前查询所操作的数据以避免操作之间理器必须了解当前查询所操作的数据以避免操作之间的冲突,并且还可以拖延某些查询或操作的执行使得的冲突,并且还可以拖延某些查询或操作的执行使得冲突不会发生。冲突不会发生。l 事务管理器还与存储管理器互相影响,因为为了事务管理器还与存储管理器互相影响

19、,因为为了保护数据,模式修改常常涉及存储数据变化的日志的保护数据,模式修改常常涉及存储数据变化的日志的存储。存储。l 事务管理器具有事务管理器具有ACID属性,属性,A表示原子性表示原子性(Atomicity),C表示一致性表示一致性(Consistency),I表示独表示独立性立性(Isolation),D表示持久性表示持久性(Durability)。5.输入模块输入模块-模式修改、查询和修改模式修改、查询和修改l输入是数据库管理系统的重要组成部分,是用户使用输入是数据库管理系统的重要组成部分,是用户使用数据库的主要方式。数据库的主要方式。l从上图中可以看到,对数据库管理系统的输入操作主从上

20、图中可以看到,对数据库管理系统的输入操作主要包括要包括查询修改模式修改 6.1.5 常见的数据库系统常见的数据库系统lOracle公司的公司的Oraclel微软公司的微软公司的Microsoft SQL ServerlIBM公司的公司的DB2和和InformixlMySQL AB公司的公司的MySQLlSybase公司的公司的Sybase ABEl微软公司的微软公司的Access、Visual Foxpro 四大数据库的比较四大数据库的比较((SQL Server、Oracle、Sybase和DB2)(开放性、可伸缩性和并行性开放性、可伸缩性和并行性、性能、性能、客户端支持及应用模式、客户端支

21、持及应用模式、操作简便、操作简便 性)性)l开放性开放性:lSQL Server 只能在只能在windows上运行,而上运行,而windows平台的可靠性,安全性和伸缩性平台的可靠性,安全性和伸缩性是非常有限的。它不象是非常有限的。它不象unix那样久经考验,尤其是在处理大数据。那样久经考验,尤其是在处理大数据。Oracle 能在所有主流平台上运行(包括能在所有主流平台上运行(包括 windows)。完全支持所有的工业标)。完全支持所有的工业标准。可以使客户选择最适合的解决方案。对开发商全力支持。准。可以使客户选择最适合的解决方案。对开发商全力支持。Sybase ASE 能在所有主流平台上运行

22、(包括能在所有主流平台上运行(包括 windows)。)。但由于早期但由于早期Sybase与与OS集成度不高,因此以下版本需要较多集成度不高,因此以下版本需要较多OS和和 DB级补丁。在多平台的混合级补丁。在多平台的混合环境中,会有一定问题。环境中,会有一定问题。DB2 能在所有主流平台上运行(包括能在所有主流平台上运行(包括windows)。最适于海量数据。)。最适于海量数据。DB2在在企业级的应用最为广泛,在全球的企业级的应用最为广泛,在全球的500家最大的企业中家最大的企业中,大多采用大多采用DB2数据库数据库服务器。服务器。可伸缩性和并行性:可伸缩性和并行性:lSQL server 并

23、行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限。伸缩性有限。Oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展并行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能的能力,提供高可用性和高伸缩性的簇的解决方案。如果力,提供高可用性和高伸缩性的簇的解决方案。如果windowsNT不能满足不能满足需要,用户可以把数据库移到需要,用户可以把数据库移到UNIX中。中。Oracle的并行服务器对各种的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。平台的集群机制都有着相当高的集成度

24、。Sybase ASE 虽然有虽然有DB SWITCH来支持其并行服务器,但由于来支持其并行服务器,但由于DB SWITCH在技术层在技术层面还未成熟,且只支持版本面还未成熟,且只支持版本12.5以上的以上的ASE SERVER,而,而DB SWITCH技技术需要一台服务器充当术需要一台服务器充当SWITCH。DB2 具有很好的并行性。具有很好的并行性。DB2把数据库管理扩充到了并行的、多节点的环境。把数据库管理扩充到了并行的、多节点的环境。数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务数据库分区是数据库的一部分,包含自己的数据、索引、配置文件、和事务日志。日志。性能性能:

25、lSQL Server 多用户时性能不佳多用户时性能不佳 Oracle 性能最高,性能最高,保持开放平台下的保持开放平台下的TPC-D和和TPC-C的世界记录。的世界记录。Sybase ASE 性能接近于性能接近于 SQL Server。但在。但在UNIX平台下的并发性要优与平台下的并发性要优与 SQL Server。DB2 性能较高适用于数据仓库和在线事物处理。性能较高适用于数据仓库和在线事物处理。l客户端支持及应用模式客户端支持及应用模式:lSQL Server C/S结构,只支持结构,只支持windows客户,可以用客户,可以用ADO,DAO,OLEDB,ODBC连接连接.Oracle

26、多层次网络计算,支持多种工业标准,可以用多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户等网络客户连接。连接。Sybase ASE C/S结构,可以用结构,可以用ODBC,Jconnect,Ct-library等网络客户连接。等网络客户连接。DB2 跨平台,多层结构,支持跨平台,多层结构,支持ODBC,JDBC等客户等客户 l操作简便操作简便 性:性:lSQL Server 操作简单,但只有图形界面。操作简单,但只有图形界面。Oracle 较复杂,同时提供较复杂,同时提供GUI和命令行,在和命令行,在windowsNT和和unix下操作相同下操作相同 Sybase

27、ASE 较复杂,同时提供较复杂,同时提供GUI和命令行。但和命令行。但GUI较差,常常无较差,常常无法及时状态,建议使用命令行。法及时状态,建议使用命令行。DB2 操作简单,同时提供操作简单,同时提供GUI和命令行,在和命令行,在windowsNT和和unix下操作相同下操作相同。6.2.1 SQL 概述概述6.2.2 SQL的数据定义的数据定义 6.2.3 SQL的数据查询的数据查询6.2.4 SQL的数据更新的数据更新6.2.5 SQL的视图的视图6.2.6 SQL的数据控制的数据控制 嵌入式嵌入式SQL 查询优化查询优化 6.2关系数据库标准语言关系数据库标准语言SQL 6.2.1 SQ

28、L 概述概述 l SQL语言将数据定义语言语言将数据定义语言DDL、数据操纵语言数据操纵语言DML、数数据控制语言据控制语言DCL的功能集于一体,可以独立完成数据库生命周的功能集于一体,可以独立完成数据库生命周期中的全部活动期中的全部活动.所以,很多数据库管理系统所以,很多数据库管理系统(DBMS)都采用都采用SQL语言作为关系数据的标准语言。语言作为关系数据的标准语言。l SQL语言既是自含式语言,又是嵌入式语言。作为自含式语语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键

29、入键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言,比如:语句能够嵌入到高级语言,比如:C、PL/1、FORTRAN。l 嵌入式嵌入式SQL与高级语言的分工方式:与高级语言的分工方式:SQL语句负责操纵数语句负责操纵数据库,高级语言语句负责控制程序流程和处理数据。据库,高级语言语句负责控制程序流程和处理数据。6.2.1 SQL的特点的特点(6个)个)1 1、综合统一、综合统一 SQL语言将数据定义语言语言将数据定义语言DDL、数据操纵语言数据操纵语言DML、数据控制语言数据控制语言DCL的功能集于一体,语言风格的功能集

30、于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动统一,可以独立完成数据库生命周期中的全部活动.2 2、高度非过程化、高度非过程化 用用SQLSQL语语言言进进行行数数据据操操作作时时,只只要要提提出出“做做什什么么”,而无需指明而无需指明“怎么做怎么做”。3 3、面向集合的操作方式、面向集合的操作方式 SQL SQL语言操作的对象和操作的结果都用关系表示。语言操作的对象和操作的结果都用关系表示。4、一种语法,两种使用方式、一种语法,两种使用方式 SQL语言既是自含式语言,又是嵌入式语言。语言既是自含式语言,又是嵌入式语言。5、语言简捷,易学易用、语言简捷,易学易用 完成核心功能只用

31、完成核心功能只用9个动词,个动词,SQL语言接近英语句子。语言接近英语句子。6、支持三级模式结构、支持三级模式结构 见下图。见下图。SQL支持三级模式结构支持三级模式结构SQL命令视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外模式模 式内模式 视图机制的主要优点视图机制的主要优点:简化用户的操作。简化用户的操作。多角度看待同一数据。多角度看待同一数据。视图为数据库重构提供了一定程度的逻辑独立视图为数据库重构提供了一定程度的逻辑独立性。性。对数据安全保护。对数据安全保护。6.2.2 SQL的数据定义的数据定义(1)6.2.2.1 基本表的定义、删除与修改6.2.2.2 建立与

32、删除索引 6.2.2.1 基本表的定义、删除与修改基本表的定义、删除与修改说明:方括为可选项,方括为可选项,是所要定义的基本表的名字。是所要定义的基本表的名字。建表时可以定义与该表有关的完整性约束条件,其约束条件建表时可以定义与该表有关的完整性约束条件,其约束条件被存入被存入DBMS的数据字典中。当用户操作表中数据时由的数据字典中。当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须定义如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

33、在表级上,否则既可以定义在列级也可以定义在表级。lCREATE TABLE C l (CNO NUMBER(6),l CMN CHAR(10))命令格式为:命令格式为:CREATE TABLE (列级完整性约束条件 ,列级完整性约束条件,表级完整性约束条件);SQL Server支持的数据类型支持的数据类型 TINYINT 整数类型,其值按整数类型,其值按1 1个字节存储。个字节存储。SMALLINT 整数类型,其值按整数类型,其值按2 2个字节存储。个字节存储。INTEGER或或INT 整数类型,其值按整数类型,其值按4 4个字节存储。个字节存储。REAL 实数类型,其值按实数类型,其值按4

34、 4个字节存储。个字节存储。FLOAT 实数类型,其值按实数类型,其值按8 8个字节存储。个字节存储。CHARTER(n)或或CHAR(n)长度为长度为n n的字符类型,一个字符占的字符类型,一个字符占 一个字节。一个字节。VARCHAR(n)最大长度为最大长度为n n的变长字符串,所占空间与的变长字符串,所占空间与 实际字符数有关。实际字符数有关。DATETIME 日期时间类型,缺损格式为日期时间类型,缺损格式为MM-DD-YYYY HH:MM:AM/PM。TIMESTAMP 更新或插入一行时,系统自动记录的日更新或插入一行时,系统自动记录的日 期时间类型。期时间类型。修改基本表修改基本表

35、SQL语言用ALTER TABLE语句修改基本表,其一般格式为:ALTER TABLE ADD 完整性约束完整性约束 DROP 完整性约束名完整性约束名 MODIFY ;说明说明:是要修改的基本表表名;ADD子句用于增加新列和新的完整性约束条件;MODIFY子句用于修改原有的列定义,包括修;改列名和数据类型。删除基本表删除基本表 用DROP TABLE语句可删除基本表。其一般格式为:DROP TABLE ;向表中添加元组向表中添加元组 向表中添加耽搁元组使用向表中添加耽搁元组使用INSERT命令,其语句格式为命令,其语句格式为:INSERTINTO (,VALUES(,);说明:该命令的功能是

36、将一个新元组添加到指定的表中,且新元组属性列1的值为常量1,属性列2的值为常量2,。INTO子句中没有出现的属性列,其新元组在这些列上将取空值。但若在CREATE定义表时使用了NOT NULL约束的属性列不能取空值,否则会出错。如果INTO子句中没有指明任何列名,则新插入的元组必须在每个属性列上均有值。6.2.2.2 建立与删除索引建立与删除索引 1 建立索引:使用建立索引:使用CREATE INDEX命令,其语句格式为:命令,其语句格式为:CREATE UNIQUE CLUSTER INDEX ON (,);说明:(1)是要为其创建索引的基本表的名字。索引可以建立在该表的一列或多列上,各列名

37、之间用逗号分隔。每个还可以用来指定索引值按照ASC(升序)或DESC(降序)的方式排序,缺省值为ASC。(2)UNIQUE表明每一个索引值只对应唯一的一个元组,即索引值相同的元组只索引一次。(3)CLUSTER表示要建立的索引是聚簇索引。所谓聚簇索引是指索引项的顺序与表中元组的物理顺序一致的索引组织。删除索引 使用使用DROP INDEX语句,其一般格式为:语句,其一般格式为:DROP INDEX;6.2.3 SQL的数据查询的数据查询 简单的选择与投影查询简单的选择与投影查询 6.2.3.2 6.2.3.2 连接查询连接查询6.2.3.3 6.2.3.3 嵌套查询嵌套查询6.2.3.4 6.

38、2.3.4 集合查询集合查询 查询语句查询语句SELECT语句的一般格式:语句的一般格式:SELECT ALL|DISTINCT ,FROM ,WHERE GROUP BY HAVINGORDER BY ASC|DESC;说明:根据WHERE子句的条件,从FROM子句指定的基本表或视图中找出满足条件的元组,再按目标列表达式规定的属性列选出元组中对应的属性值形成结果表。如果有GROUP子句,则将结果按的值进行分组。如果GROUP子句带HAVING短语,则只输出满足指定条件的组。如果有ORDER子句,则结果表还要按的值升序或降序方式排序。6.2.3.1 简单的选择与投影查询简单的选择与投影查询 无

39、条件查询无条件查询 条件查询条件查询 查询结果排序查询结果排序 集函数的使用集函数的使用 查询结果分组查询结果分组 无条件查询无条件查询 在在SELECTSELECT语句中不使用语句中不使用WHEREWHERE字句。字句。例如:例如:SELECT *FEOM Students 条件查询条件查询 在在SELECT语句中使用语句中使用 WHERE子子句。常见的条件有:句。常见的条件有:l(1)比较条件。例如:lwhere Sdept=数学;lwhere Sage18 AND Sage 18 NOT BETWEEN 18 AND 22;where Sdept IN(自动化,数学,计算机);还有用LI

40、KE和NOT LIKE构成谓词条件的语法格式如下:NOTLIKEESCAPE其含义是查找指定的属性列值与向匹配的元组。可以是一个完整的字符串,也可以含有通配符%和-,其意义如下:%(百分号百分号):代表任意长度(长度可以为0)的字符串。例如a%b表示以a开头,以b结尾的任意长度的字符串。如acb,abcdb,ab等都满足该匹配串。_(下横线下横线):代表任意单个字符。例如a_b 表示以a开头,以b结尾的长度为3的任意字符串。如acb,adb等都满足该匹配串。此外,还有使用IS NULL和IS NOT NULL谓词进行有关空值判断的谓词条件,如:WHERE Grade IS NULL;注意:注意

41、:以上的“IS”不能用等号“=”代替。查询结果排序查询结果排序 使用使用ORDER BY ORDER BY 字句以及字句以及DESCDESC或或ASCASC。例:例:ORDER BY Grade DESC,ORDER BY Grade DESC,表示按成绩降序排列。表示按成绩降序排列。使用集函数使用集函数 在在SELECT语句中使用语句中使用COUNT()、AVG等集函数。等集函数。例如:计算选修例如:计算选修C01号课程的学生平均成绩,其命令为:号课程的学生平均成绩,其命令为:SELECT AVG(Grade)FROM Reports WHERE Cno=01 查询结果分组查询结果分组 在在

42、SELECTSELECT语语句句中中使使用用GROUP GROUP BYBY字字句句将将查查询询结结果果表表按按照照某某一一列列或或多多列列的的值值分分组组,使使其其列列值值相相等等的的为为一一组组。还还可可以以用用HAVINGHAVING短语指定结果组满足的条件。短语指定结果组满足的条件。6.2.3.2 连接查询连接查询 连接查询同时涉及两个或两个以上表的连接查询,这种查询连接查询同时涉及两个或两个以上表的连接查询,这种查询是关系数据库中最主要的查询。主要包括:是关系数据库中最主要的查询。主要包括:不同表之间的连接查询 自身连接查询 外连接查询 不同表之间的连接查询不同表之间的连接查询一般是

43、在WHERE字句中WHERE子句中将两(多)个表的属性列名,作为连接条件实现,其格式通常为:.或者 .BETWEEN .AND.说明:l 当连接运算符为“=”时,称为等值连接,其它为非等值连接。连接条件中列名对应属性的类型必须是可比的,但列名不必是相同的。l DBMS执行连接操作的过程是:首先在表1中找到第1个元组,然后对表2从头开始扫描逐一查找满足连接条件的元组,找到后就将表1中的第1个元组与该元组拼接起来,形成结果表中的一个元组。表2全部查找完后,再找表1中第2个元组,然后再对表2从头开始扫描,逐一查找满足连接条件的元组,找到后就将表1中的第2个元组与该元组拼接起来,形成结果表中的一个元组

44、。重复上述操作,直到表1中的全部元组都处理完毕为止。自身连接查询自身连接查询 自自身身连连接接:将将同同一一个个表表与与自自己己进进行行连连接接的的查查询询,其其基基本本方方法法是是在在SELECTSELECT语句的语句的FROMFROM子句中将同一个表取两个不同的别名。子句中将同一个表取两个不同的别名。比如:SELECT A.cno,A.cname,B.pre_Cno FROM Courses A,Courses B WHERE A.pre_Cno=B.cno;这里Courses 表取两个别名分别为A,B,目的是查找一门课的间接先修课。外连接外连接 l 选选定定连连接接操操作作中中涉涉及及的

45、的某某个个表表A A为为基基准准,即即使使另另一一个个表表B B中中没没有有与与之之匹匹配配的的记记录录,其其结结果果表表中中也也要要求求包包括括表表A A的的所所有有元元组组。若若表表B B中中没没有有与与之之匹匹配配的的记记录录,结结果果表表中中涉涉及及表表B B的的属属性性列全部取空值。列全部取空值。l 外连接分为左连接和右连接两种类型,用加外连接分为左连接和右连接两种类型,用加*号表示,号表示,l例如:例如:WHERE S.Sno=SC.sno(*)l 外外连连接接就就好好像像是是为为符符号号*所所在在一一段段的的表表(SC)增增加加一一个个“万万能能”的的行行,这这个个行行全全部部由

46、由空空值值组组成成,它它可可以以与与另另一一边边的的表表(S)中所有不满足条件的元组进行连接。)中所有不满足条件的元组进行连接。6.2.3.3 嵌套查询嵌套查询l嵌套查询:将一个查询块将一个查询块(SELECT-FROM-WHERE)(SELECT-FROM-WHERE)嵌套在嵌套在另一个查询块的另一个查询块的WHEREWHERE子句或子句或HAVINGHAVING短语条件中的查短语条件中的查询。询。l2、常用的嵌套查询l 带谓词IN的嵌套查询l 带有比较运算符的嵌套查询l 带谓词ANY或ALL的嵌套查询l 带谓词EXISTS的嵌套查询 6.2.3.4 集合查询集合查询l1、并操作查询l 标准

47、标准SQLSQL提供了并操作运算命令提供了并操作运算命令UNIONUNION,将多个,将多个SELECTSELECT语句的结果进行传统的集合并操作。但这个操语句的结果进行传统的集合并操作。但这个操作要求参加作要求参加UNIONUNION操作的各个结果表的列数必须相同操作的各个结果表的列数必须相同且对应属性的数据类型也相同。且对应属性的数据类型也相同。l2、标准标准SQLSQL中没有直接提供集合的中没有直接提供集合的交和和差的操作,但的操作,但可用其它条件查询来实现可用其它条件查询来实现 l 例如:例如:SELECT*l FROM Students l WHERE sdept 数学数学AND S

48、age=20;l 6.2.4 SQL的数据更新的数据更新6.2.4.1 6.2.4.1 插入数据插入数据6.2.4.2 6.2.4.2 修改数据修改数据6.2.4.3 6.2.4.3 删除数据删除数据 6.2.4.1 插入数据插入数据 将一个子查询语句的结果集插入到表中的将一个子查询语句的结果集插入到表中的INSERTINSERT命令格式为:命令格式为:INSERT INSERT INTO INTO(1,)2)SELECT SELECT子查询语句子查询语句.6.2.4.2 修改数据修改数据l修改修改(UPDATE)(UPDATE)操作语句的一般格式为:操作语句的一般格式为:UPDATE UPD

49、ATE SET SET=1,=2WHERE WHERE;l说明:该命令修改指定表中满足说明:该命令修改指定表中满足WHEREWHERE子句条件的元组。其中子句条件的元组。其中SETSET子句是用子句是用i的值取代的值取代i相应的属性列的值。如果省略相应的属性列的值。如果省略WHEREWHERE子句,则表示要修改表子句,则表示要修改表中的所有元组。中的所有元组。l例:UPDATE S l SET Sage=23 l WHERE Sno=20100162 6.2.4.3 删除数据删除数据l删除删除(DELETE)(DELETE)语句的一般格式为:语句的一般格式为:DELETE FROM DELET

50、E FROM WHERE WHERE;l说明:说明:DELETE DELETE语句的功能是从指定表中删除满足语句的功能是从指定表中删除满足WHEREWHERE子句条件的所有元组。如果省子句条件的所有元组。如果省略略WHEREWHERE子句,表示删除表中全部元组,但表的模式定义仍在字典中,既子句,表示删除表中全部元组,但表的模式定义仍在字典中,既DELETEDELETE语句使表成为空表。语句使表成为空表。增删改操作每次只能对一个表进行,且必须注意关系之间的参照完整性和操作顺增删改操作每次只能对一个表进行,且必须注意关系之间的参照完整性和操作顺序,否则就会操作失败甚至造成数据库的不一致问题。因此,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com