第7章-数据库技术基础课件

PPT
  • 阅读 58 次
  • 下载 0 次
  • 页数 51 页
  • 大小 1.183 MB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第7章-数据库技术基础课件
可在后台配置第一页与第二页中间广告代码
第7章-数据库技术基础课件
可在后台配置第二页与第三页中间广告代码
第7章-数据库技术基础课件
可在后台配置第三页与第四页中间广告代码
第7章-数据库技术基础课件
第7章-数据库技术基础课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 51
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】第7章-数据库技术基础课件.ppt,共(51)页,1.183 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92330.html

以下为本文档部分文字说明:

1本章要点数据库系统概述数据库的建立和维护数据库查询第七章数据库技术基础2一、常用术语1.数据库(DataBase,DB)长期保存在计算机外存上的、有结构的、可共享的数据集合。2.数据库管理系统(DataBaseManagementSystem,DBMS)对数据库进行

管理的软件系统。数据库的一切操作,如查询、更新、插入、删除以及各种控制,都是通过DBMS进行的。DBMS是位于用户(或应用程序)和操作系统之间的软件。3.数据库系统(DataBaseSystem,DBS)由DB、DBMS、应用程序、数据库管理员、用户等构成的人-机

系统。用户应用程序DBMS操作系统数据库DB数据库系统7.1数据库系概述34.数据库系统的特点(1)采用一定的数据模型,最大限度地减少数据的冗余(2)最低的冗余度(3)有较高的数据独立性用户面对的是简单的逻辑结构操作而不涉及数据具体的物理存储结构

(4)安全性设置用户的使用权限,在数据库被破坏时,系统可把数据库恢复到可用状态。(5)完整性一些完整性检验以确保数据符合某些规则,保证数据库中数据始终是正确的。53.关系模型Students表男张智忠学号姓名性别

党员专业出生年月助学金990001王涛男No物理82-01-21¥160.00990002庄前女Yes物理82-09-21¥200.00990101丁保华男No数学81-04-18¥180.00990

102姜沛棋女No数学81-12-02¥280.00No数学80-08-06¥240.00990201程玲女Yes计算机82-11-14¥200.00990202黎敏艳女Yes计算机83-02-21¥160.00990103将数据组织成一组二维表格

6学号课程成绩990001计算机文化基础82990001高等数学76990002计算机文化基础90990101高等数学77990102计算机文化基础68990102C/C++程序设计85990102大学英语56990201计算机导论87990201高等数学67990202计算机导论53

990203英语71Scores表7(1)术语关系:一个关系即一张二维表关系模式:(对关系的描述)Students(学号,姓名,性别,党员,专业,出生年月,助学金,照片)Scores(学号,课程,成绩)记录:表中的一行属性(字段):表中的一列关键字:可以惟一地确定记录的某

个属性主键:在实际的应用中被选用的主关键字值域:属性的取值范围8Students表属性名(字段名)属性值(字段值)男张智忠学号姓名性别党员专业出生年月助学金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记录关键字唯一确定一条记录值域:{男,女}举例9(2)关系必须规范化:表中不能再包含表工资表(不满足关系模型要求)工号姓名工资应发工资实发工资91026王建春1656148897045杨建兵18321764工资表(满足关系模型要求)工号姓名应发工资实发工

资91026王建春1656148897045杨建兵1832176410(3)关系的种类①基本表如表Students和Scores②查询表查询表是查询结果表,查询中生成的临时表。③视图视图是由基本表或其他视图导出的表。学号姓名课程成绩990001王涛计算机文化基础82990001王涛高等数

学76990002庄前计算机文化基础90990101丁保华高等数学77990102姜沛棋计算机文化基础68990102姜沛棋C/C++程序设计85990102姜沛棋大学英语56990201程玲计算机导论87990201程玲高等数学67990202黎敏艳计算机导论53990203邓倩梅英语71

990204杨梦逸计算机导论66来自表Students和Scores的查询表11三、常见的数据库系统及其开发工具应用程序VBVCPowerBuilderDelphiMicrosoftAccessSQLSe

rverOracleVisualFoxProSQL命令数据库常见数据库系统开发工具:VisualBasicVisualC++PowerBuiderDelphi常见的数据库管理系统:MicrosoftAccessSQLSe

rverOracleVisualFoxPro常见的数据库应用系统及开发工具127.2数据库的建立和维护Access的特点是Office的组件之一具有对数据进行存储、管理、处理等常规功能直观的可视化操作工具和向导丰富的函数功能137.2.1Access数据库的组成表:最基本的对象,表及

