数据库基础大学计算机基础简明教程.ppt_第1页
数据库基础大学计算机基础简明教程.ppt_第2页
数据库基础大学计算机基础简明教程.ppt_第3页
数据库基础大学计算机基础简明教程.ppt_第4页
数据库基础大学计算机基础简明教程.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1,大学计算机基础 简明教程,第七章 数据库基础,2,教学说明,1. 学时:课堂教学4学时,上机实验4学时 2. 目标:培养日常工作中使用桌面型数据库的能力 为后继课程提供数据库方面的基础知识 3. 内容:数据库基础知识+SQL命令(ACCESS) 4. 数据基础知识: 常用术语 三个发展阶段 特点 数据模型 常见的数据库系统和开发工具 新型数据库系统,3,5. 处理数据库基础知识几个想法: 避开从现实世界到信息世界、数据世界的过程 没有涉及数据库设计方面的规范化理论 没有涉及关系代数 三个发展阶段用了三个小程序简要说明 特点恰恰是最难讲的 数据模型是教材编写时最后处理的,4,6. SQL命令 选择了ACCESS 选择了4条SQL命令 SELECT INSERT DELETE UPDATE 4条命令基本满足编写数据库应用程序的需要 教学注意简化下列内容: ACCESS操作的问题 利用工具生成查询问题 窗体、报表问题 7. 考核形式和效果 考核形式:选择题、填充题、写出3条SQL命令 考核效果:3条SQL命令12分,平均8-10分,5,8. 后继课程 数据库技术与应用 主要内容:数据库原理+SQL SERVER+VB.NET,课程目标:完成一个实用的数据库应用程序: 自由组队、自主选题、申优答辩 课程考核:作品50分,笔试50分(1小时) 教学效果非常理想 主要问题: 解放思想,不能受专业课程教学的影响,7.1 数据库系统概述 7.2 数据库的建立和维护 7.3 数据库查询 7.4 窗体、报表,第七章 数据库基础,7,典型案例,无纸化通用考试系统 大学计算机基础 isual Basic程序设计 C/C+程序设计 软件技术基础,应用程序,数据库管理系统,VB,VC+,PowerBuilder,Delphi,ACCESS,SQL SERVER,ORACLE,FOXPRO,SQL命令,数据库引挚,数据库,信息化社会离不开信息系统 信息系统的核心和基础是数据库,8,计算机基础教育网站 ,IE,HTM、ASP,客户机,服务器,SQL命令,数据库,发出请求,响应请求,数据,7.1.1 常用术语 7.1.2 数据库技术的产生和发展 7.1.3 数据模型 7.1.4 常见的数据库系统及其开发工具,7.1 数据库系概述,10,7.1.1 常用术语,1. 数据库(DataBase,DB) 长期保存在计算机外存上的、有结构的、可共享的数据集合。 2. 数据库管理系统(DataBase Management System,DBMS) 对数据库进行管理的软件系统。数据库的一切操作,如查询、更新、插入、删除以及各种控制,都是通过DBMS进行的。 DBMS是位于用户(或应用程序)和操作系统之间的软件。借助于操作系统实现对数据的存储和管理,使数据能被各种不同的用户所共享,DBMS提供给用户可使用的数据库语言。 3. 数据库系统(DataBase System,DBS) 由DB、DBMS、应用程序、数据库管理员、用户等构成的人机系统。,用户,应用程序,DBMS,操作系统,数据库 DB,数据库系统,11,7.1.2 数据库技术的产生和发展,数据管理技术经历了三个发展阶段 人工管理阶段 文件管理阶段 数据库系统阶段,12,.人工管理阶段,时间:20世纪50年代中期以前 硬件:只有卡片、纸带、磁带等存储设备 软件:没有操作系统,没有进行数据管理的软件 应用:以科学计算为目的 特点: 程序和数据放在一起 数据不能共享 特征图,13,人工管理阶段数据管理示例,例:两个C语言程序,分别求10个数据之和和最大值。 程序与数据放在一起,数据没有能够共享,14,.文件系统阶段,时间:20世纪60年代中期 硬件:磁带、磁盘等大容量存储设备 软件:有了操作系统 应用:不仅用于科学计算,还用于数据管理 特点: 程序与数据分离 数据有一定的独立性 实现了以文件为单位的数据共享 特征图,数据文件,文件管理系统,数据文件n,应用程序,应用程序,应用程序n,数据文件2,15,文件系统阶段数据管理示例,上例用文件实现,16,3.数据库系统阶段,时间:20世纪60年代后期 硬件:出现了大容量且价格低廉的磁盘 软件:有了数据库管理系统DBMS 应用:各个方面 特点: 数据结构化 数据共享性高,冗余小 数据独立性高 数据由DBMS统一管理控制 为用户提供了友好的接口 特征图,史料: 数据库技术发展的分水岭 书写历史的甲骨文,17,数据库系统阶段数据管理示例,解决了数据的独立性问题,实现数据的统一管理, 达到数据共享的目的,求和: SELECT Max(Num) FROM Data 求最大值:SELECT Avg(Num) FROM Data,18,4. 数据库系统的特点,(1) 采用一定的数据模型,最大限度地减少数据的冗余 (2) 最低的冗余度 (3) 有较高的数据独立性 用户面对的是简单的逻辑结构操作而不涉及数据具体的 物理存储结构 (4) 安全性 设置用户的使用权限 在数据库被破坏时,系统可把数据库恢复到可用状态。 (5) 完整性 一些完整性检验以确保数据符合某些规则,保证数据库中 数据始终是正确的。,19,7.1.3 数据模型,1. 数据模型的定义 数据库中数据的存储方式 2. 三种重要的数据模型 层次模型 用树型结构来表示实体及实体间的联系 例如:1968年,IBM公司的IMS(Information Management System) 网状模型 用网状结构来表示实体及实体间的联系 例如:DBTG系统 注:1969年美国CODASYL组织提出了一份“DBTG报告”, 以后根据DBTG报告实现的系统一般称为DBTG系统 关系模型 用一组二维表表示实体及实体间的关系 例如:Microsoft Access 注:理论基础是1970年IBM公司研究人员E.F.Codd发表的大量论文。 目前应用最广泛的是关系数据模型,20,3. 关系模型,Students表,属性名(字段名),属性值(字段值),记录,关键字唯一确定一条记录,关系(二维表),值域:男,女,将数据组织成一组二维表格,21,22,1.术语 关系:一个关系一张二维表 关系模式: Students(学号,姓名,性别,党员,专业,出生年月,助学金,照片) Scores(学号,课程,成绩) 记录:表中的一行 属性(字段):表中的一列 关键字:某个属性可以惟一地确定记录 主键:在实际的应用中只能选择一个,被选用的关 值域:属性的取值范围,23,2. 关系必须规范化:表中不能再包含表,工资表(不满足关系模型要求),工资表(满足关系模型要求),24,3关系的种类, 基本表 如表Students和Scores 查询表 查询表是查询结果表 查询中生成的临时表。 视图 视图是由基本表或其他 视图导出的表。,来自表Students和Scores的查询表,25,7.1.4 常见的数据库系统及其开发工具,应用程序,VB,VC,PowerBuilder,Delphi,Microsoft Access,SQL Server,Oracle,Visual FoxPro,SQL命令,数据库,常见数据库系统开发工具: Visual Basic Visual C+ PowerBuider Delphi,常见的数据库管理系统: Microsoft Access SQL Server Oracle Visual FoxPro,常见的数据库应用系统及开发工具,26,浏 览 器,数据库,HTM、ASP等,SQL命令,服务器,客户端,支持数据库查询的Web服务器,27,学生成绩表,学生基本情况表,28,7.2 数据库的建立和维护,Access的特点 是Office的组件之一 具有对数据进行存储、管理、处理等常规功能 直观的可视化操作操作工具和向导 丰富的函数功能,29,实例 创建表Students。,Students的结构,30,7.2.1 Access 数据库的组成,表: 最基本的对象,表及其表之间 的关系构成数据库的核心 查询: 从表(或查询)中选择一部分数 据,形成一个全局性的集合 窗体: 用户与数据库交互的界面,窗体 的数据源是表或查询 报表: 按指定的样式格式化的数据形式 宏: 若干个操作的组合 模块: 用户用VB语言编写应用程序 Web页: 向Internet上发布数据 这些不同类型的对象集合构成了一个数据库文件,以.mdb存储在盘上,31,7.2.2 Access 数据库的建立,字段数据类型有10种 字段属性 大小、小数位、格式,确定表的结构 建立一个空数据库,输入文件名 使用设计器或向导创建表,进入设计视图, 输入各个字段的信息 建立表的索引 定义主键 输入表的名称保存表,主要方法:数据库向导(模板)或设计视图,一般用后者,32,Access 数据库的建立,3.定义表的结构,1.建立空数据库,2.使用设计器或向导,33,7.2.3 数据库的管理与维护,选定基本表,进入数据表视图,输入编辑数据,添加,新记录,1. 数据输入,34,注意: 打开的表或正在使用的表是不能修改的 修改字段名称不会影响到字段中所存放的数据,但是会影响到一 些相关的部分。如果查询、报表、窗体等对象使用了这个更换名 称的字段,那么在这些对象中也要作相应的修改。 关系表中互相关联的字段是无法修改的,如果需要修改,必须先将关联去掉,选定基本表,进入设计视图,修改表结构,2.表结构的修改,35,3.数据的导出和导入,导出操作 可以将表中数据以另一种文件格式保存在磁盘上 导入操作 是导出操作的逆操作,4.表的复制、删除、恢复和更名 类似于Windows中对文件或文件夹的操作 注意 在进行这些操作之前,必须关闭有关的表 操作必须在“数据库”窗口中完成,36,7.2.4 Access表达式,1. 常用运算符,说明: (1) 字符型数据用 双引号“ 或 单引用 括起来。如“abcde123“ 日期型数据用 # 括起来。例如#10/12/2000# (2) MOD是取余数运算符 例如,5 MOD 3的结果为2。,37,(3) Between运算符 格式: Between And 3 Between 1 And 10:True 3 Between 1 And 2: False, “ABC“ Between “A“ And “B“:True “ABC“ Between “A“ And “ABB“:False。 (4) 可使用通配符:*和? 查找姓“张”的学生:姓名 Like “张*“ 查找不是姓“张”的学生:姓名 Not Like “张*“ (5) & 用于连接两个字符串。 “ABC“&“1234“的结果是“ABC1234“,38,2. 常用内部函数,3表达式和表达式生成器,39,7.2.5 SQL中的数据更新命令,结构化查询语言SQL是操作关系数据库的工业标准语言 在SQL中,常用的语句有两类: 数据查询命令 SELECT 数据更新命令 INSERT、UPDATE、DELETE,INSERT命令用于数据插入 其语法格式为: 插入一条记录 INSERT INTO 表名 (字段1,字段n) VALUES (值1,值n) 插入查询的结果 INSERT INTO 表名 (字段1,字段n) VALUES 子查询,40,INSERT命令实例,例7.3 向表Students中插入一条记录 INSERT INTO Students(学号, 姓名, 性别, 党员, 专业, 出生年月, 助学金) VALUES(“990301“,“杨国强“,“男“,TRUE,“化学“, #12/28/80#,220) 注意: 字符型常量用 单引号 或 双引号 括起来 逻辑型字段的值是 True/False、Yes/No 或 On/Off 日期的表示形式为 MM/DD/YY 或 MM/DD/YYYY,41,例7.4 向表Scores插入记录(990301,大学计算机基础,98) INSERT INTO Scores VALUES (“990301“, “大学计算机基础“, 98),直接执行SQL语句的方法 切换到“查询”页。 创建空查询一个空查询。 切换到SQL视图。 输入SQL命令,如右图所示。 执行查询 查看结果。,42,DELETE语句,例7.5 删除表Students中所有学号为990301的记录 DELETE FROM Students WHERE 学号=“990301” 例7.6 删除表Scores中成绩低于70分的记录 DELETE FROM Scores WHERE 成绩70,DELETE语句用于数据删除 其语法格式为: DELETE FROM 表 WHERE 条件 注意: WHERE子句缺省,则删除表中所有的记录(表还在),43,UPDATE语句,例7.7 将表Students中学生王涛的姓名改为王宝球 UPDATE Students SET 姓名=“王宝球” WHERE 姓名=“王涛“ 例7.8 将表Students中助学金低于200的学生加30元 UPDATE Students SET 助学金=助学金+30 WHERE 助学金200,UPDATE语句用于数据修改 其语法格式为: UPDATE 表 SET 字段1=表达式1, ,字段n=表达式n WHERE 条件 注意: WHERE子句缺省,则修改表中所有的记录,UPDATE语句一次只能对一个表进行修改,44,7.3 数据库的查询,数据查询是数据库的核心操作 不管采用何种工具创建查询,Access都会在后台构造等效的SELECT语句 执行查询实质就是运行了相应的SELECT语句。 SQL(Structure Query Language):结构化查询语言,45,7.3.1 SELECT语句,语法形式为: SELECT ALL|DISTINCT 目标列 FROM 表(或查询) -基本部分,选择字段 WHERE 条件表达式 -选择满足条件的记录 GROUP BY 列名1 HAVING 过滤表达式 -分组并且过滤 ORDER BY 列名2 ASC|DESC -排序,不可缺少,可缺省,功能 根据WHERE中表达式,从指定的表(或查询)中找出满足条件的记录,按目标列显示数据 GROUP BY子句按列名1的值进行分组,每一组产生一条记录,HAVING子句对分组后的结果过滤 ORDER BY子句按列名2 对查询结果的值进行排序,不能出现重复的记录,46,如果没有GROUP BY子句,合计函数对整个表进行统计,产生一条记录,否则按分组统计,一组产生一条记录,SQL合计函数:,47,1. 选择字段,例7.9 查询所有学生的学号、姓名、性别和专业 SELECT 学号, 姓名, 性别, 专业 FROM Students 说明: 若要查询所有学生的基本情况(所有字段), 则可以用*表示所有的字段: SELECT * FROM Students 例7.10 查询所用的专业,查询结果中不出现重复的记录 SELECT DISTINCT 专业 FROM Students;,用DISTINCT,没有用DISTINCT,48,例7.11 使用合计函数,查询学生人数、最低助学金、最高助学金和平均助学金 SELECT Count(*) AS 人数, Min(助学金) AS 最低助学金, Max(助学金) AS 最高助学金, Avg(助学金) AS 平均助学金 FROM Students,可改为Count(学号),用AS子句指定别名,本例产生一条记录,49,例7.12 查询学生的人数和平均年龄 SELECT Count(*) AS 人数, Avg(Year(Date()-Year(出生年月) AS 平均年龄 FROM Students,系统日期,得到年份,50,2. 选择记录,例7.13 显示所有非计算机专业学生的学号、姓名和年龄 SELECT 学号, 姓名, Year(Date()-Year(出生年月) AS 年龄 FROM Students WHERE 专业“计算机“,查询条件,例7.14 查询1981年(包括1981年)以前出生的女生姓名和出生年月。 SELECT 姓名,出生年月 FROM Students WHERE 出生年月 #1/1/1982# AND 性别=“女“,可用 #MM/DD/YYYY# 的形式表示日期,51,3. 排序,ORDER BY子句用于顺序 ASC:表示升序 DESC:表示降序。 例7.15 查询所有党员学生的学号和姓名,并按助学金从小到大排序。 SELECT 学号, 姓名 FROM Students WHERE 党员=True ORDER BY 助学金 可用多个关键字排序。 例如,ORDER BY 专业 ASC,助学金 DESC 专业是第一排序关键字,助学金是第二排序关键字。,52,4. 分组查询,(1) 简单分组 把在某一列上值相同的记录分在一组,一组产生一条记录。 例7.16 查询每个专业学生人数。 SELECT 专业, Count(*) AS 学生人数 FROM Students ORDER BY 专业 将专业相同的记录分在一组。,53,(2) 复杂分组 把在多个列上值相同的记录分在一组,一组产生一条记录。 例7.17 查询各专业男女生的平均助学金 SELECT专业,性别, Avg(助学金) AS 平均助学金 FROM Students GROUP BY 专业, 性别 将专业和性别都相同的记录分在一组。,54,(3) 分组后过滤 HAVING子句对分组后的结果过滤,不是对分组之前的表进行过滤。 没有GROUP BY子句时,HAVING的作用等同于WHERE子句。 HAVING后的过滤条件中一般都要有合计函数。 例7.18 查询有2门课程成绩在75以上的学生的学号和课程数。 SELECT 学号, Count(*) AS 课程数 FROM Scores WHERE 成绩=75 GROUP BY 学号 HAVING Count(*)=2,55,5. 连接查询,WHERE 条件,在两表中有相同的属性值 例7.19 查询所有学生的学号、姓名、课程和成绩 SELECT Students.学号,Students.姓名,Scores.课程, Scores.成绩 FROM Students,Scores WHERE Students.学号 = Scores.学号 自动生成语句: SELECT Students.学号, Students.姓名, Scores.课程, Scores.成绩 FROM Students INNER JOIN Scores ON Students.学号 = Scores.学号,两个表,连接条件,56,表的连接,连接结果,57,例7.20 查询选修了“高等数学”课程的学生的学号、姓名和成绩。 用条件“Students.学号=Scores.学号”进行连接,然后进行选择, SELECT Students.学号, Students.姓名, Scores.成绩 FROM Students, Scores WHERE Students.学号=Scores.学号 AND Scores.课程=“高等数学“ 上述语句可以改写为: SELECT Students.学号, Students.姓名, Scores.成绩 FROM Students INNER JOIN Scores ON Students.学号 = Scores.学号 WHERE Scores.课程=“高等数学“,58,6.嵌套查询,在SQL中,将一个SELECT语句查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询,59,例7.22 查询与“邓倩梅”在同一个专业的学生的学号和姓名 SELECT Students.学号, Students.姓名 FROM Students WHERE 专业 in (SELECT Students.专业 FROM Students WHERE Students.姓名=“邓倩梅“),与查询结果同专业的学生,查询邓倩梅的专业,60,例7.23 使用向导查

温馨提示

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

最新文档

评论

0/150

提交评论