第7章 数据库技术基础_第1页
第7章 数据库技术基础_第2页
第7章 数据库技术基础_第3页
第7章 数据库技术基础_第4页
第7章 数据库技术基础_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

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

文档简介

1第7章

数据库技术基础

在当今的信息化社会中,数据库技术是数据处理的核心和基础。2还有网上购物数据库、无纸化考试数据库、学生选课数据库、学生信息管理数据库等。铁路售票数据库存储日期、车辆信息(车次、车厢号、座号是否售出、售出区间等)银行储蓄数据库存储开户时间、储蓄类型、帐号、密码、目前余额,存入明细,提款明细等。6.1实例数据库3

人工表格

4教师数据库表结构字段名称数据类型字段宽度说明编号文本6姓名文本8最多4个汉字或8个字符性别文本11表示男,2表示女出生日期日期默认8职称文本11助教,2讲师,3副教授,4教授,5研究员办公电话文本15住宅电话文本15移动电话文本15在职逻辑默认1TRUE表示在职,FALSE表示退休5数据库表编号姓名性别出生日期职称办公电话住宅电话移动电话在职103601李晓光11960-5-13889223318516612313019298657True103621李敏21970-1-122884567218566030413809228127True106723赵丹茹21945-12-358849921313019876502False105721张大伟11957-3-114884261158849921213902125631True…………6人工表

、数据库表及转换人工表对客观事物进行抽象、提取、归纳和总结,最后通过表格描述客观事物(对象)特性。数据库表:是结构化、有数据类型的表格。人工表转为数据库表要拆分某些数据项,使其意义更加明确;为数据项起容易记忆、便于操作的名称;对某些数据项进行必要的编码。77.1.2关系数据库表关系数据库表用于存储计算机要处理的数据。要利用计算机进行各种业务处理,其中一项重要工作就是将人工信息表格转换成计算机中的数据库表。

数据库表是一种结构化、有数据类型的表格,对各个数据项要规定字段能存储数据的最大宽度(尺寸)和数据类型。8

关系数据库以文件形式存储在计算机系统中,文件扩展名为.MDB。关系数据库主要由数据库表构成。例如,选课数据库中包含“教师”、“课程”、“学生”和“成绩”4个数据库表。此外,还包含数据索引、表之间关系、数据有效性规则和安全控制规则等信息。7.1.3关系数据库910数据管理是数据处理的核心,主要指数据收集、组织、分类、编码、存储、检索和维护。计算机数据管理技术经历4个发展阶段:人工管理、文件系统、数据库系统和分布式数据库系统。7.2数据库系统概述111

人工管理阶段特点程序之间不能共享数据;程序复杂;数据量小且无法长期保存;人工重复输入数据。年代1946年至20世纪50年代中期,计算机主要用于科学计算。122

文件系统阶段年代20世纪50年代后期至60年代中期。外存有磁鼓和磁盘等存取设备;软件有操作系统和文件系统;程序通过数据文件访问数据。程序共享数据;易长期保存数据;程序代码有所简化;数据冗余(重复)度大,数据文件通常是非结构化文件;程序依赖数据(独立性差);专业性强。特点13外存储器20世纪60年代后期至80年代初期。磁盘容量增大,流行dBASE系列和Oracle数据库管理系统等。14主要特点数据结构化并与程序分离;数据集中式管理,高度共享;数据冗余度小,具有一致性和完整性规则。15分布式数据库系统阶段主要特点:分布式数据库将数据存放在不同位置的多台计算机上,可以在不同位置访问数据库中数据.数据局部自治与集中控制相结合,具有很强的可靠性和可用性;强大数据共享和并发控制能力,使数据的使用价值更高,应用范围更大;数据一致性和安全性控制措施更加完善。

目前支持分布式数据库的数据库管理系统有Access、SQLServer、Oracle和Sybase等。16