其表之间的关系构成数据库的核心查询:从表(或查询)中选择一部分数据,形成一个全局性的集合窗体:用户与数据库交互的界面,窗体的数据源是表或查询报表:按指定的样式格式化的数据形式宏:若干个操作的组合模块:用户用VB语言编写应用

程序Web页:向Internet上发布数据这些不同类型的对象集合构成了一个数据库文件,以.mdb存储在盘上.147.2.2Access数据库的建立字段数据类型有10种(文本、备注、数字、日期/时间、货币、

是/否等)字段属性:大小、小数位、格式确定表的结构。建立一个空数据库,输入文件名。使用设计器创建表,进入设计视图,输入各个字段的信息。定义主键。保存表,输入表的名称。表是Access数据库的基础,其他对象是工具,建立数据库的关键是建立基本表。步骤:15实例创建表Students。

Students的结构字段名称字段类型字段宽度学号Text6个字符姓名Text4个字符性别Text1个字符党员Yes/No1个二进制位专业Text20个字符出生年月Date/Time8字节助学金Currency8字节照片OLEObject不确定16Access数据库的建立3

.定义表的结构1.建立空数据库2.使用设计器或向导演示177.2.3数据库的管理与维护选定基本表,进入数据表视图,输入编辑数据添加新记录1.数据输入演示18注意:打开的表或正在使用的表是不能修改的.修改字段名称不会影响到

字段中所存放的数据,但是会影响到一些相关的部分。如果查询、报表、窗体等对象使用了这个更换名称的字段,那么在这些对象中也要作相应的修改。关系表中互相关联的字段是无法修改的,如果需要修改,必须先将关联去掉选定

基本表,进入设计视图,修改表结构2.表结构的修改19类似于Windows中对文件或文件夹的操作注意在进行这些操作之前,必须关闭有关的表操作必须在“数据库”窗口中完成3.表的复制、删除、恢复和更名21(1)字符型数据用双引号“或单引用‘括起来。如"abcde123"日期型数据用#括起来。例如#

10/12/2000#(2)MOD是取余数运算符例如,5MOD3的结果为2。(3)&用于连接两个字符串。"ABC"&"1234"的结果是"ABC1234"说明:22(4)Between运算符格式:<表达式1>Betwe

en<表达式2>And<表达式3>3Between1And10:True3Between1And2:False,"ABC"Between"A"And"B":True"ABC"Between"A"And"ABB":False。(5)可使用通配符:*和

?查找姓“张”的学生:姓名Like"张*"查找不是姓“张”的学生:姓名NotLike"张*"说明:232.常用内部函数函数名说明实例结果Date()返回系统日期Date()#5/4/2003#Year(D)返回年份Year(#12

/1/1982#)19823.表达式和表达式生成器247.2.5SQL中的数据更新命令结构化查询语言SQL(StructureQueryLanguage)是操作关系数据库的工业标准语言。在SQL中,常用的语句有两类:数据更新

命令INSERT、UPDATE、DELETE数据查询命令SELECT1.INSERT命令用于数据插入其语法格式为:插入一条记录INSERTINTO表名[(字段1,…,字段n)]VALUES(值1,…,值n)25INSERT

命令实例例1向表Students中插入一条记录INSERTINTOStudents(学号,姓名,性别,党员,专业,出生年月,助学金)VALUES("990301","杨国强","男",TRUE,"化学",#

12/28/80#,220)注意:字符型常量用单引号或双引号括起来逻辑型字段的值是True/False、Yes/No或On/Off日期的表示形式为MM/DD/YY或MM/DD/YYYY26例2向表Scores插入记录(990301,大学计算机

基础,98)INSERTINTOScoresVALUES("990301","大学计算机基础",98)INSERT命令实例27直接执行SQL语句的方法①切换到“查询”页。②创建一个空查询。③切换到SQL视图。④输入SQL命令,如右图所示。⑤执行查询⑥查看结果。操作方法演示282.

DELETE语句例3删除表Students中所有学号为990301的记录DELETEFROMStudentsWHERE学号=“990301”例4删除表Scores中成绩低于70分的记录DELETEFROMSc

oresWHERE成绩<70DELETE语句用于数据删除其语法格式为:DELETEFROM表[WHERE条件表达式]注意:WHERE子句缺省,则删除表中所有的记录(表还在)293.UPDATE语句例5将表Students中学生王涛的姓名

