复习:
1、在创建表间关系时,必须先关闭______打开的表,再使用______菜单中的“关系”命令,打开“关系”窗口进行操作。
2、表间关系有哪几种?关系的联接类型有哪几种及各自的定义?
3什么是参照完整性?实施参照完整性的条件是什么?实施参照完整性后必须遵守的规则有哪些?
4、常用的域函数有哪几个?
新授课:
第五章 查询设计
任务一 查询基础知识
查询是按照一定的条件或要求对数据库中的数据进行检索。它是数据库的核心操作。其作用如下:
以一个或多个表或查询为数据源,根据用户的要求生成动态的数据集。
可以对数据进行统计、排序、计算和汇总。
可以设置查询参数,形成交互式的查询方式。
利用交叉表查询,进行分组汇总。
利用动作查询对数据表进行追加、更新、删除等操作。
查询作为其他查询、窗体和报表的数据源。
1、查询的分类
在access数据库中,查询共分为五种:选择查询、参数查询、交叉表查询、动作查询和SQL查询。其中动作查询又分为生成表查询、删除查询、追加查询和更新查询。
2、查询的视图
在Access 2003中,查询有五种视图:设计视图、数据表视图、SQL视图、数据透视表和数
据透视图。常用的视图为设计视图、数据表视图、SQL视图(这里只要求掌握常用的三种视图)。
例:查询学号、姓名英语课程的成绩。(演示讲解)
说明:
根据查询结果显示字段,确定涉及的表,同时强调必须创建表间关系。
选择投影字段,“表名称.*”表示显示该表的所有字段。
指定排序字段
根据查询结果确定字段是否显示
设置查询条件:与、或的使用方法。
3、表达式
表达式是由常量、变量、函数和各种运算符组成。
(1)常量
sql包含哪几个部分数字型常量:123  123.45
文本型常量:直接输入文本或用单引号、双引号括起来。如:英语、’英语’、”英语”
日期型常量:直接输入或用“#”括起来。如:76-1-1或#76-1-1#
是/否型常量:yes、no、true、false
(2)变量
    变量是命名的存储空间,用于存储可以改变的数据。变量名的命名规则是:以字母开头的不超过255个字符的字符串,该字符串可用字母、汉字、数字和下划线,但不能用标点符号、空格和类型声明字符。变量分整型、单精度、货币、字符串、日期等不同类型。
    Access数据库中,字段名、属性、控件等都可以作为变量。
    如果用字段名作为变量,其表示方法是用英文方括号[]将字段名括起来。例如:[学号]、[姓名]、[出生年月日]等。
    如果同时用不同表中的同名字段作为变量,则必须将表名写在每一个字段前,也用[]括起来,并用英文感叹号!将两对[]隔开。例如:[学生情况]![学号]、[选课及成绩]![学号]。
(3)函数
DATE()、YEAR()、NOW()、TIME()、RIGHT()、LEFT()等
(4)运算符
    Access数据库的运算符(又称操作符)有以下5种。
A、算术运算符。+:加、-:减、\:整除(取整)、Mod:取余、*:乘、/:除、^:乘方和开方。
B、连接运算符。&和+:字符串连接。&的作用是将&两边的表达式连接起来生成一个新字符串。例如:”广东”&”顺德”的结果是:”广东顺德”。如果&连接数字,则&会将该数字转换成字符串后再连接,并且在原数字前后都添一空格。而+只能连接两个字符串,这时的作用和&相同。
C、比较运算符(亦称关系运算符)。=:等于、>:大于、<:小于、>=:大于等于(不小于)、<=:小于等于(不大于)、<>:不等于。
    比较运算的结果是逻辑值:True或False。