数据库系统(DataBaseSystem,DBS)是指存储数据库的计算机系统,它为数据处理、多个用户同时访问和数据共享提供了便利条件。它由计算机硬件、软件和相关人员组成。

6.2.2数据库系统组成17数据描述客观事物特征及其相互联系的一种抽象化、符号化表示。可以是数字、文字、图形、图象、声音和动画等。182.数据库数据库(DataBase,DB)是动态存储在计算机系统中、有组织、结构化的关联数据的集合。数据库以文件的形式存储。每个数据库管理系统都有各自的数据库文件扩展名。例如,Access数据库文件扩展名为MDB;VisualFoxPro数据库文件扩展名为DBC;SQLServer数据库文件的扩展名为MDF等。数据库中除包含数据库表外,还包含数据索引、数据库表之间的联系、有效性规则和安全控制规则等。193.数据库管理系统数据库管理系统(DataBaseManagementSystem,DBMS)是建立、维护和管理数据库的系统软件,它提供数据安全性和完整性控制机制,具有完备的数据库操作命令体系。可以在交互方式下管理和访问(存取)数据库,也可以利用开发工具开发数据库应用程序。20DBMSOS硬件DBMS—DataBaseManagementSystem,建立、维护和管理数据库的软件。例如:214.数据库应用系统DBAS—DataBaseApplicationSystem,由数据库系统和数据库应用程序组成,以数据库为核心,针对某种业务开发的应用软件系统。数据库用应系统DBMSOS硬件225.相关人员数据库管理员应用系统开发人员.应用程序用户237.2.3数据库管理系统功能1.数据定义

通过数据定义语言DDL,建立维护数据库、数据库表、视图和索引。2.数据操纵通过数据操纵语言DML,对数据库中的数据插入、修改和删除。3.数据查询通过数据查询语言DQL,对数据查询、排序、汇总和表连接等操作。4.数据库运行管理和控制核心部分,主要包括数据库并发控制,安全性检查,完整性约束条件检查和执行,数据库内部资料自动维护。245.数据库维护包括数据更新和转换,数据库转存和恢复,数据库重新组织、结构维护和性能监视等。6.数据组织、存储和管理对数据字典、用户数据和存取路径等信息进行分类组织、存储和管理,实现数据之间的联系。7.数据通信DBMS要经常与操作系统打交道,进行信息交换。257.2.4数据库系统安全保护对于数据库中的数据必须采取安全保护措施,避免“黑客”攻击、破坏或盗用;确保数据的一致性和正确性。数据库的保护措施可分为并发控制、安全性控制和数据库备份/恢复3个方面内容。

261.并发控制并发控制的方法之一是对数据项进行互斥访问。即当一个事务访问某个数据项时,其他任何事务都不能修改该数据项。在事务修改数据项之前锁定数据项---加锁。实现互斥访问的最常用方法是只允许事务访问该事务当前锁定的数据项。锁有多种类型,不同的DBMS提供的锁类型也有些差异,常见的锁类型有:⑴共享型锁⑵排它型锁⑶独占数据库

27数据库系统安全保护并发控制方式

1)

共享型锁:如果一个事务获得了某数据项共享型锁,则该事务只可以读但不能写数据。姓名工龄工资李晓名101560许明华212100同时可以有多个事务获得共享型锁。28数据库系统安全保护并发控制方式

2)

排它型锁:如果一个事务获得某数据项排它型锁,则该事务既可读也可写数据。姓名工龄工资李晓名101560许明华212100对一个数据项,某时刻只有一个事务能获得排它型锁。且此时其他事务也不能获得此数据项的共享型锁。29数据库系统安全保护并发控制方式

3)

独占数据库:当一个事务访问数据库时,其他事务不能访问该数据库。通常用于数据库建立与维护阶段。30

数据安全性控制主要是为了防止数据失窃或遭到破坏所采取的一系列措施。DBMS所采取的安全措施有:1.用户标识和密码鉴定;2.用户分级授权:某些人具有添加、修改或删除数据权限,而其他用户只有查询数据权限。3.数据加密;

