您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第9章 数据库基础(2012)
第9章数据库技术基础教学目的:①数据库系统概述②Access2003数据库的建立和维护③Access2003数据库的查询④理解Access2003的窗体和报表重点难点:①Access2003数据库的建立和维护②Access2003数据库的查询教学方法:多媒体教学教学课时:8课时关系S(学生表)属性名(字段名)属性值(字段值)记录关键字惟一确定一条记录关系(二维表)河北唐山是16男李明010301湖南益阳否18男王平010302福建福州是17女林珏玲010303籍贯党员年龄性别姓名学号★关系模型1、关系模型的有关概念关系:一个关系就是一张二维表。属性(字段):表中的一列称为一个属性。每个属性都有一个名字,被称为属性名。值域:每个属性有一个取值范围。属性是个变量,属性值是变量所取的值,而域是变量的变化范围。记录(元组):表中的一行称为一条记录。关系模式:是对关系的一种描述。形式为:关系名(属性1,属性2……属性n)关键字:表中的某一属性(组)可以唯一确定一条记录。主键:一个表中可能有多个关键字,但在实际的应用中只能选择一个,被选用的关键字称为主键2、关系模型的约束(1)每一列是不能再分的最小数据项,也就是说,不允许表中还有表。(2)每一列具有不同的名字。(3)各行必须不同,即不允许重复记录。(4)行、列次序无关。(5)每一列中的分量是类型相同的数据。9.2Access2003数据库的应用9.2.1Access2003数据库的组成9.2.2Access2003数据库的创建9.2.3Access2003数据库的管理与维护9.2.4Access2003的表达式9.2.1Access数据库的组成数据表(简称表)最基本的对象,表及其表之间的关系构成数据库的核心查询查询是数据库的基本操作之一,利用查询功能可以对数据进行查看、修改和分析窗体(视图)用户与数据库交互的界面,窗体的数据源是表或查询报表以打印的格式显示数据宏若干个操作的组合模块用户用VBA语言编写函数过程或子程序Web页向Internet上发布数据9.2.2Access数据库的建立创建数据库的方法:(1)创建一个空数据库(常用的方法)(2)使用“数据库向导”创建数据库1、创建数据库9.2.3access数据库的管理和维护2、表的建立1、设计数据库中的表要建立表,首先必须确定表的结构,即确定表中各字段的名称、类型、属性等。(1)命名字段名字段名由1~64个字符组成。不能以空格开头,用于命名字段名的字符集与文件名字符集相同。(2)确定字段的数据类型在给字段命名后,必须确定字段的数据类型。在Access2000中,数据类型共有10种,常用的有8种。①文本型(Text):注:Ⅰ、不需要计算的数值数据都应设置为文本型,如学号Ⅱ、一个汉字是一个字符,字符数不等于字节数。②备注型(Memo):③数字型(Number):又分为字节、整型、长整型、单精度、双精度、小数。④日期/时间(Date/Time):⑤货币型(Currency):⑥自动编号型(AutoNumber):⑦是/否型(Yes/No):⑧OLE对象(OLEObject):(3)字段属性不同的数据类型有着不同的属性,常见的属性有8种。①字段大小:②格式:③小数位数:④标题:⑤默认值:⑥有效性规则:⑦有效性文本:⑧索引:(4)字段说明使用“字段说明”可以帮助用户或其它的程序设计人员了解该字段的用途。选定基本表,进入数据表视图,输入编辑数据添加新记录3、向表中输入数据4、表结构的修改选定基本表,进入设计视图,修改表结构打开的表或正在使用的表是不能修改的,要修改必须先将此表关闭修改字段名称不会影响到字段中所存放的数据,但是会影响到一些相关的部分。如果查询、报表、窗体等对象使用了这个更换名称的字段,那么在这些对象中也要作相应的修改。关系表中互相关联的字段是无法修改的,如果需要修改,必须先将关联去掉为了确保安全,修改之前最好做好数据备分。表达式主要应用在以下三个方面:SQL语句:必须输入完整的表达式查询的设计视图:使用时,表达式最左边的字段名可以缺省字段的有效性规则:为字段输入一个表达式指定该字段可接受的数据范围(有效性规则)9.2.4Access2003的表达式1、常用运算符类型运算符算术运算符+-*/^(乘方)\(整除)MOD(取余数)关系运算符==BetweenLike逻辑运算符NotAndOr字符运算符&说明:(1)在表达式中,字符型数据用“””或“‘”括起来,日期型数据用“#”括起来。如“abcd”、”x”为字符型,#01/11/1960#为日期型数据(2)\是整除运算符(3)mod是求余运算符规则:①符号为除数的符号相同②如果两数同号,则结果是|被除数|÷|除数|的余数③如果两数异号,则结果是|除数|-|被除数|÷|除数|的余数(4)between运算符的使用格式:表达式1between表达式2and表达式3(如果表达式1的值介于表达式2和表达式3之间,结果为true,否则为false。)(5)like通常与?、*、#、[字符列表]、[!字符列表]等通配符连用。?表示任何单一字符、*表示0个或多个字符、#表示任何一个数字(0-9)、[字符列表]表示字符列表中的任何单一字符、[!字符列表]表示不在字符列表中的任何单一字符。(6)&用于连接两个字符串。如:“abc”&“7788”的结果为“abc7788”2、常用内部函数Access2000中提供了大量的内部函数,供用户在设计中使用:如:date():返回系统日期year():返回年份3、表达式由变量、常量、运算符、函数和圆括号按一定的规则组成★9.2.5SQL命令结构化查询语言SQL(selectquerylanguage)是操作关系数据库的工业标准语言。在SQL中,常用的语句有两类:数据查询语句SELECT数据更新命令INSERT、UPDATE、DELETE1、数据插入-INSERT语句例7.2向表S中插入一条记录INSERTINTOstudent(学号,姓名,性别,是否党员,出生日期,奖学金,专业)VALUES(990301,杨国强,男,no,#2/3/1989#,200,英语);注意:字符型常量用单引号或双引号括起来逻辑型字段的值是True/False、Yes/No或On/Off日期的表示形式为MM/DD/YY或MM/DD/YYYYINSERT语句用于数据插入,其语法格式为:INSERTINTO表名[(字段1,…,字段n)]VALUES(常量1,…,常量n)包含所有的属性时可以省略具体的操作步骤如下:①将“数据库”窗口切换到“查询”页。②选择“在设计视图中创建查询”,在弹出的对话框中不选择任何表,直接关闭对话框,目的是建立一个空查询。③右击切换到SQL视图。④输入SQL命令。⑤执行查询。⑥打开表,查看结果。注:①每个关键字后都要有一个空格。②字段名之间要用逗号分开,但最后一个字段名和关键字之间不需要用逗号。③所有的符号都必须在英文状态下输入。2、数据删除-DELETE语句例7.3删除表S中所有学号为990301的记录DELETEFROMstudentWHERE学号=“990301”;DELETE语句用于数据删除,其语法格式为:DELETEFROM表[WHERE条件]注意:WHERE子句缺省,则删除表中所有的记录(表结构还在)3、数据更新-UPDATE语句例7.4将表S中学生王涛的姓名改为王宝球UPDATEStudentSET姓名=王宝球WHERE姓名=“王平;UPDATE语句用于数据修改,其语法格式为:UPDATE表SET字段1=表达式1,…,字段n=表达式n[WHERE条件]注意:WHERE子句缺省,则修改表中所有的记录注:UPDATE语句一次只能对一个表进行修改,这就有可能破坏数据库中数据的一致性。解决的办法就是执行两个UPDATE语句,分别对两个表进行修改。课堂练习:Sc(学号,课程号,成绩)S(学号,姓名,性别,年龄,籍贯)1、删除表sc中成绩低于80分的记录2、将表S中小于17岁的学生的年龄加1岁答案:1、DELETEFROMscWHERE成绩80;2、UPDATESSET年龄=年龄+1WHERE年龄17;9.3数据库的查询★★查询(Query)是按照一定的条件或要求对数据库中的数据进行检索的操作。查询的种类选择查询操作查询交叉表查询参数查询SQL查询SELECT语句中用于数据查询。常见的SELECT语句包含4部分,其语法形式为:SELECT[ALL|DISTINCT]目标列FROM表(或查询)[WHERE条件表达式][GROUPBY列名1HAVING过滤表达式][ORDERBY列名2[ASC|DESC]]不可缺少可缺省功能根据WHERE子句中的表达式,从指定的表或视图中找出满足条件的记录,按目标列显示数据。GROUPBY子句按列名1的值进行分组,每一组产生一条记录,HAVING短语对组进行输出过滤。ORDERBY子句按列名2对查询结果的值进行排序,也可按多值进行排序。不能出现重复的记录例1查询所有学生的基本情况SELECT学号,姓名,性别,出生日期,奖学金,专业,是否党员FROMStudent可以用*号代替1、基本部分SELECT[ALL|DISTINCT]目标列FROM表(或查询)例2查询所有的专业。SELECT专业FROMStudentDISTINCT去掉重复的属性值SQL合计函数合计函数描述AVG(列名)计算某一列的平均值COUNT(*)统计记录的个数COUNT(列名)统计某一列值的个数SUM(列名)计算某一列的总和MAX(列名)计算某一列的最大值MIN(列名)计算某一列的最小值例3查询学生人数、最低、最高奖学金和平均奖学金SELECTCount(*)AS人数,Min(奖学金)AS最低奖学金,Max(奖学金)AS最高奖学金,Avg(奖学金)AS平均奖学金FROMStudent可改为Count(学号)用别名命名输出列如果没有groupby子句,合计函数对整个表进行统计,产生一条记录,否则按分组统计,一组产生一条记录例4查询学生的人数和平均年龄SELECTCount(*)AS人数,Avg(Year(Date())-Year(出生日期))AS平均年龄FROMStudent系统日期Year函数得到年份本例产生一条记录[Where条件表达式]例5查询计算机专业学生的学号、姓名和专业SELECT学号,姓名,专业FROMStudentWHERE专业=计算机查询条件两个作用:一是选择记录,输出满足条件的记录二是建立多表或查询之间的链接2、WHERE子句例7查询1989年以前出生的女生姓名和出生日期。SELECT姓名,出生日期FROMStudentWHERE出生日期#1/1/1989#AND性别=女可用#MM/DD/YYYY#的形式表示日期例6显示所有非计算机专业学生的学号、姓名和年龄SELECT学号,姓名,Year(Date())-Year(出生日期)AS年龄FROMStudentWHERE专业计算机多个条件表示并且(或)关系用and(or)连接3、ORDERBY子句例8查询所有党员学生的学号和姓名,并按奖学金升序排列SELECT学号,姓名FROMStudentWHERE是否党员=TrueORDERBY奖学金逻辑值例9查询所有计算机专业的学生学号和姓名,并按性别的升序,奖学金降序排列SELECT学号,姓名FROMStudentWHERE专业=“计算机”ORDERBY性别,奖学金desc首先按从小到大排性别,若性别相同,则从大到小排助学金。性别是排序第一关键字,助学金是排序第二关键字。[ORDERBY列名2[ASC|DESC]]例10查询各专业的人数SELECT专业,Count(*)FROMstudentGROUPBY专业按学号分组?4、GROUPBY子句和having子句[GROUPBY列名1HAVING过滤表达式]5、SELECT语句-连接查询例13查询所有学生的学号、姓名、课程号和成绩SELECTst
本文标题:第9章 数据库基础(2012)
链接地址:https://www.777doc.com/doc-3375831 .html