改为王宝球UPDATEStudentsSET姓名=“王宝球”WHERE姓名="王涛"例6将表Students中助学金低于200的学生加30元UPDATEStudentsSET助学金=助学金+30WHERE助学金<200UPDATE语句用于数据修改其语法格式为:UPDATE表SET

字段1=表达式1,…,字段n=表达式n[WHERE条件]注意:WHERE子句缺省,则修改表中所有的记录UPDATE语句一次只能对一个表进行修改307.3数据库的查询数据查询是数据库的核心操作不管采用何种工具创建查询,Access都会在后台构造等

效的SELECT语句执行查询实质就是运行了相应的SELECT语句。分类SQL语句数据查询SELECT数据更新语句INSERTUPDATEDELETE318.3.1SELECT语句1.语法形式为:SELECT[ALL|DISTINCT]目标列FROM表(或查询)-基本部分选择

字段[WHERE条件表达式]-选择满足条件的记录[GROUPBY列名1HAVING过滤表达式]-分组并且过滤[ORDERBY列名2[ASC|DESC]]-排序不可缺少可缺省功能根据WHERE中表达式,从指定的表(或查询)中找出满足条件的记录,按目标列显示数据GROUPBY子

句按列名1的值进行分组,每一组产生一条记录,HAVING子句对分组后的结果过滤ORDERBY子句按列名2对查询结果的值进行排序不能出现重复的记录32例7查询所有学生的学号、姓名、性别和专业SELECT学号,姓名,性别,专业FROMStudents说明:若

要查询所有学生的基本情况(所有字段),则可以用*表示所有的字段:SELECT*FROMStudents用DISTINCT没有用DISTINCT例8查询所有的专业,查询结果中不出现重复的记录SELECT

DISTINCT专业FROMStudents;33例9查询Students表中所有学生人数、最低助学金、最高助学金和平均助学金.或:查询Students表中女生人数、最低助学金、最高助学金和平均助学金.34合计函数描述AVG(列名)计算某一

列的平均值COUNT(*)统计记录的个数COUNT(列名)统计某一列值的个数SUM(列名)计算某一列的总和MAX(列名)计算某一列的最大值MIN(列名)计算某一列的最小值如果没有GROUPBY子句,合计函数对整个表进行统计,产生一条记录,否则按分组统计,一组产生一条记录SQL合计函数35S

ELECTCount(*)AS人数,Min(助学金)AS最低助学金,Max(助学金)AS最高助学金,Avg(助学金)AS平均助学金FROMStudents可改为Count(学号)用AS子句指定别名本例产生一条记录例10使用合计函数,查询学生人数、最低助学

金、最高助学金和平均助学金36SELECTCount(*)AS人数,Avg(Year(Date())-Year(出生年月))AS平均年龄FROMStudents系统日期得到年份例11查询学生的人数和平

均年龄372.选择记录例12显示所有非计算机专业学生的学号、姓名和年龄SELECT学号,姓名,Year(Date())-Year(出生年月)AS年龄FROMStudentsWHERE专业<>"计算机"例13查询1981年(包括1981年)以前出生的女生

姓名和出生年月。SELECT姓名,出生年月FROMStudentsWHERE出生年月<#1/1/1982#AND性别="女"可用#MM/DD/YY#的形式表示日期383.排序例14查询所有党员学生的学号和姓名,并按助学金从小到大排序。SELECT学号,姓名FROM

StudentsWHERE党员=TrueORDERBY助学金可用多个关键字排序。例如,ORDERBY专业ASC,助学金DESC专业是第一排序关键字,助学金是第二排序关键字。ORDERBY子句用于排序ASC:表示升序(默认)DESC:表示降序。

394.分组查询(1)简单分组把在某一列上值相同的记录分在一组,一组产生一条记录。例15查询每个专业学生人数。SELECT专业,Count(*)AS学生人数FROMStudentsGROUPBY专业将专业相同的记录分在一组。40(2)复杂分组把在多个列上值相同的记录分在一组,一组

产生一条记录。例16查询各专业男女生的平均助学金SELECT专业,性别,Avg(助学金)AS平均助学金FROMStudentsGROUPBY专业,性别将专业和性别都相同的记录分在一组。41(3)分组后过滤-HAVING子句HAVING子句对分组后的结果过滤,不是对分组之前的表进行