2.数据安全性控制31数据库系统安全保护安全性控制

1)

标识和密码:设置和检查用户名和密码。

防止数据失窃或遭到破坏:

32数据库系统安全保护安全性控制

2)用户分级授权:用户业务不同,授权有别。如:某些人可建立、删除表;添加、修改或删除表中数据,而其他人只具有查询数据的权限。3)

数据加密333.数据库备份与恢复⑴备份数据库:周期性地转储(备份)数据库,使数据库留有多个备份,最好脱离数据库系统环境保存备份数据库。⑵建立日志文件:记载每个用户操作数据库的过程。⑶恢复数据库:根据日志文件中记载内容分析出故障点,利用较理想的备份数据库,将数据库恢复到最近正确状态。34要使计算机能处理客观事物,必须对事物抽象,提取事物的特征信息。数据化抽象和提取学号姓名

性别政治面貌民族出生日期来源省市邮政编码联系电话7.3三个世界与概念模型357.3.1从现实世界到数据世界抽象化数据化信息世界(实体,属性)数据世界(记录,数据项)现实世界(事物,特征)概念模型描述数据模型描述36⑴现实世界:现实世界由各种客观存在的事物构成,事物之间既存在联系又有差异。⑵信息世界(概念世界):人们对客观事物及其联系的抽象描述和概念化。客观事物为实体,事物的特征为属性。用概念模型描述实体之间的联系。⑶数据世界:信息世界数据化。将信息世界中的实体进一步抽象、提取和规范化,使之成为计算机能处理的数据,最终保存到数据库中。在数据世界中,用数据模型描述实体及其之间的联系;用一行数据(记录)表示一个实体;用数据项、列或字段表示实体的属性。377.3.2信息世界与概念模型1)

实体:是客观事物的真实反映,可以是实际存在的对象、抽象概念或事件。2)

实体属性:在信息世界中,将事物特性为实体属性如:编号、姓名、性别、出生日期和职称3)

实体属性值:实体属性的具体化表示,属性值的集合表示一个实体。如:103601是编号值;李晓光是姓名值;1是性别值。38实体类型:用实体名及实体所有属性集合表示一种实体类型,简称实体型。通过实体型可以区分不同类型的事物实体集:具有相同属性的实体集合称为实体集。实体型抽象地刻画实体集。39学号姓名性别民族出生日期21030102

张晓伟男

汉族

1984年6月18日实体属性与值的关系学生实体属性学生实体属性值40学号姓名性别民族出生日期学生(学号,姓名,性别,民族,出生日期)学生实体型412.概念模型及E–R方法概念模型是能够准确、方便地描述信息世界中实体及实体之间的联系的方法,又称为实体模型或信息模型。表示概念模型的方法有许多,其中常用方法是:实体–

联系方法(Entity–RelationshipApproach)

,简称为E–R方法。它与计算机系统环境和具体的DBMS无关,它依赖于人们描述实体的目的,也依赖于人们对实体的观点和视角。因此,对相同实体可以建立多个概念模型。42用图形方式描述实体及实体之间联系。其中:⑴实体:用矩形框表示实体,框内文字注明实体名。⑵实体属性:用椭圆形框表示实体属性,框内文字注明属性名;用线与实体连接,表示与实体的隶属关系。⑶实体之间的联系:用菱形框表示实体之间的联系,框内文字注明联系方式;用连线连接关联的实体。43任课教师教室使用教师编号课程编号名称出生日期性别姓名职称联系电话是否在职编号周几课节编号座位数44

通常将实体之间对应关系称为联系。实体之间的联系有一对一、一对多和多对多三种。

①一对一联系:如数据记录与实体,教师与讲台。3.实体之间联系45②一对多联系(1:N):是指一个实体对应多个实体,也称之为多对一联系(N:1)。例如,一个班有多个学生。③多对多联系(M:N):是指多个实体对应多个实体。例如,一个学生选修多门课程,而一门课程有多名学生选修,因此,学生与课程之间是多对多联系。46

