




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 本章要点数据库系统概述数据库的建立和维护数据库查询 第七章数据库技术基础 2 一 常用术语 1 数据库 DataBase DB 长期保存在计算机外存上的 有结构的 可共享的数据集合 2 数据库管理系统 DataBaseManagementSystem DBMS 对数据库进行管理的软件系统 数据库的一切操作 如查询 更新 插入 删除以及各种控制 都是通过DBMS进行的 DBMS是位于用户 或应用程序 和操作系统之间的软件 3 数据库系统 DataBaseSystem DBS 由DB DBMS 应用程序 数据库管理员 用户等构成的人 机系统 用户 应用程序 DBMS 操作系统 数据库DB 数据库系统 7 1数据库系概述 3 4 数据库系统的特点 1 采用一定的数据模型 最大限度地减少数据的冗余 2 最低的冗余度 3 有较高的数据独立性用户面对的是简单的逻辑结构操作而不涉及数据具体的物理存储结构 4 安全性设置用户的使用权限 在数据库被破坏时 系统可把数据库恢复到可用状态 5 完整性一些完整性检验以确保数据符合某些规则 保证数据库中数据始终是正确的 4 二 数据模型 1 数据模型的定义数据库中数据的存储方式 2 三种重要的数据模型 层次模型用树型结构来表示实体及实体间的联系例如 1968年 IBM公司的IMS InformationManagementSystem 网状模型用网状结构来表示实体及实体间的联系例如 DBTG系统注 1969年美国CODASYL组织提出了一份 DBTG报告 以后根据DBTG报告实现的系统一般称为DBTG系统 关系模型用一组二维表表示实体及实体间的关系例如 MicrosoftAccess目前应用最广泛的是关系数据模型 5 3 关系模型 Students表 将数据组织成一组二维表格 6 Scores表 7 1 术语关系 一个关系即一张二维表关系模式 对关系的描述 Students 学号 姓名 性别 党员 专业 出生年月 助学金 照片 Scores 学号 课程 成绩 记录 表中的一行属性 字段 表中的一列关键字 可以惟一地确定记录的某个属性主键 在实际的应用中被选用的主关键字值域 属性的取值范围 8 Students表 属性名 字段名 属性值 字段值 记录 关键字唯一确定一条记录 值域 男 女 举例 9 2 关系必须规范化 表中不能再包含表 工资表 不满足关系模型要求 工资表 满足关系模型要求 10 3 关系的种类 基本表如表Students和Scores 查询表查询表是查询结果表 查询中生成的临时表 视图视图是由基本表或其他视图导出的表 来自表Students和Scores的查询表 11 三 常见的数据库系统及其开发工具 应用程序 VB VC PowerBuilder Delphi MicrosoftAccess SQLServer Oracle VisualFoxPro SQL命令 数据库 常见数据库系统开发工具 VisualBasicVisualC PowerBuiderDelphi 常见的数据库管理系统 MicrosoftAccessSQLServerOracleVisualFoxPro 常见的数据库应用系统及开发工具 12 7 2数据库的建立和维护 Access的特点是Office的组件之一具有对数据进行存储 管理 处理等常规功能直观的可视化操作工具和向导丰富的函数功能 13 7 2 1Access数据库的组成 表 最基本的对象 表及其表之间的关系构成数据库的核心查询 从表 或查询 中选择一部分数据 形成一个全局性的集合窗体 用户与数据库交互的界面 窗体的数据源是表或查询报表 按指定的样式格式化的数据形式宏 若干个操作的组合模块 用户用VB语言编写应用程序Web页 向Internet上发布数据这些不同类型的对象集合构成了一个数据库文件 以 mdb存储在盘上 14 7 2 2Access数据库的建立 字段数据类型有10种 文本 备注 数字 日期 时间 货币 是 否等 字段属性 大小 小数位 格式 确定表的结构 建立一个空数据库 输入文件名 使用设计器创建表 进入设计视图 输入各个字段的信息 定义主键 保存表 输入表的名称 表是Access数据库的基础 其他对象是工具 建立数据库的关键是建立基本表 步骤 15 实例创建表Students Students的结构 16 Access数据库的建立 3 定义表的结构 1 建立空数据库 2 使用设计器或向导 演示 17 7 2 3数据库的管理与维护 选定基本表 进入数据表视图 输入编辑数据 添加 新记录 1 数据输入 演示 18 注意 打开的表或正在使用的表是不能修改的 修改字段名称不会影响到字段中所存放的数据 但是会影响到一些相关的部分 如果查询 报表 窗体等对象使用了这个更换名称的字段 那么在这些对象中也要作相应的修改 关系表中互相关联的字段是无法修改的 如果需要修改 必须先将关联去掉 选定基本表 进入设计视图 修改表结构 2 表结构的修改 19 类似于Windows中对文件或文件夹的操作注意在进行这些操作之前 必须关闭有关的表操作必须在 数据库 窗口中完成 3 表的复制 删除 恢复和更名 20 7 2 4Access表达式 1 常用运算符 表达式 由变量 字段名 常量 运算符 函数 括号按一定规则组成 21 1 字符型数据用双引号 或单引用 括起来 如 abcde123 日期型数据用 括起来 例如 10 12 2000 2 MOD是取余数运算符例如 5MOD3的结果为2 3 用于连接两个字符串 ABC 1234 的结果是 ABC1234 说明 22 4 Between运算符格式 BetweenAnd3Between1And10 True3Between1And2 False ABC Between A And B True ABC Between A And ABB False 5 可使用通配符 和 查找姓 张 的学生 姓名Like 张 查找不是姓 张 的学生 姓名NotLike 张 说明 23 2 常用内部函数 3 表达式和表达式生成器 24 7 2 5SQL中的数据更新命令 结构化查询语言SQL StructureQueryLanguage 是操作关系数据库的工业标准语言 在SQL中 常用的语句有两类 数据更新命令INSERT UPDATE DELETE数据查询命令SELECT 1 INSERT命令用于数据插入其语法格式为 插入一条记录INSERTINTO表名 字段1 字段n VALUES 值1 值n 25 INSERT命令实例 例1向表Students中插入一条记录INSERTINTOStudents 学号 姓名 性别 党员 专业 出生年月 助学金 VALUES 990301 杨国强 男 TRUE 化学 12 28 80 220 注意 字符型常量用单引号或双引号括起来逻辑型字段的值是True False Yes No或On Off日期的表示形式为MM DD YY或MM DD YYYY 26 例2向表Scores插入记录 990301 大学计算机基础 98 INSERTINTOScoresVALUES 990301 大学计算机基础 98 INSERT命令实例 27 直接执行SQL语句的方法 切换到 查询 页 创建一个空查询 切换到SQL视图 输入SQL命令 如右图所示 执行查询 查看结果 操作方法 演示 28 2 DELETE语句 例3删除表Students中所有学号为990301的记录DELETEFROMStudentsWHERE学号 990301 例4删除表Scores中成绩低于70分的记录DELETEFROMScoresWHERE成绩 70 DELETE语句用于数据删除其语法格式为 DELETEFROM表 WHERE条件表达式 注意 WHERE子句缺省 则删除表中所有的记录 表还在 29 3 UPDATE语句 例5将表Students中学生王涛的姓名改为王宝球UPDATEStudentsSET姓名 王宝球 WHERE姓名 王涛 例6将表Students中助学金低于200的学生加30元UPDATEStudentsSET助学金 助学金 30WHERE助学金 200 UPDATE语句用于数据修改其语法格式为 UPDATE表SET字段1 表达式1 字段n 表达式n WHERE条件 注意 WHERE子句缺省 则修改表中所有的记录 UPDATE语句一次只能对一个表进行修改 30 7 3数据库的查询 数据查询是数据库的核心操作不管采用何种工具创建查询 Access都会在后台构造等效的SELECT语句执行查询实质就是运行了相应的SELECT语句 31 8 3 1SELECT语句 语法形式为 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查询所有的专业 查询结果中不出现重复的记录SELECTDISTINCT专业FROMStudents 33 例9 查询Students表中所有学生人数 最低助学金 最高助学金和平均助学金 或 查询Students表中女生人数 最低助学金 最高助学金和平均助学金 34 如果没有GROUPBY子句 合计函数对整个表进行统计 产生一条记录 否则按分组统计 一组产生一条记录 SQL合计函数 35 SELECTCount AS人数 Min 助学金 AS最低助学金 Max 助学金 AS最高助学金 Avg 助学金 AS平均助学金FROMStudents 可改为Count 学号 用AS子句指定别名 本例产生一条记录 例10使用合计函数 查询学生人数 最低助学金 最高助学金和平均助学金 36 SELECTCount AS人数 Avg Year Date Year 出生年月 AS平均年龄FROMStudents 系统日期 得到年份 例11查询学生的人数和平均年龄 37 2 选择记录 例12显示所有非计算机专业学生的学号 姓名和年龄SELECT学号 姓名 Year Date Year 出生年月 AS年龄FROMStudentsWHERE专业 计算机 例13查询1981年 包括1981年 以前出生的女生姓名和出生年月 SELECT姓名 出生年月FROMStudentsWHERE出生年月 1 1 1982 AND性别 女 可用 MM DD YY 的形式表示日期 38 3 排序 例14查询所有党员学生的学号和姓名 并按助学金从小到大排序 SELECT学号 姓名FROMStudentsWHERE党员 TrueORDERBY助学金可用多个关键字排序 例如 ORDERBY专业ASC 助学金DESC专业是第一排序关键字 助学金是第二排序关键字 ORDERBY子句用于排序ASC 表示升序 默认 DESC 表示降序 39 4 分组查询 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 2 42 5 连接查询 WHERE条件 在两表中有相同的属性值 例18查询所有学生的学号 姓名 课程和成绩SELECTStudents 学号 Students 姓名 Scores 课程 Scores 成绩FROMStudents ScoresWHEREStudents 学号 Scores 学号 两个表 连接条件 43 表的连接 连接结果 44 用条件 Students 学号 Scores 学号 进行连接 然后进行选择SELECTStudents 学号 Students 姓名 Scores 成绩FROMStudents ScoresWHEREStudents 学号 Scores 学号ANDScores 课程 高等数学 例19查询选修了 高等数学 课程的学生的学号 姓名和成绩 45 练习 8 1 INSERTINTOTEACHERSVALUES 300008 杨梦 女 59 66 04 22 YES 1660 210 2 DELETEFROMTEACHERSWHERE年龄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年龄 46 6 嵌套查询 在SQL中 将一个SELECT语句查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询 47 SELECTStudents 学号 Students 姓名FROMStudentsWHERE专业in SELECTStudents 专业FROMStudentsWHEREStudents 姓名 邓倩梅 与查询结果同专业的学生 查询邓倩梅的专业 例8 22查询与 邓倩梅 在同一个专业的学生的学号和姓名 48 例8 23使用向导查询所用学生的基本情况 1 进入向导选定字段 2 选择明细方式 3 输入查询的名称 4 查询结果 8 3 2创建查询 49 例8 24查询平均成绩在75分以上的所有学生的学号 姓名和平均成绩 SELECTStudents 学号 Students 姓名 Avg Scores 成绩 AS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江危险品运输从业资格考试模拟题及答案
- 安装工程劳动合同书
- 品牌代理销售协议条款细节内容说明
- 学校课外辅导项目合作协议
- 纺织服装业产品质量证明书(6篇)
- 电子商务运营能力及成果证明(6篇)
- 金融行业客户关系管理系统升级方案
- 现代农业种植项目合作协议
- 体育赛事赞助合同书
- 物业设施维修维护合同
- 呼和浩特市消防救援支队招聘政府专职消防员笔试真题2022
- 辽宁省沈阳市沈河区文化路小学小学六年级小升初期末英语试卷(含答案)
- 施工方案防火门卷帘门
- 畜牧兽医考试题库
- (高清版)JTG D81-2017 公路交通安全设施设计规范
- 生活中的工业设计智慧树知到期末考试答案章节答案2024年南开大学
- 数学的天空智慧树知到期末考试答案章节答案2024年上海交通大学
- (正式版)JTT 1490-2024 港口安全设施分类与编码
- 饱和蒸汽密度表
- 安全管理职业健康体系适用法律法规要求清单(2023年7月版)
- 农业政策与法规复习题
评论
0/150
提交评论