第5章 查 询
5.1 查询概述
查询是一个独立的、功能强大的、具有计算功能和条件检索功能的数据库对象。
查询是用户通过设置某些查询条件,从表或其他查询中选取全部或者部分数据,以表的形式显示数据供用户浏览。查询是操作的集合,不是记录的集合。查询的记录集实际上并不存在,每次使用查询时,都是从创建查询时所提供的数据源表或者查询中创建记录集。因此,查询是以表或查询为数据源的再生表,查询的结果总是与数据源中的数据保持同步。
查询主要有以下几方面的功能:
(1)选择字段和记录,创建新的记录集。
(2)更新、删除、追加表中的数据,也可以生成新表。
(3)统计和计算。
(4)为其他数据库对象提供数据源。
根据对数据源的操作方式以及查询结果,Access提供的查询可以分为5种类型,分别是选择查询、交叉表查询、参数查询、操作查询和SQL查询。
查询共有5种视图,分别是设计视图、数据表视图、SQL视图、数据透视表视图和数据透视图。
1.设计视图
设计视图就是查询设计器,通过该视图可以创建除SQL之外的各种类型查询。
2.数据表视图
数据表视图是查询的数据浏览器,用于查看查询运行结果。
3.SQL视图
SQL视图是查看和编辑SQL语句的窗口,通过该窗口可以查看用查询设计器创建的查询所产生的SQL语句,也可以对SQL语句进行编辑和修改。
4.数据透视表视图和数据透视图
在数据透视表视图和数据透视图中,可以根据需要生成数据透视表和数据透视图,从而对数据进行分析,得到直观的分析结果。
5.2 选择查询
选择查询是最常用的查询类型,它能够根据用户所指定的查询条件,从一个或多个数据表中获取数据并显示结果,还可以利用查询条件对记录进行分组,并进行总计、计数、平均值等运算。
创建选择查询,可以使用查询向导,也可以使用查询设计器。
5.2.1 使用向导创建查询
【例5-1】在教学管理数据库中,使用简单查询向导查询教师的基本信息。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡中的“查询”组,单击“查询向导”按钮,打开“新建查询”窗口,选择“简单查询向导”选项,如图5-1所示。
图5-1 新建查询向导
(2)单击“确定”按钮,打开“简单查询向导”窗口。在“表/查询”下拉列表框中选择“教师”表,并把前5个字段添加到“选定字段”列表框中,如图5-2所示。
图5-2 选择字段
(3)单击“确定”按钮,打开“请为查询指定标题”对话框,如图5-3所示。
图5-3 指定查询标题
(4)输入查询名称“教师基本信息查询向导”,单击“完成”按钮,显示查询结果,如图5-4所示。
图5-4 查询结果
说明:如果选择的字段中有数字类型的,还可以对数字类型的字段进行汇总计算。
【例5-2】在教学管理数据库中,使用“查找重复项查询向导”查询选修两门或以上课程的学生成绩。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡中的“查询”组,单击“查询向导”按钮,打开“新建查询”窗口,选择“查找重复项查询向导”选项,如图5-5所示。
图5-5 查找重复项查询向导
(2)单击“确定”按钮,打开“查找重复项查询向导”窗口,选择“选修”表,如图5-6所示。
图5-6 选择数据源
(3)单击“下一步”按钮,打开“请确定可能包含重复信息的字段”对话框,选择“学号”字段,如图5-7所示。
图5-7 选择重复值字段
(4)单击“下一步”按钮,打开“请确定查询是否显示除带有重复值的字段之外的其他字段”对话框,选择“课程编号”和“成绩”字段,如图5-8所示。
图5-8 选择其他字段
(5)单击“下一步”按钮,输入查询名称“选修多门课程的学生成绩重复项查询向导”,单击“完成”按钮,显示查询结果,如图5-9所示。
图5-9 查询结果
【例5-3】在教学管理数据库中,使用“查找不匹配项查询向导”查询无学生选修的课程。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡中的“查询”组,单击“查询向导”按钮,打开“新建查询”窗口,选择“查找不匹配项查询向导”选项,如图5-10所示。
(2)单击“确定”按钮,打开“查找不匹配项查询向导”窗口,选择“课程”表,如图5-11所示。
(3)单击“下一步”按钮,打开“查找不匹配项查询向导”窗口,选择“选修”表,如图5-12所示。
图5-10 查找不匹配项查询向导
图5-11 选择不匹配项的数据源
图5-12 选择相关数据源
(4)单击“下一步”按钮,打开“查找不匹配项查询向导”窗口,选择匹配字段,如图5-13所示。
图5-13 选择匹配字段
(5)单击“下一步”按钮,打开“查找不匹配项查询向导”窗口。选择要显示的字段,如图5-14所示。
图5-14 选择需显示字段
(6)单击“下一步”按钮,输入查询名称“无学生选修课程(不匹配项查询向导)”,单击“完成”按钮,显示查询结果,如图5-15所示。
图5-15 不匹配项查询结果
5.2.2 使用设计视图创建选择查询
使用查询设计视图创建查询首先要打开查询设计视图窗口,然后根据需要进行查询定义。查询设计器窗口由两部分组成,上半部分是数据源窗口,用于显示查询所涉及的数据源,可以是数据表或查询;下半部分是查询定义窗口,也称为QBE网格,主要包括以下内容:
(1)字段。查询结果中所显示的字段。
(2)表。查询的数据源,即查询结果中字段的来源。
(3)排序。查询结果中相应字段的排序方式。
(4)显示。当相应字段的复选框被选中时,则在结构中显示,否则不显示。
(5)条件。即查询条件,同一行中的多个准则之间是逻辑“与”的关系。
(6)或。查询条件,表示多个条件之间的“或”的关系。
【例5-4】查询教师的编号、姓名、所授课程、学分、学时。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡中的“查询”组,单击“查询设计”按钮,打开查询设计器窗口,在“显示表”对话框中选择“教师”表和“课程”表双击,将其添加到查询设计视图的数据源窗口中,如图5-16所示。
图5-16 选择教师和课程表
(2)通过字段下拉列表按钮选择字段“教师编号”、“姓名”、“课程名称”、“学分”和“学时”,这些字段将显示在查询定义窗口中,如图5-17所示。保存查询“教师授课信息查询”,完成查询的创建。单击“运行”按钮,将会显示查询结果。
图5-17 选择查询字段
如果查询的数据源是两个或以上的表或查询,在设计查询需要事先创建数据源之间的关联关系。
在查询设计视图中两个表的连接线上右击,选择“联接属性”对话框,如图5-18所示。可以看出查询连接的类型共分为3种:内部连接、左连接和右连接。
图5-18 联接类型
1. 内部连接
内部连接是指将两个表中连接字段相等的记录提取出来进行合并,从中选取所需要的字段形成一条记录,显示在查询结果中。内部连接是系统默认的连接类型。
2. 左连接
左连接是指取左表中的所有记录和右表中连接字段相等的记录作为查询的结果。
3. 右连接
右连接是指取右表中的所有记录和左表中连接字段相等的记录作为查询的结果。
如果查询中使用的表或查询之间没有建立连接关系,那么查询将以笛卡尔积的形式产生查询结果。也就是说,一个表的每一条记录和另一个表的所有记录连接构成新的记录,这样就会在查询结果中产生大量没有意义的数据。
5.2.3 设置查询条件
在实际应用中,经常查询满足某个条件的记录,这需要在查询时进行查询条件的设置。例如,查询所有“男同学”的记录,查询职称为“教授”的教师的信息等。
通过在查询设计视图中设置条件可以实现条件查询。
查询中的条件通常使用关系运算符、逻辑运算符和一些特殊运算符来表示。
1.关系运算
关系运算符由>、>=、<、<=、=和< >等符号构成(见表5-1),主要用于数据之间的比较,其运算结果为逻辑值,即“真”和“假”。
表5-1 关系运算符
2.逻辑运算
逻辑运算符由Not、And和Or构成,主要用于多个条件的判定,其运算结果是逻辑值,如表5-2所示。
表5-2 逻辑运算符
3.其他运算
Access提供了一些特殊运算符用于对记录进行过滤,常用的特殊运算符如表5-3所示。
表5-3 特殊运算符
在查询设计视图中,设置查询条件应使用QBE网格中的条件选项来设置。首先选择需设置条件的字段,然后在“条件”文本框中输入条件。条件的输入格式与表达式的格式略有不同,通常省略字段名。
如果有多个条件,且涉及不同的字段,则分别设置相应字段的条件。如果两个条件之间And运算符连接,则输入的信息放在同一行中;如果两个条件之间Or运算符连接,则输入的信息放在不同行中。
【例5-5】查询1990年之后出生、籍贯为山东的学生的学号、姓名、性别、出生日期和籍贯。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡中的“查询”组,单击“查询设计”按钮,打开查询设计器窗口,在“显示表”对话框中选择“学生”表双击,将其添加到查询设计视图的数据源窗口中,如图5-19所示。
图5-19 查询条件设置
(2)将字段“学号”、“姓名”、“性别”、“出生日期”和“籍贯”添加到查询定义窗口中,对应“出生日期”字段在“条件”行输入“>=#1990-1-1#”,对应“籍贯”字段在“条件”行输入“山东”,保存查询为“1990年之后出生的山东学生信息”,运行结果如图5-20所示。
图5-20 查询结果
5.2.4 在查询中进行计算和统计
在设计选择查询时,除了进行条件设置外,还可以进行计算和分类汇总。
例如,计算学生的年龄、计算教师的工龄、统计教师的工资等,这需要在查询设计时使用表达式及查询统计功能。
1.表达式
用运算符将常量、变量、函数连接起来的式子称为表达式,表达式计算将产生一个结果。可以利用表达式在查询中设置条件或定义计算字段。
Access系统提供了算术运算、关系运算、字符运算和逻辑运算等4种基本运算表达式。
2.系统函数
函数是一个预先定义的程序模块,包括标准函数和用户自定义函数。
标准函数可分为数学函数、字符串处理函数、日期/时间函数、聚合函数等。函数及功能列表如表5-4所示。
表5-4 标准函数
【例5-6】查询教师的编号、姓名、性别、出生日期并计算年龄。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡中的“查询”组,单击“查询设计”按钮,打开查询设计器窗口。在“显示表”对话框中选择“教师”表双击,将其添加到查询设计视图的数据源窗口中。将教师表的字段“教师编号”、“姓名”、“性别”、“出生日期”添加到QBE网格中,然后在空白列中输入“年龄:Year(Date())-Year([出生日期])”,其中,Year(Date())-Year([出生日期])是计算年龄的表达式,而“年龄:”用于设置年龄的显示标题,如图5-21所示。
图5-21 计算年龄
(2)保存查询为“计算教师年龄”并运行,显示结果如图5-22所示。
图5-22 运行结果
5.3 交叉表查询
交叉表查询通常以一个字段作为表的行标题,以另一个字段的取值作为列标题,在行和列的交叉点单元格处获得数据的汇总信息,以达到数据统计的目的。交叉表查询既可以通过交叉表查询向导来创建,也可以在设计视图中创建。
5.3.1 使用向导创建交叉表查询
【例5-7】在教学管理数据库中,使用交叉表查询向导查询教师学历的获取时间。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡中的“查询”组,单击“查询向导”按钮,打开“新建查询”窗口,选择“交叉表查询向导”选项,如图5-23所示。
图5-23 交叉表查询向导
(2)单击“确定”按钮,打开“交叉表查询向导”窗口。选择“人事档案”表,如图5-24所示。
(3)单击“下一步”按钮,打开“交叉表查询向导”窗口。选择“教师编号”字段作为行标题,如图5-25所示。
(4)单击“下一步”按钮,打开“交叉表查询向导”窗口。选择“最高学历”字段作为列标题,如图5-26所示。
图5-24 选择数据表
图5-25 选择行标题字段
图5-26 选择列标题字段
(5)单击“下一步”按钮,打开“交叉表查询向导”窗口。选择“毕业日期”字段作为行和列的交叉点,并选择First函数,如图5-27所示。
图5-27 选择行和列的交叉点
(6)单击“下一步”按钮,输入查询名称“学历获取时间(交叉表查询向导)”,单击“完成”按钮,显示查询结果,如图5-28所示。
图5-28 交叉表查询结果
5.3.2 使用设计视图创建交叉表查询
【例5-8】在教学管理数据库中,使用交叉表查询学生的各门成绩。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。将学生表、课程表和选课表添加到查询设计视图的数据源窗口中,同时将学生表的字段“学号”、“姓名”、课程表中的“课程名称”以及选课表的字段“成绩”添加到查询定义窗口中。
(2)选择“查询工具”选项卡的“查询类型”组,单击“交叉表”按钮,查询定义窗口中将出现“总计”和“交叉表”行。首先,在“交叉表”行,对应“学号”和“姓名”字段选择“行标题”、对应“课程名称”选择“列标题”,对应“成绩”字段,选择“值”,然后,在“总计”行,对应“学号”、“姓名”和“课程名称”字段选择“Group By”,对应“成绩”字段,选择“First”,如图5-29所示。
图5-29 交叉表查询设计界面
(3)保存查询为“学生各项成绩交叉表查询”并运行,运行结果如图5-30所示。
图5-30 交叉表查询运行结果
5.4 参数查询
参数查询是一种动态查询,可以在每次运行查询时输入不同的条件值,系统根据给定的参数值确定查询结果,而参数值在创建查询时不需定义。这种查询完全由用户控制,在一定程度上可以适应应用的变化需要,提高查询效率。参数查询一般创建在选择查询基础上,在运行查询时会出现一个或多个对话框,要求输入查询条件。由于参数的随机性,使查询结果有很大的灵活性,因此常常成为窗体、报表等对象的数据基础。
根据查询中参数个数的不同,参数查询可以分为单参数查询和多参数查询。
【例5-9】在教学管理数据库中,按照姓名查询学生的所有信息。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。将学生表添加到查询设计视图的数据源窗口中,将所有字段添加到查询定义窗口中。
(2)对应“姓名”字段,在“条件”行输入“[学生姓名]”,保存查询为“按照姓名查询学生信息”,如图5-31所示。
图5-31 参数查询设计界面
(3)运行查询,输入“张明珠”,显示结果如图5-32所示。
图5-32 参数查询运行结果
5.5 操作查询
前面介绍的查询是根据一定的条件,从已有的数据源中选择满足特定准则的数据形成一个动态集。将已有的数据源再组织或增加新的统计结果,这种查询方式不改变数据源中的数据。
操作查询是在选择查询的基础上创建的,可以对表中的记录进行追加、修改、删除和更新。操作查询包括生成表查询、追加查询、更新查询和删除查询。
5.5.1 生成表查询
生成表查询可以使查询的运行结果以表的形式存储,生成一个新表,这样就可以利用一个或多个表或已知的查询再创建表,从而使数据库中的表可以创建新表,实现数据资源的多次利用及重组数据集合。生成表查询可以使原有的数据资源扩大或合理改善。
【例5-10】在教学管理数据库中,根据教师表和人事档案表创建一个新表:教师档案表(教师编号、姓名、性别、最高学历、毕业院校)。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。将教师表和人事档案表添加到查询设计视图的数据源窗口中,将所需字段添加到查询定义窗口中。
(2)选择“查询工具”选项卡的“查询类型”组,单击“生成表”按钮,在弹出的生成表对话框中输入新表名称“教师档案”,并选中“当前数据库”单选按钮,如图5-33所示。
图5-33 生成新表查询设计
(3)单击“确定”按钮,并单击“运行”按钮,会弹出对话框提示向新表粘贴数据,如图5-34所示。
图5-34 粘贴数据提示框
(4)单击“是”按钮,将会在数据库中生成一个新表“教师档案”,打开该表,内容显示如图5-35所示。
图5-35 新表内容
5.5.2 追加查询
追加查询可以从一个或多个表将一组记录追加到一个或多个表的尾部,可以大大提高数据输入的效率。
【例5-11】在教学管理数据库中,创建一个跟教师表结构完全一样的空表“教师备份”,将教师表中的记录添加到该表中。
操作步骤如下:
(1)打开“教学管理”数据库,复制教师表结构,保存为“教师备份”。
(2)选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。将教师表添加到查询设计视图的数据源窗口中,在字段中选择“教师.*”。
(3)选择“查询工具”选项卡的“查询类型”组,单击“追加”按钮,在弹出的追加对话框中输入“教师备份”,如图5-36所示。
图5-36 追加对话框
(4)单击“确定”按钮,并单击“运行”按钮,会弹出对话框,如图5-37所示。
图5-37 追加数据对话框
(5)单击“是”按钮,把教师表中的记录追加到教师备份表中,打开该表,内容显示如图5-38所示。
图5-38 生成新表内容
5.5.3 更新查询
在数据库操作中,如果只对表中少量数据进行修改,可以直接在表操作环境下,通过手工进行修改。如果需要成批修改数据,可以使用系统提供的更新查询功能来实现。
更新查询可以对一个或多个表中符合查询条件的数据进行批量的修改。
【例5-12】在教学管理数据库中,将教师备份表中的工资字段增加500。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。将教师备份表添加到查询设计视图的数据源窗口中。
(2)选择“查询工具”选项卡的“查询类型”组,单击“更新”按钮,在字段中选择“工资”。对应“工资”字段,在“更新到”行输入“[工资]+500”,如图5-39所示。
图5-39 更新查询设计界面
(3)单击“运行”按钮,会弹出对话框,如图5-40所示。
图5-40 更新数据对话框
(4)单击“是”按钮,将会把教师备份表中的工资字段在原有的数据上增加500,请读者自行打开表进行查看。
5.5.4 删除查询
删除查询可以从表中删除无用数据。使用删除查询,将删除整条记录,而非只删除记录中的字段值。记录一经删除将不能恢复,因此在删除记录前要做好数据备份。删除查询设计完成后,需要运行查询才能将需要删除的记录删除。
【例5-13】在教学管理数据库中,将教师备份表中的男教师删除。
操作步骤如下:
(1)打开“教学管理”数据库,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。将教师备份表添加到查询设计视图的数据源窗口中。
(2)选择“查询工具”选项卡的“查询类型”组,单击“删除”按钮,在字段中选择“性别”。对应“性别”字段,在“条件”行输入“男”,如图5-41所示。
图5-41 删除查询设计界面
(3)单击“运行”按钮,会弹出对话框,如图5-42所示。
图5-42 删除数据对话框
(4)单击“是”按钮,将会把教师备份表中的男教师记录全部删除了,请读者自行查看删除后的结果。
5.6 SQL查询
SQL(Structured Query Language)结构化查询语言是标准的关系型数据库语言。SQL语言的功能包括数据定义、数据查询、数据操纵和数据控制4个部分。
SQL查询是使用SQL语言创建的一种查询。每个查询都对应着一个SQL查询命令。当用户使用查询向导或查询设计器创建查询时,系统会自动生成对应的SQL命令,可以在SQL视图中查看。除此之外,用户还可以直接通过SQL视图窗口输入SQL命令来创建查询。
使用SQL语句创建查询的操作步骤如下:
(1)打开数据库,选择“创建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口。
(2)单击“创建”选项卡的“SQL”按钮,则切换到SQL视图。
(3)运行或者保存查询。
5.6.1 使用SQL语句创建选择查询
使用SQL语句创建选择查询使用select语句,语法如下:select [all|distinct] <字段名1> [,<字段名2>…]
from <表或查询>
[inner join <表或查询> on <条件表达式>]
[where <条件表达式>]
[group by <分组字段名> having <条件表达式>]
[order by <字段名> [asc|desc]
其中:
all:查询结果返回全部记录集。
distinct:查询结果是不包含重复行的记录集。
inner join <表或查询> on <条件表达式>:查询结果是多表数据源组成的记录集。
where <条件表达式>:查询结果是数据源中满足<条件表达式>的记录集。
group by <分组字段名>:查询结果是数据源按字段分组的记录集。
having <条件表达式>:分组时满足<条件表达式>。
order by<字段名>:查询结果按照字段排序,asc为升序,desc为降序。
【例5-14】在教学管理数据库中,使用教师表查询所有教师的“教师编号”、“姓名”、“性别”和“出生日期”。
SQL语句为:
select 教师编号,姓名,性别,出生日期
from 教师
运行查询得到结果,如图5-43所示。
图5-43 SQL查询结果
【例5-15】使用教师表和课程表查询所有教师所授课程的学分和学时。SQL语句为:
select 教师编号,姓名,课程名称,学分,学时
from 教师inner join课程
on 教师.教师编号=课程.授课教师编号
也可以写成:
select 教师编号,姓名,课程名称,学分,学时
from 教师,课程
where 教师.教师编号=课程.授课教师编号
【例5-16】使用教师表和课程表查询张明华所授课程的学分和学时。
SQL语句为:
select 教师编号,姓名,课程名称,学分,学时
from 教师 inner join 课程
on 教师.教师编号=课程.授课教师编号
where 姓名="张明华"
也可以写成:
select 教师编号,姓名,课程名称,学分,学时
from 教师,课程
where 教师.教师编号=课程.授课教师编号and姓名="张明华"
【例5-17】查询所有学生的选课信息,显示学号、姓名、课程名称和成绩,并按照成绩降序排列。
SQL语句为:
select 学生.学号,姓名,课程名称,成绩
from 学生,选修,课程
where 学生.学号=选修.学号and选修.课程编号=课程.课程编号
order by 成绩 desc
【例5-18】使用课程表统计每位教师授课门数。
SQL语句为:
select 授课教师编号,姓名,count (授课教师编号) as 所授课程门数
from 教师,课程
where 教师.教师编号=课程.授课教师编号
group by 授课教师编号,姓名
【例5-19】统计每位同学的总成绩和平均成绩。
SQL语句为:
select 学生.学号,姓名,sum (成绩) as 总成绩,avg (成绩) as 平均成绩
from 学生,选修
where 学生.学号=选修.学号
group by 学生.学号,姓名
【例5-20】查询选修了课程但是没有参加考试的学生的学号、姓名和课程名称。
SQL语句为:
select 学生.学号,姓名,课程名称
from 学生,课程,选修
where 学生.学号=选修.学号and课程.课程编号=选修.课程编号and成绩isnull
其中,成绩isnull用来判断成绩是否为空。如果成绩为空,说明学生选修了该课程但是没有成绩。
5.6.2 使用SQL语句创建操作查询
创建动作查询的SQL语句有以下几种形式:
(1)插入语句:
insert into <表名> (字段名1[,字段名2…])
values (表达式1[,表达式2…])
(2)更新语句:
update <表名> set <字段名1>=<表达式>[,<字段名2>=<表达式>…][where<条件>]
(3)删除语句:
delete from <表名> [where<条件>]
【例5-21】使用SQL语句,给教师备份表增加一个新记录,其内容是("111114","张三","男","1990/1/15")。
SQL语句为:
insert into 教师备份 (教师编号,姓名,性别,出生日期)
values ("111114","张三","男","1990/1/15")
【例5-22】使用SQL语句,将教师备份表中张丹丹的工资修改为6000。
SQL语句为:
update 教师备份 set 工资=6000
where 姓名="张丹丹"
【例5-23】使用SQL语句,将教师备份表中教师编号为001002的记录删除。
SQL语句为:
delete from 教师备份 where 教师编号="001002"
5.6.3 使用SQL语句的创建数据定义查询
创建数据定义查询的SQL语句有以下几种形式:
(1)创建表:
create table <表名> ([<字段名1>]类型(长度)[,[<字段名2>]类型(长度)…])其中:
文本型:text。
长整型:integer。
双精度型:float。
货币型:money。
日期型:date。
逻辑型:logical。
备注型:memo。
OLE型:general。
(2)增加字段:
alter table <表名>
add [<字段名1>] 类型(长度) [,[<字段名2>] 类型(长度)…]
(3)修改字段:
alter table <表名>
alter [<字段名1>] 类型(长度) [,[<字段名2>] 类型(长度)…]
(4)删除字段:
drop table <表名>
drop [<字段名1>] 类型(长度) [,[<字段名2>] 类型(长度)…]
(5)删除表:
drop table <表名>
【例5-24】使用SQL语句,创建一个表test,字段包括编号(文本型,长度为6)、姓名(文本型,长度为20)、出生日期(日期型)、销售额(双精度型)。
SQL语句为:
create table test (编号text(6),姓名text(20),出生日期date,销售额float)
【例5-25】使用SQL语句,给test表增加一个照片字段,类型为OLE型。
SQL语句为:
alter table test add 照片 general
【例5-26】使用SQL语句,将test表的销售额字段修改为money类型。
SQL语句为:
alter table test alter 销售额 money
【例5-27】使用SQL语句,将test表的销售额字段删除。
SQL语句为:
alter table test drop销售额
【例5-28】使用SQL语句,将test表删除。
drop table test
思考题
(1)什么是查询,它与表有什么区别?
(2)Access中查询是如何分类的?
(3)什么是查询准则,其作用是什么?
(4)查询有哪些视图?
(5)交叉表查询的用途是什么?
(6)什么是参数查询?
(7)操作查询有哪些?
(8)什么是SQL查询?
(9)SQL查询能完成哪些功能?
上机题
使用查询设计器和SQL分别完成下列查询:
(1)查询所有男教师的姓名、性别、出生日期、最高学历、毕业院校和所授课程。
(2)查询选修数据库课程的学生姓名和成绩。
(3)使用交叉表查询所有教师何年何月毕业于哪所大学(仅用查询设计器完成)。
(4)查询学生的姓名、学号、性别、出生日期和年龄。
(5)查询所有姓“张”的学生姓名、学号、性别、出生日期和籍贯。
(6)建立一个“学历”参数,使用参数查询来查找不同学历的教师信息。
(7)使用学生、选修和课程表,生成一个新表“学生成绩表”,包括学生学号、姓名、选修课程和成绩。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。