在数据世界中,将描述实体及实体之间联系的方法称为数据模型。数据模型是信息世界中概念模型的数据化,是数据库的逻辑结构和数据基础。DBMS总是基于某种数据模型,如层次型、网状型、关系型、面向对象型。7.4

数据模型47常见的数据模型有层次数据模型、网状数据模型、关系数据模型和面向对象数据模型,不同的数据模型用于不同类型的数据库管理系统。48

层次数据模型通过树形结构表示实体(型)及实体之间的联系,“树”中每个结点表示一个实体(型)结点之间的箭头表示实体之间的联系(由父到子)。层次数据模型可分为基本层次数据模型和层次数据模型两种。7.4.1.层次数据模型49基本层次数据模型基本层次数据模型仅描述两个实体型及其联系的数据模型。学校学院科研机构学生管理人员科研人员管理人员管理人员管理部门图7.4.1层次数据模型示例教师汽车驾驶员图7.4.2基本层次数据模型示例50层次数据模型主要特点:有且仅有一个根结点;每个非根结点有且仅有一个父结点。层次数据模型它最适合表示实体的一对多联系。51没有父结点多个父结点

通过网状结构表示实体及联系。“网”中每个结点表示一个实体型,结点之间箭头表示实体间的联系。主要特点:可能有多个根结点,某些非根结点可能有多个父结点。网状数据模型适合于描述实体的一对一、一对多和多对多联系。7.4.2.网状数据模型52层次数据模型与网状数据模型相似,逻辑结构上,都由基本层次数据模型组成;物理存储结构上,每一个结点(实体)都是一个存储记录,用链接指针实现记录之间的联系。53层次与网状模型优缺点能直观、形象地描述实体及其联系,易于被人们理解和掌握。优点数据结构较复杂,存储数据需要更多的链接指针;在检索数据时,需要考虑数据的存储路径;在插入或删除数据时,涉及到调整链接指针。缺点547.4.3.关系数据模型关系数据模型是通过二维表描述实体及其之间的联系。通常将关系数据模型中的二维表简称为关系或表。目前广泛应用的数据库管理系统VisualFoxPro、Access、SQLServer、Oracle和Sybase都支持关系数据模型,它们由此得名关系型数据库管理系统。由它们管理的数据库被称为关系型数据库。55在关系数据模型中用一个二维表描述一种实体或实体型之间的联系;表中的一行数据(记录)描述一个实体及实体之间的联系;表中的一个属性(字段或数据项)描述实体的一个属性。56关系数据模型直接支持实体的一对一和一对多联系,对于实体的多对多联系,在设计关系数据库时,需要对某些表进行分解,增设表示联系的表,使实体的多对多联系变成一对多联系。关系数据模型不能显式地表示实体之间的联系,实体之间的联系往往隐含在表的某些属性中。即通过属性的值可以分析出实体之间的联系;通过具有相同含义的属性(可能不同名)可以找出实体型(表)之间的联系。57584.面向对象数据模型

面向对象(ObjectOriented)数据模型是一种可扩充数据模型,简称为对象数据模型。以面向对象数据模型为基础的DBMS被称为面向对象数据库管理系统(OODBMS),简称为ODBMS。 具有很强的描述复杂对象的能力,能包含更多的数据语义信息等优点,如对多媒体数据进行描述和管理。59

将现实中所有实体都模拟成对象。例如,一个整数、一个日期、一辆汽车、一门课程等。

一个对象对应E--R模型中的一个实体。面向对象数据模型将一个对象的相关数据和代码封装在一起,成为一个单元。通过消息完成对象之间的沟通。1.对象60一个对象包含的内容:①一组变量,每个变量对应E—R模型中的一个属性,用于描述对象的状态、组成和特性。②一组方法,用于描述对象行为特性。方法也称为操作。③一组对象所响应的消息,外界只能借助于消息与对象进行通信,也称事件。612.对象类