D、逻辑运算符
逻辑运算符:NOT、AND、OR
算符优先级:同级算符中,NOT最高、AND次高、OR最低。
如:[学号] NOT null,即检索“学号”字段中不包含空值的记录。
E、特殊运算符
逻辑运算符:BETWEEN …AND(在某范围之间运算符)、IN(属于或包含在运算符)、IS(判断是否是空值)、LIKE(用于文本类型的比较运算,可以使用通配符)
连接运算符:’04’ & ‘国际商务’ 结果为:‘04国际商务’
算符优先级:同级算符中,优先级别相同,自左向右顺序执行
例如:
成绩 BETWEEN 85 AND 100 在85至100之间的数
出生日期  BETWEEN #1/1/79# AND #1984-12-31#(注:日期常量要用“#”括起来):在1979年1月1日至1984年12月31日之间的数据。
籍贯 IN(‘北京’,“上海”,“广州”)
家庭住址  IS  NULL:判断当前记录、当前字段的值是否为空
LIKE的使用
编码  LIKE  “A[A~C]”: 表示以字母A开始、第二个字符为A、B 或C、长度为两个字符的字符串
编码  LIKE  “A*”:表示以字母A开始的字符串
编码  LIKE  “*A*”:表示包括A的字符串。
编码  LIKE  “A?”:表示以字母A开始、第二个字符任意、长度为两个字符的字符串
练习:下列叙述中的其中的相关名词都是表的字段名,写出各表达式。
(1)姓名中有含有霞字。
(2)学号(5个数字组成的文本型)第2、3两位是“01”。
(3)工资在5000元到10000元之间(包括5000和10000)。
(4)工资少于5000。
(5)身高大于170(cm)并且性别为“男”。
(6)到今天年满18岁(出生日期是日期型)
(7)女生身高160以上
练习题答案:
(1)[姓名] Like “*霞*”。
(2)[班级代号] Like “#01##”。
(3)解:[工资]>=5000 And [工资]<=10000                         
[工资] Between 5000 And 10000。
(4)[工资]<5000
(5)[身高]>170 And [性别]=”男”。
(6)year(date())-year([出生日期]) >=18
(7)[性别]="女" And [身高]>=160
任务二  设计查询
一、选择查询
例5-1:查询女学生的信息,保存为“例5-1(学号)”。
例5-2:查询学生表中,姓“李”的党员的学号、姓名、班级名称,保存为“例5-2(学号)”。 
例5-3:查询1981年出生的学生的学号、姓名、班级及年龄。保存为“例5-4(学号)”。
提示:
年龄:(date())-Year(csrq)
CSRQ between  #1981-1-1# and #1981-12-31#
例5-4:查询学生的学号、姓名、平均分、总分、考试科次,保存为“例5-4(学号)”。
二、参数查询 
例5-5:按姓名查询学生的学号、姓名、班级名称、课程名称及成绩,保存为“例5-5(学号)”。
例5-6:按课程名称模糊查询学生的学号、姓名、班级名称、课程名称及成绩。保存为“例5-6
(学号)”。
结论:
参数查询的实现方法:根据查询条件所在字段的条件栏(准则)内,用方括号将提示信息括起来,这样就构成了参数查询。
三、交叉表查询
例5-7:使用交叉表查询学生的学号、姓名、课程名称、成绩、总分、平均分。保存为“例5-7(学号)”。
说明:
(1)交叉表查询的三个基本组成部分:行标题、列标题、值;其中行标题、列标题的总计栏必须设置为“分组(GROUP BY)”;“值”的总计栏使用sum,avg,max,min,first,last之一均可;列标题和值只能由一个字段组成;不能对交叉表查询的聚合函数列进行排序。
(2)在交叉表查询中常用的总计函数
SUM():求和函数
AVG():求平均值函数
MAX():求最大值函数
MIN():求最小值函数
COUNT():统计记录个数。
练习:(记录学生成绩,每题15分,学习态度占10分)
1、使用交叉表查询06国际商务班学生的学号、姓名、课程名称及成绩,保存查询为“练习+班级名称+学号+题号”。如:练习08电子商务0101。
2、查询年龄在19岁以上的学生基本情况,保存查询为“练习+班级名称+学号+题号”。。
3、查询学生的各科成绩,显示学号、姓名、课程名称及成绩,保存查询为“练习+班级名称+学号+题号”。
4、按姓名查询学生的各科成绩,显示学号、姓名、班级、课程名称及成绩,保存查询为“练习+班级名称+学号+题号”。
5、查询班级和课程名称查询学生的学号、姓名、班级、课程名称及成绩,保存查询为“练习+班级名称+学号+题号”。
6、查询各课程的课程号、课程名称、平均分、最高分,并按平均分降序排列,保存查询为“练习+班级名称+学号+题号”。
小结:
1、查询的种类
2、查询的视图
3、查询表达式的使用:常量、运算符号、函数
4、创建选择查询、参数查询和交叉表查询
作业:
1、查询分为哪几种?动作查询分为哪几种?
2、查询有哪几种视图?
3、在学生成管理数据库中,根据下述各题的语义写出条件表达式。
(1)政治面目为党员或团员。
(2)男生家庭住址为北京地区的学生。
(3)1981年出生的学生
(4)姓名中不含“红”字的学生
(5)在学生表中,没有添写姓名的学生。
4、简述参数查询是怎样实现的。
5、交叉表查询是由哪几部分组成的?其中哪些部分只能由一个字段组成?哪个部分可以由多个字段组成?哪些部分的总计行必须选择分组(GROUP BY)。
6、常用的合计函数有哪些?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。