过滤。HAVING后的过滤条件中一般都要有合计函数。例17查询有2门课程成绩在75以上的学生的学号和课程数。SELECT学号,Count(*)AS课程数FROMScoresWHERE成绩>=75GROUPBY学号HAVINGCount(*)>=2425.连接查询-

WHERE条件,在两表中有相同的属性值例18查询所有学生的学号、姓名、课程和成绩SELECTStudents.学号,Students.姓名,Scores.课程,Scores.成绩FROMStudents,ScoresWHERE

Students.学号=Scores.学号两个表连接条件43表的连接连接结果44用条件“Students.学号=Scores.学号”进行连接,然后进行选择SELECTStudents.学号,Students.姓名,Scores.成绩FROMStudents,ScoresWHEREStu

dents.学号=Scores.学号ANDScores.课程="高等数学"例19查询选修了“高等数学”课程的学生的学号、姓名和成绩。45练习8.(1)INSERTINTOTEACHERSVALUES(“300008”,“杨梦”

,“女”,59,#66/04/22#,YES,1660,210)(2)DELETEFROMTEACHERSWHERE年龄<36AND性别=“女”(3)UPDATETEACHERSSET应发工资=应发工资*1.

2WHERE(YEAR(DATE())-YEAR(参加工作年月))>25(4)SELETE教师号,姓名,实发工资FROMTEACHERS(5)SELECTCOUNT(*)AS人数,AVG(实发工资)AS平均工资

FROMTeachers(6)SELECT教师号,姓名,实发工资FROMTEACHERSWHERE参加工作年月<#12/31/1990#(7)SELECT性别,MIN(实发工资)AS最低工资,MAX(实发工资)AS最高工资,AVG(实发工资)AS平均工资FROMTeachersGROUPBY性

别(8)SELECT教师号,姓名FROMTeachersWHERE党员=YESORDERBY年龄##466.嵌套查询在SQL中,将一个SELECT语句查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询例8.21查询没有学过大学计

算机基础的学生的学号、姓名和专业SELECTStudents.学号,Students.姓名,Students.专业FROMStudentsWHEREStudents.学号Notin(SELECTScores

.学号FROMScoresWHEREScores.课程="大学计算机基础")从Students中选择学号不在学过该课程名单中的人从Scores中选择学过计算机文化的学生的学号47SELECTStudents.学号,Students.姓名FROMStudentsWHERE专

业in(SELECTStudents.专业FROMStudentsWHEREStudents.姓名="邓倩梅")与查询结果同专业的学生查询邓倩梅的专业例8.22查询与“邓倩梅”在同一个专业的学生的学号和

姓名48例8.23使用向导查询所用学生的基本情况1.进入向导选定字段2.选择明细方式3.输入查询的名称4.查询结果8.3.2创建查询49例8.24查询平均成绩在75分以上的所有学生的学号、姓名和平均成绩SELECTStude

nts.学号,Students.姓名,Avg(Scores.成绩)AS平均成绩FROMStudentsINNERJOINScoresONStudents.学号=Scores.学号GROUPBYStudents.学号,Students.姓名HAVING(

((Avg(Scores.成绩))>75));508.4窗体、报表8.4.1创建窗体窗体是维护表中数据的最灵活的一种形式。利于删除和修改等操作。例8.25创建如下图所示的窗体Scores1,用于维护表Scores。打开Student.mdb数据库选择使用向导创建窗体选定表Scores及

所有字段选定窗体布局和窗体样式输入窗体名称:Scores1创建窗体的方法:使用向导创建窗体使用设计视图创建窗体。51使用设计视图创建窗体例8.26创建下图所示的窗体Scores2数据分布在两个表中,先建立下列查询SELECTStudents.学号,F

irst(Students.姓名)AS姓名,Avg(Scores.成绩)AS平均成绩FROMStudents,ScoresGROUPBYStudents.学号拖所需的字段5.拖放所需的字段1.进入新建窗体2.选择设计视图3.命名查询名称4.建立查询52报表主要用来把表、查询甚

至窗体中的数据生成报表,供打印。例8.27创建下图所示的报表Scores1打开Student.mdb数据库选择使用向导创建报表选定表Scores及所有字段决定要否分组(本例不分组)选择排序方

式(本例按学号)选择表格布局方式选择报表样式(本例为组织)输入报表名称:Scores18.4.2创建报表53例8.28创建如图所示的报表Scores2,输出每个学生的学号、姓名和平均成绩。选择“使用向导创建报表”选择例8.23的查询,

并选择所有字段样式:“淡灰”其余与例8.27相同。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?