将具有相同属性和方法的对象归结为一类,将这些属性和方法在类中统一定义,将类中对象称为实例。例如,将所有课程都归为一类,即课程类,各门课程具有公共属性为课程名称、上课时间、上课地点和任课教师等;共同方法有上课、考试和留作业等。在定义类过程中完成这些属性和方法的定义;

课程类课程名称上课时间地点任课教师上课考试留作业623.类层次结构和继承类A的子集可以被定义成类B,类B被称为类A的子类,而类A被称为类B的超类或父类。类的继承:子类继承其所有超类的属性和方法,还可以增加自身独特的属性和方法。课程专业外语技术基础应用基础语言基础阅读写作计算机外语634.

对象标识每个类可产生多个对象;每个对象都有惟一标识,简称OID。OID由系统自动生成,不允许用户修改。647.5关系数据库中基本概念

关系数据库是支持关系数据模型的一类数据库。目前广泛应用的VisualFoxPro、Access、SQLServer、Oracle和Sybase等都是关系数据库管理系(RDBMS—RelationalDataBaseManagementSystem)。65⑴关系:是二维表,是实体的属性信息(属性名、类型和宽度)及其属性值的集合。将关系中所含属性的个数n称为关系的元或目,通常也称n元关系或n目关系。66⑵属性:表中的每一列称为一个属性,也称为列、字段或数据项。每个属性都有属性名,也称为列名或字段名。67⑶元组:表中一行数据称为一个元组,也称为一个数据记录。通常一个元组对应一个实体,每张表中可含多个元组。例如(”00002”,”大学计算机基础”,2,54,24,4)68一个表应该具有下列性质:①属性的原子性:表中每个属性是不可以再分割的基本数据项。②属性名的惟一性:同一表中属性不可重名;③属性次序的无关性:表中各个属性的前后顺序无关紧要;④属性的有限性:一个表中有有限个属性;⑤属性值域的同一性:同一属性具有相同的值域,即表中同一列数据必须具有相同的数据类型和取值范围69⑥关键字非空性:关键字中的每个属性,对任何元组都不能出现空值(Null),否则,关键字将失去对数据记录的标识作用。⑦元组(数据记录)次序的无关性:表中各个元组的前后顺序无关紧要;⑧元组的唯一性:表中任意两个元组不能完全相同;⑨元组的有限性:表中有有限个元组;70⑷关键字:由一个或多个属性组成,该组属性的值能惟一地标识表中的每个元组,并且,如果从该组属性中去掉任意一个属性,表中就会出现关于剩余属性重值的元组。每个表都有关键字,通常将关键字也称为表的候选键或候选码。例如,教师号是教师表的候选码;课程号是课程表的候选码。候选码可以由多个属性构成。例如,学号和课程号两个属性构成成绩表中的候选码。一个表中可能有多个候选码。7172⑸主属性:通常将包含在候选码中的属性称为主属性;将不在任何候选码中的属性称为非主属性。例如,学号和课程号都是成绩表中的主属性,而成绩属性是成绩表中的非主属性。73⑹主关键字:一个表中可能有多个候选码,通常用户仅选用一个候选码,将用户选用的候选码称为主关键字,也简称为主键、主码、键或码。主键除了标识元组外,在建立表之间的联系时起着重要作用。74⑺外码:一个表R的一组属性F不是表R的候选码,如果F与某表S的主码相对应,则F是表R的外码或外键。例如,教师号不是成绩表的候选码,而是教师表的主码,因此,教师号是成绩表的一个外码。在建立表之间的联系时,主码与外码起着非常重要的作用。75⑻关系模式:关系模式是对关系的描述,是关系名及其所有属性的集合。关系模式用于描述表结构,格式为:<关系名>(全部属性名表)教师(教师号,姓名,性别,出生日期,职称,办公电话,住宅电话,移动电话,在职,简历);课程(课程号,课程名,开课学期,理论学时,实验学时,学分);学生(学号,姓名,性别,出生日期,政治面貌,民族)。成绩(学号,教师号,课程号,成绩)76⑼关系子模式:关系子模式是对用户所操作数据的结构描述。用户需要的数据可能来自一个表或多个表。关系子模式的表示格式为:<子模式名>(所需属性名表)例如,学生民族(学号,姓名,民族)数据来自于学生表;学生听课(学号,姓名,教师名,课程名)数据来自于学生、教师和课程3个表。777.6数据模型要素

