大学计算机基础课件-6.PPT
第6章数据库应用基础,6.1数据库系统概述6.2Access数据库的建立与维护6.3Access数据库的查询6.4Access的窗体、报表、数据访问页,6.1数据库系统概述,6.1.1常用术语6.1.2数据库技术的发展6.1.3数据库系统的特点6.1.4数据描述,6.1.1常用术语,1.数据是描述事物的符号记录。2.数据库数据库(DB,DataBase)是长期保存在计算机外存上的、有结构的、可共享的数据集合。3.数据库管理系统数据库管理系统(DBMS,DataBaseManagementSystem)是指数据库系统中对数据库进行管理的软件系统。4.数据库系统数据库系统(DataBaseSystem,DBS)是由数据库、数据库管理系统、应用程序、数据库管理员、用户等构成的人机系统。,6.1.2数据库技术的发展,1.人工管理阶段2.文件系统阶段3.数据库系统阶段典型的新型数据库系统1.分布式数据库系统2.面向对象数据库3.多媒体数据库4.数据仓库5.工程数据库6.空间数据库7.基于知识的数据库,6.1.3数据库系统的特点,数据库系统的特点是1.采用复杂结构化的数据模型2.最低的冗余度3.有较高的数据独立性4.安全性5.完整性,6.1.4数据描述,1.信息的三个领域(1)现实世界(2)信息世界(3)数据世界2.实体之间的联系(1)1-1关系(2)1-m关系(3)n-m关系,3.数据模型三种重要的数据模型一是层次模型,它用树型结构来表示实体及实体间的联系,如早期的IMS系统;二是网状模型,它用网状结构来表示实体及实体间的联系,如DBTG系统;三是关系模型,它采用一组二维表表示实体及实体间的关系,如MicrosoftAccess。,关系模型的基本术语。1.关系一个关系对应一张二维表。2.关系模式关系模式是对关系的描述,一般形式是为关系名(属性1,属性2,,属性n)例如,关系Students和关系Scores的关系模式分别为Students(学号,姓名,性别,班级,入学年份,选课状态)Scores(学号,课程,成绩)3.关系数据库对应于一个关系模型的全部关系的集合称为关系数据库。4.记录表中的一行称为一条记录,记录也被称为元组。,5.属性表中的一列为一个属性,属性也被称为字段。每一个属性都有一个名称,被称为属性名。6.关键字表中的某个属性组可以唯一确定一条记录。例如,表Students的学号可以惟一确定一个学生,也就是说,表Students中不可能出现学号相同的记录,因此学号是一个关键字。7.主键一个表中可能有多个关键字,但在实际的应用中只能选择一个,被选用的关键字称为主键。8.值域属性的取值范围。例如,性别的域是{男,女},成绩的域为0–100,专业的域为学校所有专业的集合。,关系模型,6.2Access数据库的建立与维护,6.2.1Access数据库的组成6.2.2Access数据库的建立6.2.3Access数据库的管理与维护6.2.4Access数据库的表达式6.2.5SQL的数据更新,,6.2.1Access数据库的组成,在Access2003中,一个数据库包含的对象有表、查询、窗体、报表、宏、模块和Web页,1.表表是数据库中最基本的对象,没有表也就没有其他对象。2.查询查询就是从一个或多个表(或查询)中选择一部分数据,将它们集中起来,形成一个全局性的集合,供用户查看。3.窗体窗体是用户与数据库交互的界面,是数据库维护的一种最灵活的方式。4.报表Access中的报表与现实生活的报表是一样的,是一种按指定的样式格式化的数据形式,可以浏览和打印。5.宏宏是若干个操作的组合,可用来简化一些经常性的操作。6.模块在模块中,用户可以用VBA语言编写函数过程或子程序。7.Web页用户通过创建Web页,把数据库中的数据向Internet或Intranet上发布。,6.2.2Access数据库的建立,要建立基本表,首先必须确定表的结构,即确定表中各字段的名称、类型、属性等。1.字段数据类型文本、备注、数字、日期/时间、货币、自动编号、是/否、OLE对象、超链接、查阅向导。,2.字段属性字段属性是字段的用来控制数据的显示和用户输入的属性。小数位数指定小数的位数(只用于数字和货币型数据)。标题用于在窗体和报表中取代字段的名称。默认值添加新记录时,自动加入到字段中的值。有效性规则字段的有效性规则用于检查字段中的输入值是否符合要求。有效性文本当数据不符合有效性规则时所显示的信息。索引可以用来确定某字段是否作为索引,索引可以加快对索引字段的查询、排序分组等操作。,3.表的建立下面用一个实例创建表Students说明建立表的方法和过程。①首先确定表的结构,见表6-4。②建立一个“空数据库”,输入文件名学生.mdb,③选择“使用设计器创建表”向导,输入各个字段的信息。④定义“学号”为主键。主键不是必需的,但是应尽量定义主键。一个表只有定义了主键,才能建立与数据库中其他表的关系。⑤保存表,输入表的名称Students。,Students表结构,6.2.3Access数据库的管理与维护,1.向表中输入数据选定基本表,然后进入数据表视图,,2.表结构的修改选定基本表,进入设计视图,修改表结构。可以修改字段名称、字段类型和字段属性,可以对字段进行插入、删除、移动等操作,还可重新设置主键。3.数据的导出和导入使用“文件”∣“导出”命令可以将表中数据以另一种文件格式(如文本文件、RTF格式等)保存在磁盘上。导入操作是导出操作的逆操作,使用的命令是“文件”∣“获取外部数据”∣“导入”。,6.2.4Access数据库的表达式,1.常用运算符Access2003的运算符分为4类算术运算符、字符串运算符、关系运算符和逻辑运算符。,2.常用内部函数Access2003提供大量的内部函数,供用户在设计时使用。,3.表达式和表达式生成器在Access2003中,表达式由变量(包括字段名称)、常量、运算符、函数和圆括号按一定的规则组成。表达式通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。,,6.2.5SQL的数据更新,结构化查询语言SQL(StructuredQueryLanguage)是操作关系数据库的工业标准语言。在SQL中,常用的语句有两类一是数据查询语句SELECT,只有一条;二是数据更新语句,有INSERT、UPDATE、DELETE。,1.INSERT语句在SQL中,INSERT语句用于数据插入。其语法格式为INSERTINTO表名(字段1,字段2,,字段n)VALUES(常量1,常量2,,常量n)INSERTINTO表名(字段1,字段2,,字段n)VALUES子查询例向表Students中插入记录(990301,杨国强,男,党员,化学,1980.12.28,220)。INSERTINTOStudents学号,姓名,性别,党员,专业,出生年月VALUES“990301“,“杨国强“,“男“,TRUE,“计算机科学与技术“,12/28/1980,2.DELETE语句在SQL语句中,DELETE语句用于数据删除。其语法格式为DELETEFROM表名[WHERE条件]DELETE语句从表中删除满足条件的记录。如果WHERE子句缺省,则删除表中所有的记录,但是表没有被删除,仅仅删除了表中的数据。例删除表Students中所有学号为990301的记录。DELETEFROMStudentsWHERE学号″990301″,3.UPDATE语句在SQL中,UPDATE语句用于数据修改。其语法格式为UPDATE表SET字段1表达式1,,字段n表达式n[WHERE条件]UPDATE语句修改指定表中满足条件的记录,把这些记录按表达式的值修改相应字段上的值。如果WHERE子句缺省,则修改表中所有的记录。例将表Students中学生王涛的姓名改为王宝球。UPDATEStudentsSET姓名″王宝球″WHERE姓名″王涛″,6.3Access数据库的查询,6.3.1SELECT语句6.3.2Access数据库的查询,6.3.1SELECT语句,SQL中用于数据查询只有一条SELECT语句。该语句用途广泛,应用灵活,功能丰富。常见的SELECT语句包含4部分,其语法形式为SELECT[ALL|DISTINCT]目标列FROM表(或查询)[WHERE条件表达式][GROUPBY列名1HAVING过滤表达式][ORDERBY列名2[ASC|DESC]],1.基本部分基本部分SELECT[ALL|DISTINCT]目标列FROM表(或查询)SELECT语句的一个简单用法是SELECT字段1,,字段nFROM表如SELECT姓名,学号FROMStudents表示从表Students中选择了姓名和学号两列,SELECT*FROMStudents表示从表Students中选择了所有的字段。,例查询所有学生的基本情况。SELECT学号,姓名,性别,党员,专业,出生年月,照片FROMstudents;因为“*”可以表示所有的字段,所以上述语句可以改为SELECT*FROMStudents,,例查询学生人数、最早出生、最晚出生和系统日期。SELECTCOUNT*AS总人数,MIN出生年月AS最早出生,MAX出生年月AS最晚出生,DATEAS系统日期FROMstudents;,,2.WHERE子句WHERE子句有双重作用一是选择记录,输出满足条件的记录;二是建立多个表或查询之间的连接,这一点将在后面详细介绍。例查询计算机专业学生的学号、姓名和专业。SELECT学号,姓名,专业FROMStudentsWHERE专业″计算机科学与技术″例显示所有非计算机专业学生的学号、姓名和年龄。SELECT学号,姓名,Year(Date())Year(出生年月))AS年龄FROMStudentsWHERE专业″计算机科学与技术″,3.ORDERBY子句ORDERBY子句用于指定查询结果的排列顺序。ASC表示升序,DESC表示降序。ORDERBY可以指定多个列作为关键字。例如,ORDERBY专业ASC,出生年月DESC表示查询结果首先排专业从小到大排序,如果专业相同,则再排助学金,从大到小排。专业是第一排序关键字,助学金是第二排序关键字。例查询所有党员学生的学号和姓名,并按出生年月从小到大排序。SELECT学号,姓名ROMStudentsWHERETrueORDERBY出生年月,4.GROUPBY子句和HAVING子句GROUPBY子句用来对查询结果进行分组,把某一列的值相同的记录分在一组,一组产生一条记录。例如,GROUPBY专业,它将专业相同的记录分在一组。表Students共有2两个专业,按专业分组将被分为2两个组,查询结果中也就只有2两条记录。例查询选修了2门(包括2门)以上课程的学生的学号和课程数。SELECT学号,Count(*)AS课程数FROMScoresGROUPBY学号HAVINGCount(*)2这里使用了Count(*)函数,统计每一组的人数。,5.连接查询在查询关系数据库时,有时需要的数据分布在几个基本表或视图中,此时需要按照某个条件将这些表或视图连接起来,形成一个临时的查询表,然后再对该临时表进行简单的查询。例查询所有学生的学号、姓名、课程名称和成绩。SELECTStudents.学号,Students.姓名,Scores.课程名称,Scores.成绩FROMStudents,ScoresWHEREStudents.学号Scores.学号,6.嵌套查询在SQL中,一个SELECTFROMWHERE称为一个查询块,将一个查询块嵌套在另一个SELECT语句的WHERE子句或HAVING子句中称为嵌套查询,也就是说,SELECT语句中还有SELECT语句叫做嵌套查询。例查询没有读过计算机文化基础课程的学生的学号、姓名和专业。SELECTStudents.学号,Students.姓名,Students.专业FROMStudentsWHEREStudents.学号NOTIN(SELECTScores.学号FROMScoresWHEREScores.课程″计算机文化基础″),6.3.2Access数据库的查询,在Access2003中,创建查询的方法有两个一个是使用向导创建查询,二是在设计视图中创建查询,创建的查询可以作为窗体、报表和Web页的数据源。,1.进入向导选定字段,2.选择明细方式,3.输入查询的名称,4.查询结果,例查询学生最低成绩、最高成绩和平均成绩。①在“数据库”窗体的查询中,选择“在设计视图中创建查询”。②从“显示表”对话框中选择表Scores,添加到设计视图。③输入或选定想要查询的字段。④选择工具栏上的“总计”按钮(∑)或“视图”│“总计”命令,设计视图上将出现名称为“总计”一行,分别在四个字段下选择最小值、最大值和平均值和分组。⑤最后输入查询的名称。,,6.4Access的窗体、报表、数据访问页,6.4.1创建窗体6.4.2创建报表6.4.3创建数据访问页,6.4.1创建窗体,在Access中,创建窗体的方法有两个一是一个是使用向导创建窗体,二是在设计视图中创建窗体。,6.4.2创建报表,在Access中,与创建窗体一样,创建报表也有两个方法一是使用向导创建报表;二是在设计视图中创建报表。,,6.4.3创建数据访问页,网页是因特网上的基本文档,用HTML超文本标记语言,HyperTextMarkupLanguage书写。在Access中,与创建报表一样,创建数据访问页也有两个方法一是使用向导创建数据访问页;二是在设计视图中创建数据访问页。,,