同济大学大学计算机基础课件(第八章)_第1页
同济大学大学计算机基础课件(第八章)_第2页
同济大学大学计算机基础课件(第八章)_第3页
同济大学大学计算机基础课件(第八章)_第4页
同济大学大学计算机基础课件(第八章)_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

大学计算机基础第八章数据库基础第四版1大学计算机基础第八章数据库基础第四版18.1数据库系统概述8.2数据库的建立和维护8.3数据库查询8.4

窗体、报表数据库基础8.1数据库系统概述数据库基础典型案例无纸化通用考试系统

大学计算机基础VisualBasic程序设计C/C++程序设计软件技术基础应用程序数据库管理系统VBVC++PowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令数据库引挚数据库信息化社会离不开信息系统 信息系统的核心和基础是数据库3典型案例无纸化通用考试系统应用程序数据库管理系统VBVC+计算机基础教育网站

IEHTM、ASP客户机服务器SQL命令数据库发出请求响应请求数据4计算机基础教育网站IEHTM、ASP客户机服务器SQL命令数8.1.1常用术语8.1.2数据库技术的产生和发展8.1.3数据模型8.1.4

常见的数据库系统及其开发工具8.1.5典型的新型数据库系统8.1数据库系概述8.1.1常用术语8.1数据库系概述8.1.1常用术语1.数据库(DataBase,DB)长期保存在计算机外存上的、有结构的、可共享的数据集合。2.数据库管理系统(DataBaseManagementSystem,DBMS)对数据库进行管理的软件系统。数据库的一切操作,如查询、更新、插入、删除以及各种控制,都是通过DBMS进行的。DBMS是位于用户(或应用程序)和操作系统之间的软件。借助于操作系统实现对数据的存储和管理,使数据能被各种不同的用户所共享,DBMS提供给用户可使用的数据库语言。3.数据库系统(DataBaseSystem,DBS)由DB、DBMS、应用程序、数据库管理员、用户等构成的人-机系统。用户应用程序DBMS操作系统数据库DB数据库系统68.1.1常用术语1.数据库(DataBase,DB8.1.2数据库技术的产生和发展数据管理技术经历了三个发展阶段人工管理阶段文件管理阶段数据库系统阶段78.1.2数据库技术的产生和发展数据管理技术经历了三个发1.人工管理阶段时间:20世纪50年代中期以前

硬件:只有卡片、纸带、磁带等存储设备软件:没有操作系统,没有进行数据管理的软件应用:以科学计算为目的特点:程序和数据放在一起数据不能共享特征图程序1数据1程序2数据2程序n数据n……81.人工管理阶段时间:20世纪50年代中期以前程序1数据1人工管理阶段数据管理示例例:两个C语言程序,分别求10个数据之和和最大值。 程序与数据放在一起,数据没有能够共享9人工管理阶段数据管理示例例:两个C语言程序,分别求10个数据2.文件系统阶段时间:20世纪60年代中期硬件:磁带、磁盘等大容量存储设备软件:有了操作系统应用:不仅用于科学计算,还用于数据管理.特点:程序与数据分离数据有一定的独立性实现了以文件为单位的数据共享特征图数据文件1…文件管理系统数据文件n应用程序1应用程序2应用程序n…数据文件2102.文件系统阶段时间:20世纪60年代中期数据文件1…文件文件系统阶段数据管理示例上例用文件实现11文件系统阶段数据管理示例上例用文件实现113.数据库系统阶段时间:20世纪60年代后期硬件:出现了大容量且价格低廉的磁盘软件:有了数据库管理系统DBMS应用:各个方面.特点:数据结构化数据共享性高,冗余小数据独立性高数据由DBMS统一管理控制为用户提供了友好的接口特征图史料:

数据库技术发展的分水岭

书写历史的甲骨文123.数据库系统阶段时间:20世纪60年代后期史料:12数据库系统阶段数据管理示例上例用数据库实现 求和:SELECTMax(Num)FROMData 求最大值:SELECTAvg(Num)FROMData13数据库系统阶段数据管理示例上例用数据库实现 求和:4.数据库系统的特点

(1)

采用一定的数据模型,最大限度地减少数据的冗余(2)最低的冗余度(3)有较高的数据独立性用户面对的是简单的逻辑结构操作而不涉及数据具体的物理存储结构(4)安全性设置用户的使用权限在数据库被破坏时,系统可把数据库恢复到可用状态。

(5)

完整性一些完整性检验以确保数据符合某些规则,保证数据库中数据始终是正确的。144.数据库系统的特点(1)采用一定的数据模型,最大8.1.3数据模型

1.数据模型的定义

现实世界数据特征的模拟和抽象,数据库中数据的存储方式

2.数据模型的基本要求

较真实的模拟现实世界容易被人理解便于在计算机上实现3.数据模型的二个层次

概念模型(信息模型)

基本数据模型4.数据模型的三个要素数据结构

数据操作数据的约束条件

5.三种重要的数据模型层次模型、网状模型、关系模型158.1.3数据模型1.数据模型的定义15

层次型

以树形结构来表示实体及其之间的联系(1:n)1968年美国IBM公司推出的层次模型的IMS数据库管理系统例:学校组织结构图

校部学院A系A学院B系B系C系D系E16层次型校部学院A系A学院B系B系C系D系E16

网状型

以网状结构表示实体及其之间的联系(m:n)1969年美国数据系统语言研究会下属数据库任务组公布了关于网状模型的DBTG报告例:城市交通图共同存在问题:难以实现系统扩充,插入或删除数据时,在于涉及到大量链接指针的调整。

17网状型共同存在问题:17关系模型

Students表属性名(字段名)属性值(字段值)男张智忠学号姓名性别党员专业出生年月助学金990001王涛男No物理82-01-21¥160.00990002庄前女Yes物理82-09-21¥200.00990101丁保华男No数学81-04-18¥180.00990102姜沛棋女No数学81-12-02¥280.00No数学80-08-06¥240.00990201程玲女Yes计算机82-11-14¥200.00990202黎敏艳女Yes计算机83-02-21¥160.00990103记录

关键字唯一确定一条记录

关系(二维表)值域:{男,女}一组二维表表示实体及其之间的联系,建立在严格的数学概念的基础上.1970年IBM公司研究员E.F.Codd发表论文提出了关系模型18关系模型Students表属性名属性值男张智忠学号姓名性别术语关系:一个关系一张二维表记录:表中的一行属性(字段):表中的一列关键字:某个属性可以惟一地确定记录值域:属性的取值范围19术语19特点:关系必须规范化:表中不能再包含表。模型概念单一:数据本身自然地反映它们之间的联系, 无需另设指针。关系运算:集合运算(并、差、交等)、关系运算(选择、投影、联接等),结果还是关系。常见关系DBMS:MicrosoftAccess、VisualFoxPro、LotusApproach等;在大型机上的数据库软件有Oracle、SQLServer、Sybase和DB220特点:常见关系DBMS:208.1.4常见的数据库系统及其开发工具

应用程序数据库管理系统VBVCPowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令数据库引挚数据库218.1.4常见的数据库系统及其开发工具应用程序数据库管8.1.5新型数据库系统分布式数据库系统数据库中一个数据在多个不同的地理位置存储的和处理面向对象数据库可以像对待一般对象一样存储复杂信息与过程多媒体数据库涉及图像、音频、视频处理、三维动画、数据存储与检索等技术数据仓库面向主题的、集成的、稳定的和随时间变化的数据集合,用于决策制定工程数据库存储和管理各种工程设计图形和工程设计文档,并能为工程设计提供各种服务的数据库空间数据库是描述、存储与处理具有位置、形状、大小、分布特征及空间关系等属性的空间数据及其属性数据的数据库系统228.1.5新型数据库系统分布式数据库系统228.2数据库的建立一、Access概述二、Access数据库的组成三、Access数据库的建立238.2数据库的建立一、Access概述23一、Access概述是Office的组件之一具有对数据进行存储、管理、处理等常规功能直观的可视化操作操作工具和向导丰富的函数功能24一、Access概述是Office的组件之一24实例创建表Students。Students的结构字段名称字段类型字段宽度学号Text6个字符姓名Text4个字符性别Text1个字符党员Yes/No1个二进制位专业Text20个字符出生年月Date/Time8字节助学金Currency8字节照片OLEObject不确定25实例创建表Students。Students的结构字段名二、Access数据库的组成

表:最基本的对象,表及其表之间的关系构成数据库的核心查询:从表(或查询)中选择一部分数据,形成一个全局性的集合窗体:用户与数据库交互的界面,窗体的数据源是表或查询报表:按指定的样式格式化的数据形式宏:若干个操作的组合模块:用户用VB语言编写应用程序Web页:向Internet上发布数据这些不同类型的对象集合构成了一个数据库文件,以.mdb存储在盘上.26二、Access数据库的组成表:最基本的对象三、Access数据库的建立

字段数据类型有10种字段属性大小、小数位、格式

确定表的结构建立一个空数据库,输入文件名使用设计器或向导创建表,进入设计视图,输入各个字段的信息建立表的索引定义主键输入表的名称保存表主要方法:数据库向导(模板)或设计视图,一般用后者27三、Access数据库的建立字段数据类型有10种1.Access数据库的建立

3.定义表的结构

1。建立空数据库2.使用设计器或向导281.Access数据库的建立3.定义表的结构1。建立2.数据输入

选定基本表,进入数据表视图,输入编辑数据

添加新记录292.数据输入选定基本表,进入数据表视图,输入编辑数据注意:打开的表或正在使用的表是不能修改的.修改字段名称不会影响到字段中所存放的数据,但是会影响到一些相关的部分。如果查询、报表、窗体等对象使用了这个更换名称的字段,那么在这些对象中也要作相应的修改。关系表中互相关联的字段是无法修改的,如果需要修改,必须先将关联去掉选定基本表,进入设计视图,修改表结构3.表结构的修改30注意:选定基本表,进入设计视图,修改表结构3.表结构的修改34.数据的导出和导入导出操作可以将表中数据以另一种文件格式保存在磁盘上导入操作是导出操作的逆操作5.表的复制、删除、恢复和更名类似于Windows中对文件或文件夹的操作注意在进行这些操作之前,必须关闭有关的表操作必须在“数据库”窗口中完成314.数据的导出和导入导出操作可以将表中数据以另一种文件格8.3数据库查询

一、SQL语言概述二、数据更新语句:INSERTINTO,DELETE,UPDATE三、数据查询语句:SELECT四、多表查询328.3数据库查询

一、SQL语言概述32一、SQL语言

什么是SQL语言

StructureQueryLanguage即结构化查询语言,1974年推出,已成为DBMS的国际标准语言,在众多DBMS系统中使用。特点使用方便、功能丰富、语言简单易学。工作方式独立语言:直接输入SQL命令与机器交互,实现对数据库操作.

宿主语言:将SQL命令嵌入某高级语言中实现对数据库操作.

33一、SQL语言什么是SQL语言特点工作方式33

SQL语言

进入SQL视图在“查询”对象中选择“在设计视图中创建查询”,建立空查询表。在“视图|SQL视图”就可进入其对话框输入相应的命令。SQL功能动词数据查询SELECT数据定义CREATE、DROP、ALTER数据更新INSERT、UPDATE、DELETE数据控制GRANT、REVOKE主要功能和动词:34SQL语言进入SQL视图SQL功能动词数据更新INSE二、数据更新-INSERT语句INSERT语句用于数据插入其语法格式为:插入一条记录INSERTINTO表名[(字段1,…,字段n)]VALUES(值1,…,值n)插入查询的结果INSERTINTO表名(字段1,…,字段n)VALUES子查询35二、数据更新-INSERT语句INSERT语句用于数据插入例8.3向表Students中插入一条记录INSERTINTOStudents(学号,姓名,性别,党员,专业,出生年月,助学金)VALUES(“990301”,"杨国强","男",TRUE,"化学",#12/28/80#,220)注意:字符型常量用单引号或双引号括起来逻辑型字段的值是True/False、Yes/No或On/Off日期的表示形式为#

MM/DD/YY#

#MM/DD/YYYY#36例8.3向表Students中插入一条记录36数据更新-DELETE语句例8.5删除表Students中所有学号为990301的记录DELETEFROMStudentsWHERE学号=“990301”例8.6删除表Scores中成绩低于70分的记录DELETEFROMScoresWHERE成绩<70DELETE语句用于数据删除其语法格式为:DELETEFROM

表[WHERE条件]注意:

WHERE子句缺省,则删除表中所有的记录(表还在)37数据更新-DELETE语句例8.5删除表Students中数据更新-UPDATE语句例8.7将表Students中学生王涛的姓名改为王宝球UPDATEStudentsSET姓名=“王宝球”WHERE姓名="王涛"例8.8将表Students中助学金低于200的学生加30元UPDATEStudentsSET助学金=助学金+30WHERE助学金<200UPDATE语句用于数据修改其语法格式为:UPDATE

SET字段1=表达式1,…,字段n=表达式n[WHERE条件]

注意:

WHERE子句缺省,则修改表中所有的记录UPDATE语句一次只能对一个表进行修改

38数据更新-UPDATE语句例8.7将表Students中学三、数据查询SELECT语句查询根据给定的条件,从一个或多个表中获取所需的数据,形成一张“虚表”(表中的记录是与数据库表链接产生的)。39三、数据查询SELECT语句查询39SELECT语句

语法形式为:SELECT[ALL|DISTINCT]目标列FROM表(或查询)[WHERE条件表达式][GROUPBY列名1HAVING过滤表达式][ORDERBY列名2[ASC|DESC]]不可缺少可缺省功能

根据WHERE子句中的表达式,从指定的表或视图中找出满足条件的记录,按目标列显示数据GROUPBY子句按列名1的值进行分组,每一组产生一条记录,HAVING 短语对组进行输出过滤ORDERBY子句按列名2对查询结果的值进行排序不能出现重复的记录40SELECT语句语法形式为:不可缺少可缺省功能不能出现重SELECT语句示例例8.9

查询所用学生的基本情况SELECT学号,姓名,性别,党员,专业,出生年月,助学金,照片FROMStudents例8.10查询学生人数、最低、最高助学金和平均助学金SELECTCount(*)AS人数,Min(助学金)AS最低助学金,Max(助学金)AS最高助学金,Avg(助学金)AS平均助学金FROMStudents可改为Count(学号)用别名命名输出列本例产生一条记录41SELECT语句示例例8.9查询所用学生的基本情况可例8.12查询学生的人数和平均年龄SELECTCount(*)AS人数,Avg(Year(Date())-Year(出生年月))AS平均年龄FROMStudents例8.11查询所用的专业,查询结果中不出现重复的记录。SELECTDISTINCT专业FROMStudents不出现重复系统日期Year函数得到年份

42例8.12查询学生的人数和平均年龄例8.11查询所用的专例8.14显示所有非计算机专业学生的学号、姓名和年龄SELECT学号,姓名,Year(Date())-Year(出生年月)AS年龄FROMStudentsWHERE专业<>"计算机"(1)WHERE子句示例例8.13查询计算机专业学生的学号、姓名和专业SELECT学号,姓名,专业FROMStudentsWHERE专业="计算机"查询条件例8.15查询1981年(包括1981年)以前出生的女生姓名和出生年月。SELECT姓名,出生年月ROMStudentsWHERE出生年月<#1/1/1982#AND性别="女"可用#MM/DD/YYYY#的形式表示日期43例8.14显示所有非计算机专业学生的学号、姓名和年龄(1)例8.17查询选修了2门(包括2门)以上课程的学生的学号和课程数SELECT学号,Count(*)AS课程数FROMScoresGROUPBY学号

HAVINGCount(*)>=2(2)ORDERBY,GROUPBY子句示例例8.16查询所有党员学生的学号和姓名,并按助学金升序排列SELECT学号,姓名FROMStudentsWHERE党员=TrueORDERBY助学金逻辑值按学号分组2门以上例8.18查询所有课程的成绩在70分以上的学生的学号SELECT学号FROMScoresGROUPBY学号HAVINGMin(成绩)>=7044例8.17查询选修了2门(包括2门)以上课程的学生的学号和课问查询姓“张”的学生?Like运算符45问查询姓“张”的学生?Like运算符45

Access2002的表达式

常用运算符

型运

符算术运算符+-*/^(乘方)\(整除)MOD(取余数)关系运算符<<=<>>>=BetweenLike逻辑运算符NotAndOr字符运算符&通配符:* ? -任意字符串单个字符 一定范围的字符用于LikeBetwwen运算符中例姓名Like“?明*”46Access2002的表达式常用运算符类型运练习SELECT学号,COUNT(课程)AS课程数,AVG(成绩)AS平均成绩FROMscores

GROUPBY学号

ORDERBY学号DESC;问查询选修了2门(包括2门)以上课程、最低成绩在60分以上的学生的学号、课程数和最低分?SELECT学号,Min(成绩)AS成绩之Min,Count(课程)AS课程之CountFROMScoresGROUPBYScores.学号HAVING(((Min(成绩))>=60)AND((Count(课程))>2));例对学生成绩表,统计每人的平均分和课程数,按学号递减排序47练习SELECT学号,COUNT(课程)AS课学号姓名性别党员专业出生年月990001王涛男No物理82-01-21990002庄前女Yes物理82-09-21990101丁保华男No数学81-04-18990102姜沛棋女No数学81-12-02990103张智忠男No数学80-08-06990201程玲女Yes计算机82-11-14990202黎敏艳女Yes计算机83-02-21990203邓倩梅女Yes计算机82-04-28990204杨梦逸女No计算机81-12-15学号课程成绩990001大学计算机基础82990001高等数学76990202计算机导论53990203英语71990204计算机导论66990204高等数学75990204英语82学生成绩表学生基本情况表学号姓名课程成绩990001王涛计算机文化基础82990001王涛高等数学76990002庄前计算机文化基础90990101丁保华高等数学77990102姜沛棋计算机文化基础68990102姜沛棋C/C++程序设计85990102姜沛棋大学英语56990201程玲计算机导论87990201程玲高等数学67990202黎敏艳计算机导论53990203邓倩梅英语71990204杨梦逸计算机导论66990204杨梦逸高等数学75990204杨梦逸英语8248学号姓名性党专业出生年月990001王涛男No物理82-01(3)SELECT语句-连接查询例8.20查询所有学生的学号、姓名、课程和成绩

SELECTStudents.学号,Students.姓名,Scores.课程,Scores.成绩FROMStudents,ScoresWHEREStudents.学号=Scores.学号两个表

连接条件

使用内连接格式SELECTStudents.学号,Students.姓名,Scores.课程,Scores.成绩FROMStudentsINNERJOINScores

ONStudents.学号=Scores.学号

连接条件

表1

连接命令

表249(3)SELECT语句-连接查询例8.20查询所有学生(4)嵌套查询

在SQL中,将一个SELECT语句查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询例8.25查询没有学过大学计算机基础的学生的学号、姓名和专业SELECTStudents.学号,Students.姓名,Students.专业FROMStudentsWHEREStudents.学号

Notin

(SELECTScores.学号

FROMScoresWHEREScores.课程="大学计算机基础")从Students中选择学号不在学过该课程名单中的人从Scores中选择学过计算机文化的学生的学号50(4)嵌套查询在SQL中,将一个SELECT语句查询块嵌套嵌套查询示例例8.26查询与“邓倩梅”在同一个专业的学生的学号和姓名

SELECTStudents.学号,Students.姓名FROMStudentsWHERE专业

in

(SELECTStudents.专业FROMStudentsWHEREStudents.姓名="邓倩梅")与查询结果同专业的学生查询邓倩梅的专业

51嵌套查询示例例8.26查询与“邓倩梅”在同一个专业的学生的(5)使用向导的查询

例8.27使用向导查询所用学生的基本情况

1.进入向导选定字段

2.选择明细方式3.输入查询的名称

4.查询结果52(5)使用向导的查询例8.27使用向导查询所用学生(6)在设计视图中创建查询

例8.28查询学生人数、最低助学金、最高助学金和平均助学金1.进入设计视图2.选择表Students添加到设计视图3.输入或选定查询的字段

53(6)在设计视图中创建查询例8.28查询学生人数、最低8.4窗体、报表

8.4.1创建窗体

例8.29创建下图所示的窗体Scores1创建窗体的方法:使用向导创建窗体

使用设计视图创建窗体

打开Student.mdb数据库选择使用向导创建窗体选定表Scores及所有字段选定窗体布局和窗体样式输入窗体名称:Scores1548.4窗体、报表

8.4.1创建窗体例8.29创建使用设计视图创建窗体

例8.30创建下图所示的窗体Scores2数据分布在两个表中,先建立下列查询SELECTStudents.学号,First(Students.姓名)AS姓名,Avg(Scores.成绩)AS平均成绩FROMStudents,ScoresGROUPBYStudents.学号拖所需的字段5.拖放所需的字段1.进入新建窗体2.选择设计视图3.命名查询名称4.建立查询

55使用设计视图创建窗体例8.30创建下图所示的窗体Sco8.4.2创建报表

例8.31创建下图所示的报表Scores1打开Student.mdb数据库选择使用向导创建报表选定表Scores及所有字段决定要否分组(本例不分组)选择排序方式(本例按学号)

选择表格布局方式

选择报表样式(本例为组织)

输入报表名称:Scores1

568.4.2创建报表例8.31创建下图所示的报表Sco大学计算机基础第八章数据库基础第四版57大学计算机基础第八章数据库基础第四版18.1数据库系统概述8.2数据库的建立和维护8.3数据库查询8.4

窗体、报表数据库基础8.1数据库系统概述数据库基础典型案例无纸化通用考试系统

大学计算机基础VisualBasic程序设计C/C++程序设计软件技术基础应用程序数据库管理系统VBVC++PowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令数据库引挚数据库信息化社会离不开信息系统 信息系统的核心和基础是数据库59典型案例无纸化通用考试系统应用程序数据库管理系统VBVC+计算机基础教育网站

IEHTM、ASP客户机服务器SQL命令数据库发出请求响应请求数据60计算机基础教育网站IEHTM、ASP客户机服务器SQL命令数8.1.1常用术语8.1.2数据库技术的产生和发展8.1.3数据模型8.1.4

常见的数据库系统及其开发工具8.1.5典型的新型数据库系统8.1数据库系概述8.1.1常用术语8.1数据库系概述8.1.1常用术语1.数据库(DataBase,DB)长期保存在计算机外存上的、有结构的、可共享的数据集合。2.数据库管理系统(DataBaseManagementSystem,DBMS)对数据库进行管理的软件系统。数据库的一切操作,如查询、更新、插入、删除以及各种控制,都是通过DBMS进行的。DBMS是位于用户(或应用程序)和操作系统之间的软件。借助于操作系统实现对数据的存储和管理,使数据能被各种不同的用户所共享,DBMS提供给用户可使用的数据库语言。3.数据库系统(DataBaseSystem,DBS)由DB、DBMS、应用程序、数据库管理员、用户等构成的人-机系统。用户应用程序DBMS操作系统数据库DB数据库系统628.1.1常用术语1.数据库(DataBase,DB8.1.2数据库技术的产生和发展数据管理技术经历了三个发展阶段人工管理阶段文件管理阶段数据库系统阶段638.1.2数据库技术的产生和发展数据管理技术经历了三个发1.人工管理阶段时间:20世纪50年代中期以前

硬件:只有卡片、纸带、磁带等存储设备软件:没有操作系统,没有进行数据管理的软件应用:以科学计算为目的特点:程序和数据放在一起数据不能共享特征图程序1数据1程序2数据2程序n数据n……641.人工管理阶段时间:20世纪50年代中期以前程序1数据1人工管理阶段数据管理示例例:两个C语言程序,分别求10个数据之和和最大值。 程序与数据放在一起,数据没有能够共享65人工管理阶段数据管理示例例:两个C语言程序,分别求10个数据2.文件系统阶段时间:20世纪60年代中期硬件:磁带、磁盘等大容量存储设备软件:有了操作系统应用:不仅用于科学计算,还用于数据管理.特点:程序与数据分离数据有一定的独立性实现了以文件为单位的数据共享特征图数据文件1…文件管理系统数据文件n应用程序1应用程序2应用程序n…数据文件2662.文件系统阶段时间:20世纪60年代中期数据文件1…文件文件系统阶段数据管理示例上例用文件实现67文件系统阶段数据管理示例上例用文件实现113.数据库系统阶段时间:20世纪60年代后期硬件:出现了大容量且价格低廉的磁盘软件:有了数据库管理系统DBMS应用:各个方面.特点:数据结构化数据共享性高,冗余小数据独立性高数据由DBMS统一管理控制为用户提供了友好的接口特征图史料:

数据库技术发展的分水岭

书写历史的甲骨文683.数据库系统阶段时间:20世纪60年代后期史料:12数据库系统阶段数据管理示例上例用数据库实现 求和:SELECTMax(Num)FROMData 求最大值:SELECTAvg(Num)FROMData69数据库系统阶段数据管理示例上例用数据库实现 求和:4.数据库系统的特点

(1)

采用一定的数据模型,最大限度地减少数据的冗余(2)最低的冗余度(3)有较高的数据独立性用户面对的是简单的逻辑结构操作而不涉及数据具体的物理存储结构(4)安全性设置用户的使用权限在数据库被破坏时,系统可把数据库恢复到可用状态。

(5)

完整性一些完整性检验以确保数据符合某些规则,保证数据库中数据始终是正确的。704.数据库系统的特点(1)采用一定的数据模型,最大8.1.3数据模型

1.数据模型的定义

现实世界数据特征的模拟和抽象,数据库中数据的存储方式

2.数据模型的基本要求

较真实的模拟现实世界容易被人理解便于在计算机上实现3.数据模型的二个层次

概念模型(信息模型)

基本数据模型4.数据模型的三个要素数据结构

数据操作数据的约束条件

5.三种重要的数据模型层次模型、网状模型、关系模型718.1.3数据模型1.数据模型的定义15

层次型

以树形结构来表示实体及其之间的联系(1:n)1968年美国IBM公司推出的层次模型的IMS数据库管理系统例:学校组织结构图

校部学院A系A学院B系B系C系D系E72层次型校部学院A系A学院B系B系C系D系E16

网状型

以网状结构表示实体及其之间的联系(m:n)1969年美国数据系统语言研究会下属数据库任务组公布了关于网状模型的DBTG报告例:城市交通图共同存在问题:难以实现系统扩充,插入或删除数据时,在于涉及到大量链接指针的调整。

73网状型共同存在问题:17关系模型

Students表属性名(字段名)属性值(字段值)男张智忠学号姓名性别党员专业出生年月助学金990001王涛男No物理82-01-21¥160.00990002庄前女Yes物理82-09-21¥200.00990101丁保华男No数学81-04-18¥180.00990102姜沛棋女No数学81-12-02¥280.00No数学80-08-06¥240.00990201程玲女Yes计算机82-11-14¥200.00990202黎敏艳女Yes计算机83-02-21¥160.00990103记录

关键字唯一确定一条记录

关系(二维表)值域:{男,女}一组二维表表示实体及其之间的联系,建立在严格的数学概念的基础上.1970年IBM公司研究员E.F.Codd发表论文提出了关系模型74关系模型Students表属性名属性值男张智忠学号姓名性别术语关系:一个关系一张二维表记录:表中的一行属性(字段):表中的一列关键字:某个属性可以惟一地确定记录值域:属性的取值范围75术语19特点:关系必须规范化:表中不能再包含表。模型概念单一:数据本身自然地反映它们之间的联系, 无需另设指针。关系运算:集合运算(并、差、交等)、关系运算(选择、投影、联接等),结果还是关系。常见关系DBMS:MicrosoftAccess、VisualFoxPro、LotusApproach等;在大型机上的数据库软件有Oracle、SQLServer、Sybase和DB276特点:常见关系DBMS:208.1.4常见的数据库系统及其开发工具

应用程序数据库管理系统VBVCPowerBuilder

Delphi

ACCESSSQLSERVERORACLEFOXPROSQL命令数据库引挚数据库778.1.4常见的数据库系统及其开发工具应用程序数据库管8.1.5新型数据库系统分布式数据库系统数据库中一个数据在多个不同的地理位置存储的和处理面向对象数据库可以像对待一般对象一样存储复杂信息与过程多媒体数据库涉及图像、音频、视频处理、三维动画、数据存储与检索等技术数据仓库面向主题的、集成的、稳定的和随时间变化的数据集合,用于决策制定工程数据库存储和管理各种工程设计图形和工程设计文档,并能为工程设计提供各种服务的数据库空间数据库是描述、存储与处理具有位置、形状、大小、分布特征及空间关系等属性的空间数据及其属性数据的数据库系统788.1.5新型数据库系统分布式数据库系统228.2数据库的建立一、Access概述二、Access数据库的组成三、Access数据库的建立798.2数据库的建立一、Access概述23一、Access概述是Office的组件之一具有对数据进行存储、管理、处理等常规功能直观的可视化操作操作工具和向导丰富的函数功能80一、Access概述是Office的组件之一24实例创建表Students。Students的结构字段名称字段类型字段宽度学号Text6个字符姓名Text4个字符性别Text1个字符党员Yes/No1个二进制位专业Text20个字符出生年月Date/Time8字节助学金Currency8字节照片OLEObject不确定81实例创建表Students。Students的结构字段名二、Access数据库的组成

表:最基本的对象,表及其表之间的关系构成数据库的核心查询:从表(或查询)中选择一部分数据,形成一个全局性的集合窗体:用户与数据库交互的界面,窗体的数据源是表或查询报表:按指定的样式格式化的数据形式宏:若干个操作的组合模块:用户用VB语言编写应用程序Web页:向Internet上发布数据这些不同类型的对象集合构成了一个数据库文件,以.mdb存储在盘上.82二、Access数据库的组成表:最基本的对象三、Access数据库的建立

字段数据类型有10种字段属性大小、小数位、格式

确定表的结构建立一个空数据库,输入文件名使用设计器或向导创建表,进入设计视图,输入各个字段的信息建立表的索引定义主键输入表的名称保存表主要方法:数据库向导(模板)或设计视图,一般用后者83三、Access数据库的建立字段数据类型有10种1.Access数据库的建立

3.定义表的结构

1。建立空数据库2.使用设计器或向导841.Access数据库的建立3.定义表的结构1。建立2.数据输入

选定基本表,进入数据表视图,输入编辑数据

添加新记录852.数据输入选定基本表,进入数据表视图,输入编辑数据注意:打开的表或正在使用的表是不能修改的.修改字段名称不会影响到字段中所存放的数据,但是会影响到一些相关的部分。如果查询、报表、窗体等对象使用了这个更换名称的字段,那么在这些对象中也要作相应的修改。关系表中互相关联的字段是无法修改的,如果需要修改,必须先将关联去掉选定基本表,进入设计视图,修改表结构3.表结构的修改86注意:选定基本表,进入设计视图,修改表结构3.表结构的修改34.数据的导出和导入导出操作可以将表中数据以另一种文件格式保存在磁盘上导入操作是导出操作的逆操作5.表的复制、删除、恢复和更名类似于Windows中对文件或文件夹的操作注意在进行这些操作之前,必须关闭有关的表操作必须在“数据库”窗口中完成874.数据的导出和导入导出操作可以将表中数据以另一种文件格8.3数据库查询

一、SQL语言概述二、数据更新语句:INSERTINTO,DELETE,UPDATE三、数据查询语句:SELECT四、多表查询888.3数据库查询

一、SQL语言概述32一、SQL语言

什么是SQL语言

StructureQueryLanguage即结构化查询语言,1974年推出,已成为DBMS的国际标准语言,在众多DBMS系统中使用。特点使用方便、功能丰富、语言简单易学。工作方式独立语言:直接输入SQL命令与机器交互,实现对数据库操作.

宿主语言:将SQL命令嵌入某高级语言中实现对数据库操作.

89一、SQL语言什么是SQL语言特点工作方式33

SQL语言

进入SQL视图在“查询”对象中选择“在设计视图中创建查询”,建立空查询表。在“视图|SQL视图”就可进入其对话框输入相应的命令。SQL功能动词数据查询SELECT数据定义CREATE、DROP、ALTER数据更新INSERT、UPDATE、DELETE数据控制GRANT、REVOKE主要功能和动词:90SQL语言进入SQL视图SQL功能动词数据更新INSE二、数据更新-INSERT语句INSERT语句用于数据插入其语法格式为:插入一条记录INSERTINTO表名[(字段1,…,字段n)]VALUES(值1,…,值n)插入查询的结果INSERTINTO表名(字段1,…,字段n)VALUES子查询91二、数据更新-INSERT语句INSERT语句用于数据插入例8.3向表Students中插入一条记录INSERTINTOStudents(学号,姓名,性别,党员,专业,出生年月,助学金)VALUES(“990301”,"杨国强","男",TRUE,"化学",#12/28/80#,220)注意:字符型常量用单引号或双引号括起来逻辑型字段的值是True/False、Yes/No或On/Off日期的表示形式为#

MM/DD/YY#

#MM/DD/YYYY#92例8.3向表Students中插入一条记录36数据更新-DELETE语句例8.5删除表Students中所有学号为990301的记录DELETEFROMStudentsWHERE学号=“990301”例8.6删除表Scores中成绩低于70分的记录DELETEFROMScoresWHERE成绩<70DELETE语句用于数据删除其语法格式为:DELETEFROM

表[WHERE条件]注意:

WHERE子句缺省,则删除表中所有的记录(表还在)93数据更新-DELETE语句例8.5删除表Students中数据更新-UPDATE语句例8.7将表Students中学生王涛的姓名改为王宝球UPDATEStudentsSET姓名=“王宝球”WHERE姓名="王涛"例8.8将表Students中助学金低于200的学生加30元UPDATEStudentsSET助学金=助学金+30WHERE助学金<200UPDATE语句用于数据修改其语法格式为:UPDATE

SET字段1=表达式1,…,字段n=表达式n[WHERE条件]

注意:

WHERE子句缺省,则修改表中所有的记录UPDATE语句一次只能对一个表进行修改

94数据更新-UPDATE语句例8.7将表Students中学三、数据查询SELECT语句查询根据给定的条件,从一个或多个表中获取所需的数据,形成一张“虚表”(表中的记录是与数据库表链接产生的)。95三、数据查询SELECT语句查询39SELECT语句

语法形式为:SELECT[ALL|DISTINCT]目标列FROM表(或查询)[WHERE条件表达式][GROUPBY列名1HAVING过滤表达式][ORDERBY列名2[ASC|DESC]]不可缺少可缺省功能

根据WHERE子句中的表达式,从指定的表或视图中找出满足条件的记录,按目标列显示数据GROUPBY子句按列名1的值进行分组,每一组产生一条记录,HAVING 短语对组进行输出过滤ORDERBY子句按列名2对查询结果的值进行排序不能出现重复的记录96SELECT语句语法形式为:不可缺少可缺省功能不能出现重SELECT语句示例例8.9

查询所用学生的基本情况SELECT学号,姓名,性别,党员,专业,出生年月,助学金,照片FROMStudents例8.10查询学生人数、最低、最高助学金和平均助学金SELECTCount(*)AS人数,Min(助学金)AS最低助学金,Max(助学金)AS最高助学金,Avg(助学金)AS平均助学金FROMStudents可改为Count(学号)用别名命名输出列本例产生一条记录97SELECT语句示例例8.9查询所用学生的基本情况可例8.12查询学生的人数和平均年龄SELECTCount(*)AS人数,Avg(Year(Date())-Year(出生年月))AS平均年龄FROMStudents例8.11查询所用的专业,查询结果中不出现重复的记录。SELECTDISTINCT专业FROMStudents不出现重复系统日期Year函数得到年份

98例8.12查询学生的人数和平均年龄例8.11查询所用的专例8.14显示所有非计算机专业学生的学号、姓名和年龄SELECT学号,姓名,Year(Date())-Year(出生年月)AS年龄FROMStudentsWHERE专业<>"计算机"(1)WHERE子句示例例8.13查询计算机专业学生的学号、姓名和专业SELECT学号,姓名,专业FROMStudentsWHERE专业="计算机"查询条件例8.15查询1981年(包括1981年)以前出生的女生姓名和出生年月。SELECT姓名,出生年月ROMStudentsWHERE出生年月<#1/1/1982#AND性别="女"可用#MM/DD/YYYY#的形式表示日期99例8.14显示所有非计算机专业学生的学号、姓名和年龄(1)例8.17查询选修了2门(包括2门)以上课程的学生的学号和课程数SELECT学号,Count(*)AS课程数FROMScoresGROUPBY学号

HAVINGCount(*)>=2(2)ORDERBY,GROUPBY子句示例例8.16查询所有党员学生的学号和姓名,并按助学金升序排列SELECT学号,姓名FROMStudentsWHERE党员=TrueORDERBY助学金逻辑值按学号分组2门以上例8.18查询所有课程的成绩在70分以上的学生的学号SELECT学号FROMScoresGROUPBY学号HAVINGMin(成绩)>=70100例8.17查询选修了2门(包括2门)以上课程的学生的学号和课问查询姓“张”的学生?Like运算符101问查询姓“张”的学生?Like运算符45

Access2002的表达式

常用运算符

型运

符算术运算符+-*/^(乘方)\(整除)MOD(取余数)关系运算符<<=<>>>=BetweenLike逻辑运算符NotAndOr字符运算符&通配符:* ? -任意字符串单个字符 一定范围的字符用于LikeBetwwen运算符中例姓名Like“?明*”102Access2002的表达式常用运算符类型运练习SELECT学号,COUNT(课程)AS课程数,AVG(成绩)AS平均成绩FROMscores

GROUPBY学号

ORDERBY学号DESC;问查询选修了2门(包括2门)以上课程、最低成绩在60分以上的学生的学号、课程数和最低分?SELECT学号,Min(成绩)AS成绩之Min,Count(课程)AS课程之CountFROMScoresGROUPBYScores.学号HAVING(((Min(成绩))>=60)AND((Count(课程))>2));例对学生成绩表,统计每人的平均分和课程数,按学号递减排序103练习SELECT学号,COUNT(课程)AS课学号姓名性别党员专业出生年月990001王涛男No物理82-01-21990002庄前女Yes物理82-09-21990101丁保华男No数学81-04-18990102姜沛棋女No数学81-12-02990103张智忠男No数学80-08-06990201程玲女Ye

温馨提示

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

评论

0/150

提交评论