数据模型主要由数据结构、数据操作和数据完整性约束三个要素组成。

78数据结构主要用于描述属性名、数据类型、内容以及数据之间的联系等,即数据存储的静态性。在关系数据模型中,用关系(表)实现数据存储,因此,表的结构就是数据结构。1.数据结构79

对数据模型中数据和联系所允许的操作以及操作规则,即描述数据模型的动态性。对数据模型的操作主要有插入、删除、修改和查询4种。

在关系数据库中,对数据的操作实质上是对关系(表)进行操作,操作的结果仍然是关系。2.数据操作801.查询数据

查询数据是指检索数据库中数据,同时可以检索一个表或多个表中数据。在对多个表进行操作时,需要将表进行两两合并生成新表。在查询数据时需要指明数据项和查找记录的条件。2.插入数据:向表中增加记录,一次操作仅向一个表中插入记录。3.删除数据:先在表中查找(选择)记录,然后再从表中将其删除。一次操作仅从一个表中删除记录。814.修改数据:修改数据是修改表中相关记录的属性值,包括删除或添加属性的值。修改数据的过程是:在表中查找(选择)要修改的记录,提取(投影)相关数据项到内存,从表中删除这些记录,再修改内存中的数据,最后通过插入操作将修改后的记录插入到表中。修改数据可以视为查找、删除和插入数据3种操作的组合,一次操作仅能修改一个表中的数据。82

以上四种操作可以归纳成数据项投影、数据记录选择、两个表连接、数据插入和数据删除5种基本操作。在关系数据库管理系统中,通过关系的专用操作实现记录选择、数据项投影和表连接;通过关系的集合运算实现记录插入和删除。83数据库中的数据是现实世界中事物的真实表示,各个属性的值受到数据语义的限制。对表中数据的限制。例如,学生所选的课程必须是学校开设的课程,在成绩表中的课程号必须在课程表中能找到相关的数据记录,教师号必须在教师表中找到其记录。3.数据完整性约束84数据语义:对数据含义的规定与解释。语义的作用

确定属性的取值范围(值域);确定表的关键字;限制更新相关表中数据。85

在关系数据模型中,将语义施加在数据上的限制称为完整性约束。关系数据模型中有域、实体、参照和用户定义4类完整性约束。⑴域完整性约束:域是指表中属性的值域,即属性值的数据类型和取值范围。例如,姓名属性的值域是所有人姓名的集合,文本型数据;性别属性的值域是{男,女},文本型数据等。86⑵实体完整性约束:每个表都必须有关键字,实体完整性约束要求主属性值不能为空,以确保关键字值的确定性且能惟一地标识记录。⑶参照完整性约束:对表之间联系的基本约束,它不允许一个表引用另一个表中不存在的数据。具体要求是:如果F是表S的主键,且为表R的外码,则表R中每个记录在F上的值必须等于表S中某个记录的主键值或者为空值。例如,当更改任课教师的教师号时,需要修改成绩表中相关数据记录的教师号。87参照完整性约束:88⑷用户定义完整性约束:域完整性约束无法彻底检查属性值是否在指定的域内,对某些特殊的属性还需要通过用户定义规则限定数据的范围。即字段有效性规则。在选课数据库中,性别属性设置有效性规则为:[性别]=“1”Or[性别]=“2”;职称属性设置有效性规则为:[职称]>=“1”And[职称]<=“5”;成绩属性设置有效性规则为:[成绩]>=-1And[成绩]<=100,成绩为-1表示目前还没有登记成绩。89实体、参照两种完整性是关系数据模型必须满足的约束条件,被称为关系的两个不变性条件,由关系数据库管理系统自动支持。而用户定义完整性是用户根据关系数据库管理系统提供的语言编写出来的约束条件,系统运行时自动检查该约束条件。90在关系数据库中,查询、删除或修改数据时,需要选择记录、确定要操作的数据项(投影)、还可能需要多个关系连接成一个关系。关系数据模型中定义了选择、投影和连接3种专门的关系操作,操作的结果仍然是关系。7.7关系的基本操作91

从关系中选取符合条件的元组(记录),必须指明选择条件。比较运算符:<、<=、=、<>、>=或>;逻辑运算符:Or(或者)、And(并且)或Not(否定)选择操作表示为:σ<选择条件>(<关系名>)1.选择操作92教室编号课程编号教师编号星期课节010010000110360111-2010010000210362113-4010020100210871221-2020010200115213211-2教室编号课程编号教师编号星期课节010010000110360111-2010010000210362113-4020010200115213211-2U=σ星期=1(教室表)93

投影操作是从关系中选取若干个属性(列),选取各个属性时不受关系中属性顺序的约束。投影操作表示为: П<属性名列表>(<关系名>)对教室表的教室编号、课程编号、教师编号、星期和课节5个属性进行投影操作:V=П教室编号,课程编号,教师编号,星期,课节(教室表)Select教室编号,课程编号,教师编号,星期,课节From学生2.投影操作94教室编号课程编号教师编号星期课节010010000110360111-2010010000210362113-4010020100210871221-2020010200115213211-2教室编号名称座位数教师编号课程编号星期课节01001逸夫教学楼1阶2001036010000111-201001逸夫教学楼1阶2001036210000213-401002逸夫教学楼2阶2601087120100221-202001第三教学楼1阶3001521320200111-295连接操作是对两个关系进行连接,生成一个新关系。

功能:对两张表进行连接,根据某种条件生成一张新表。R<选择条件>S3.连接操作对学生和成绩两个关系进行连接操作:学生学生.学号=成绩.学号成绩96Select*From学生,成绩

Where学生.学号=成绩.学号;97如果连接条件中所有比较运算符都是“=”,则此种连接被称为等值连接。在等值连接的结果中,有些属性具有重复值,在实际应用中,要将这些重复的属性去掉。通常将不包含冗余属性的等值连接称为自然连接。人们将R与S的自然连接记为:RS98SQL(StructuredQueryLanguage)是结构化查询语言,是操作关系型数据库的通用语言。SQL语言由数据定义语言、数据操纵语言、数据查询语言和数据控制语言(用于设置用户访问数据库的权限)4部分组成。7.8结构化查询语言—SQL简介

目前各种大、中、小型关系数据库管理系统都支持SQL语言,但不同数据库管理系统中支持的SQL语句也有些差异。下面以关系数据库管理系统Access为基础,介绍SQL语句的常用格式。99(<字段名1><类型描述>[[Not]Null][PrimaryKey]……[,<字段名n><类型描述>[[Not]Null][PrimaryKey]

[<其他参数>][,PrimaryKey(<字段名表>)]……);常用的数据类型符号有:文本型—Char(n),

,双精度型—Number,长整型—Integer或Long,整型—Short,日期型—Date,逻辑型—Logical和备注型—Memo。

用于建立(Create)、删除(Drop)数据库表以及修改(Alter)数据库表结构。1.建立数据库表:

CreateTable<表名>1.数据定义语言—DDL100PrimaryKey指明该字段为表的主关键字。多个字段组成主关键字。PrimaryKey(<字段名表>)

注意:一个表只能有一个PrimaryKey。在输入数据时,NotNull(默认)表示该字段值不能空。[Not]Null101【例7.7】CreateTable教师(教师号Char(6)PrimaryKey,姓名Char(8),性别Char(1),出生日期Date,职称Char(6),办公电话Char(10),住宅电话Char(10),移动电话Char(15),在职Logical,简历Memo);102AlterTable<表名>Add<字段名><类型描述>|Drop<字段名>;|Alter<字段名><类型描述>2.修改数据库表结构

语句说明:此语句可以在表中增加新字段,或修改表中已有字段的类型(数据类型和字段宽度)或删除已有的字段名。103【例】 1.向教室表中加“负责人”字段:AlterTable教室表Add负责人Char(6);

2.将教室表“星期”字段的数据类型改成整型:AlterTable教室表Alter星期Integer;

3.删除教室表中“负责人”字段:AlterTable教室表Drop负责人;1043.

删除表语句格式:DropTable<表名>;语句说明:删除数据库表。【例6.9】删除数据库表“TEST”:DropTableTest;105

数据操纵语言(DataManipulationLanguage)用于完成数据库表中数据记录的增加(Insert)、删除(Delete)和修改(Update)操作。7.8.2.数据操纵语言—DML106【例7.10】向课程设置表中增加数据记录:InsertInto课程Values(‘01003’,‘大学英语基础一’,2,70,20,4);InsertInto课程(课程编号,开课学期,理论学时,实验学时,学分)Values(‘01004’

,2,70,20,4);在尾部追加新纪录。InsertInto<表名>[(<字段名表>)]Values(<表达式表>);1.增加数据记录1072.修改数据记录语句格式:Update<表名>Set<字段名1>=<表达式1>[,……,<字段名n>=<表达式n>][Where<条件>];语句说明:用表达式值修改对应字段值。如果省略Where选项,则修改表中全部记录的相关字段值;如果使用Where<条件>,则仅修改满足条件的记录。108[例7.11]为成绩表中所有记录的成绩字段填写-1。Update成绩表Set成绩=-1;109在Where条件中,允许使用运算符: <、<=、=、<>、>=或>进行比较运算;

Or、And、Not进行逻辑运算;

Between、In和Like等谓词进行特殊运算;以上运算结果均为逻辑型数据真(True)或假(False)110⑤区间运算:<表达式1>Between<表达式2>And<表达式3>例如,5Between0And10运算结果为真(True)⑥谓词属于运算:<表达式1>In(<表达式表>)如果“表达式1”的值等于“表达式表”中某个表达式的值,则运算结果为真(True),否则运算结果为假(False)。例如:10In(5,10,15)运算结果为真(True)

'X'In('AX','XB','C','D')运算结果为假(False)111⑦谓词模糊运算:<字符表达式1>Like<字符表达式2>,例如,(‘李大明’

Like‘李*’)的值为真(True)(‘李大明’

Like‘李??’)的值为真(True)('李大明'Like'李?')的值为假(False)。112【例7.12】将课程名涉及“计算机”的所有课程的理论学时改成56,实验学时改成16。Update课程Set理论学时=56,实验学时=16Where课程名Like'*计算机*';113【例7.13】将成绩表中学号的3、4位(年级)等于09且成绩在57至59之间的记录改成60。Update成绩Set成绩=60WhereMid(学号,3,2)='09'And成绩In(57,58,59)或者:Update成绩Set成绩=60WhereMid(学号,3,2)=‘09’And成绩Between(57And59);Mid(学号,3,2)是Access的取子串函数,1143.删除数据记录语句格式:DeleteFrom<表名>[Where<条件>];语句说明:如果省略Where选项,则删除表中全部记录;否则仅删除那些满足“条件”的记录。【例7.14】删除学生表中“学号”3、4位(年级)等于06的所有记录:DeleteFrom学生WhereMid(学号,3,2)='06';115【例7.15】从教师表中删除非在职的任课教师;DeleteFrom教师表W

温馨提示

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

评论

0/150

提交评论