《数据库基础.ppt》由会员分享,可在线阅读,更多相关《数据库基础.ppt(238页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1 章 数据库基础计算机教研室 Access教学组ACCESS 数据库技术与应用第一节数据库的基本概念第二节关系数据库Contents Page目录页第三节数据库设计基础第四节Access 2010 简介3 第一节 数据库的基本概念1类型值数据的属性1.数据库系统基本概念(1)数据 数据(Data) 是信息的符号表示。(2)数据库 数据库( Database, DB)是长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,可被各种用户共享。4 第一节 数据库的基本概念11.数据库系统基本概念(3)数据
2、库管理系统 数据库管理系统( Database Management System, DBMS) 是用户与数据库之间的接口, 是负责数据库的建立、使用、维护和管理的系统软件,是数据库系统的核心。(4)数据库管理员 数据库管理员( Database Administrator, DBA)是负责数据库的规划、设计、维护、监视等的专门技术人员。5 第一节 数据库的基本概念11.数据库系统基本概念(5)数据库系统 数据库系统( Database System, DBS)由数据库、数据库管理系统、数据库管理员、硬件平台和软件平台等构成,是以数据库为核心的完整的运行实体。数据库管理系统软件平台硬件平台数据
3、库数据库管理员硬件平台软件平台n 计算机n 网络n 操作系统(如 Windows、 UNIX 等)n 系统开发工具(如C+、 Visud Basic 等)n 接口软件(如 ODBC、 JDBC 等)6 第一节 数据库的基本概念11.数据库系统基本概念(6)数据库应用系统数据库应用系统( Database Application System, DBAS) 是由数据库系统、应用程序系统和用户组成。数据库应用系统(DBAS)数据库系统(DBS)应用程序系统数据库管理系统(DBMS)用户数据库管理员数据库硬件平台软件平台 应用界面应用软件7 第一节 数据库的基本概念11.数据库系统数据库系统的特点1
4、数据的高共享性与低冗余性数据冗余是指一种数据存在多个相同的副本。 2数据结构化任何数据库管理系统都支持一种抽象的数据模型。3具有较高的数据独立性数据独立性一般分为逻辑独立性和物理独立性两种。4具有统一的数据管理与控制功能据库系统为数据库提供了统一的管理手段,主要包括数据的安全性控制、 完整性控制、并发访问控制等。8 第一节 数据库的基本概念12.数据模型数据模型( Data Model)是数据特征的抽象。数据模型描述的内容包括数据结构、 数据操作和数据约束三部分。概念数据模型逻辑数据模型物理数据模型是一种面向用户、面向客观世界的模型,主要用来描述世界的概念化结构。是一种面向数据库系统的模型,是
5、具体的数据库管理系统所支持的数据模型。是一种面向计算机物理表示的模型, 它描述了数据在储存介质上的组织结构。9 第一节 数据库的基本概念12.数据模型概念数据模型概念数据模型中的几个基本概念:1实体与实体集n 实体是指客观存在并且可以相互区别的事物。n 具有共同性质的同类实体组成的集合称为实体集。2属性n 实体所固有的特征和特性称为属性。一个实体可以有若干个属性。3联系n 实体之间的对应关系称为实体间的联系一对一联系( 1 1)一对多联系( 1 M)多对多联系( M N)学校正校长学校学生学生课程10 第一节 数据库的基本概念12.数据模型用 E-R 方法表示概念数据模型用 E-R 图来描述现
6、实世界的概念数据模型,其主要组成是实体集、属性和联系。1实体集23属性联系【例 1.1】 学生选课的数据包括学生和课程两个实体集。根据 E-R 图的表示方法建立模型。n 学生包括学号、姓名、性别和民族等属性。n 课程包括课程号、课程名、学时和学分等属性。n 学生和课程两个实体集通过选课相互联系。11 第一节 数据库的基本概念12.数据模型逻辑数据模型 E-R 图所表示的是客观世界数据的概念数据模型,利用数据库技术进行数据处理时,还应该将概念数据模型转换成逻辑数据模型,使数据可以在数据库中进行表示。层次模型网状模型关系模型n 有且仅有一个结点没有父结点,该结点称为根结点。n 其他结点有且仅有一个
7、父结点。n 可以有任意多个结点没有父结点。n 一个结点允许有多个父结点。n 关系模型是采用二维表来表示数据及关系的逻辑结构。 n 二维表由表框架及表的元组组成。12 第二节 关系数据库21.关系数据模型关系模式用二维表的形式表示实体和实体间联系的数据模型称为关系模型。 一个关系就是一个二维表,每个关系都有一个关系名称。对关系的描述称为关系模式,一个关系模式对应一个关系的结构, 其表示格式如下: 关系名(属性名 1,属性名 2,属性名 n)学生(学号,姓名,性别,民族,出生日期,专业,入学成绩,党员否,个人特长)13 第二节 关系数据库21.关系数据模型术语1元组2属性在同一个关系中不允许有重复
8、的属性名。一个关系可以包含若干个元组,但不允许有完全相同的元组。3域4键5外键域是指属性的取值范围。 键也称为关键字,由一个或多个属性组成,用于唯一标示一条记录。如果关系中的一个属性不是当前关系的主键,但它是另外一个关系的主键,则该属性称为外键,也称为外部关键字。14 第二节 关系数据库21.关系数据模型关系的基本特点1规范化。 一个关系的每个属性必须是不可再分的, 即不允许表中含表。2同一个关系中不允许出现重复的属性。3同一个关系中不允许出现重复的元组。4关系中交换元组的顺序不影响元组中数据的具体意义。5关系中交换属性的顺序不影响元组中数据的具体意义。15 第二节 关系数据库22.关系代数传
9、统的集合运算传统的集合运算包括并运算( )、交运算( )、差运算( -) 和笛卡儿积( )。 已知两个关系 R 和 S 具有相同的属性集, 则并运算( Union)的结果是由关系 R、 S中所有不同的元组构成的关系,记作 RS。 并运算16 第二节 关系数据库22.关系代数传统的集合运算已知两个关系 R 和 S 具有相同的属性集, 则交运算( Intersection)的结果是由既属于关系 R 的元组, 又属于关系 S 的元组构成的关系,记作 RS。交运算17 第二节 关系数据库22.关系代数传统的集合运算已知两个关系 R 和 S 具有相同的属性集, 则差运算( Difference)的结果是
10、由属于关系 R 但不属于关系 S 的元组构成的关系,记作 R-S。差运算18 第二节 关系数据库22.关系代数传统的集合运算已知关系 R 具有 m 个属性和 p 个元组,关系 S 具有 n 个属性和 q 个元组, R 与 S 的笛卡儿积运算( Cartesian Product) 记为 RS,它的结果是一个具有 m+n 个属性的关系,元组个数为 pq。笛卡儿积运算19 第二节 关系数据库22.关系代数专门的关系运算关系运算有选择运算( )、投影运算( )、连接运算()和除运算()。选择运算 ( Selection)是在关系 R 中选择满足条件的元组并组成新的关系,记作 F(R)。选择运算其中,
11、 F 为筛选条件,它是一个逻辑表达式,由逻辑运算符(逻辑非)、(逻辑与)、(逻辑或)和比较运算符、 =、 、 =、 =、 (不等于)组成。属性名也可以用其序号来表示。20 第二节 关系数据库22.关系代数专门的关系运算关系运算有选择运算( )、投影运算( )、连接运算()和除运算()。选择运算 ( Selection)是在关系 R 中选择满足条件的元组并组成新的关系,记作 F(R)。选择运算其中, F 为筛选条件,它是一个逻辑表达式,由逻辑运算符(逻辑非)、(逻辑与)、(逻辑或)和比较运算符、 =、 、 =、 =、 (不等于)组成。属性名也可以用其序号来表示。21 第二节 关系数据库22.关系
12、代数传统的集合运算投影运算( Projection) 是在关系 R 中选择出若干属性组成新的关系,并去掉重复的元组,记作A(R)。投影运算其中, A 为关系 R 的属性列表,各属性之间用逗号(英文半角)分隔。属性名也可以用其序号来表示。 22 第二节 关系数据库22.关系代数传统的集合运算投影运算( Projection) 是在关系 R 中选择出若干属性组成新的关系,并去掉重复的元组,记作A(R)。投影运算其中, A 为关系 R 的属性列表,各属性之间用逗号(英文半角)分隔。属性名也可以用其序号来表示。 23 第二节 关系数据库22.关系代数传统的集合运算连接运算( Join) 是从两个关系
13、R 和 S 的笛卡儿积中选取属性间满足条件的元组并组成新的关系,记作 , 其中, F 是选择条件。连接运算分为条件连接、等值连接和自然连接等。连接运算条件连接( Condition Join)从关系 R 和 S 的笛卡儿积中选取属性间满足一定条件的元组。24 第二节 关系数据库22.关系代数传统的集合运算连接运算等值连接等值连接( Equijoin)是从关系 R 和 S 的笛卡儿积中选取指定属性值相等的元组。25 第二节 关系数据库22.关系代数传统的集合运算连接运算自然连接也是一种等值连接,它选取的是公共属性值相等的元组,并去掉重复的属性,记作 RS。26 第二节 关系数据库22.关系代数传
14、统的集合运算连接运算除运算 给定关系 R(X,Y)和 S(Y,Z),其中 X、 Y、 Z 为属性组。 关系 R 中的 Y 与关系 S 中的Y 可以有不同的属性名,但必须出自相同的域集。 关系 R 与 S 的除运算( Dicision)将得到一个新的关系 P(X),其中关系 P 是关系 R中满足下列条件的元组在 X 属性列上的投影:元组在 X 上的分量值 x 的象集 Yx包含关系 S 在 Y 上投影的集合,记作 RS。27 第二节 关系数据库22.关系代数传统的集合运算连接运算除运算28 第二节 关系数据库23.关系完整性 关系完整性指关系数据库中数据的正确性和可靠性,关系数据库管理系统的一个重
15、要功能就是保证关系的完整性。实体完整性值域完整性参照完整性指数据表中记录的唯一性,即同一个表中不允许出现重复的记录。指数据表中记录的每个字段的值应在允许范围内。指要求通过定义的外部关键字和主键之间的引用规则来约束两个关系之间的联系。29 第三节 数据库设计基础3 数据库设计是指对于一个给定的应用环境,建立一个能满足用户要求、性能良好的数据库,并以数据库为基础开发一系列供用户完成各种事务处理的应用程序。数据库设计是数据库应用的核心,其根本目标是要解决数据共享的问题。 1.数据库设计原则“一实一表”原则避免在表之间出现重复字段表中的字段必须是原始数据和基本数据元素利用外部关键字保证有关联的表之间的
16、联系30 第三节 数据库设计基础32.数据库设计步骤确定在每个表中要保存哪些字段,字段中要保存数据的数据类型和数据的长度,确定关键字。对设计进行进一步分析,查找其中的错误。将需求信息划分成多个独立的实体, 将每个实体设计为数据库中的一个表。对每个表进行分析,确定一个表中的数据和其他表中的数据有何联系。必要时,可在表中加入一个字段或创建一个新表来明确联系。首先要明确建立数据库的目的,详细了解用户的需求。31 第四节 Access 2010 简介41. Access 2010 的启动和退出32 第四节 Access 2010 简介42. Access 2010 的用户界面功能区和导航窗格33 第四
17、节 Access 2010 简介43. Access 数据库的对象查询报表模块窗体表宏34 1用二维表来表示实体与实体之间联系的数据模型是( )。实体-联系模型层次模型网状模型关系模型ABCD提交单选题35 2 Access 的数据库类型是( )。层次数据库关系数据库网状模型面向对象数据库ABCD提交单选题36 3数据库系统的核心是( )。数据模型数据库管理系统软件工具数据库ABCD提交单选题37 4 有 R 和 T 两个关系,如下图所示。选择投影交并ABCD提交单选题38 5在数据库中能够唯一标示一个元组的属性或属性的组合的称为( )。提交单选题关键字记录字段域 ABCD39 6“商品”与“
18、顾客”两个实体集之间的联系一般是( )。提交单选题一对一一对多多对一多对多 ABCD谢谢收看第 2 讲 数据库、表计算机教研室 Access教学组ACCESS 数据库技术与应用42 422.2 建立表1. 字段名称命名规则:(1)长度为164个字符(每个汉字为1个字符)。(2)可以包含字母、汉字、数字、空格和其他字符,但不能以空格开头。(3)不能使用ASCII码值为031的ASCII 字符。(4)不能包含句点“.”、感叹号“!”、方括号“ ”和单引号“”。2.2.1 表的组成表的组成(P29)43 2.2 建立表 (1) 文本n 可存储字符或数字n 最多为255255个字符(2)(2)备注n
19、可保存较长的字符和数字n 最多可存储6553565535个字符(3)(3)数字n 用来存储进行算术运算的数字数据2.数据类型(数据类型(P29)文本和数字型可以进一步设置字段大小44 2.2 建立表 (4) 日期/时间n 用于存储日期、时间或日期时间组合n 字段长度固定为8个字节(5) 货币n 等价于具有双精度属性的数字类型n 字段长度为8个字节(6) 自动编号n 自动编号字段中数值唯一n 当向表中添加一条新记录时,系统会自动插入一个唯一的顺序号(每次递增1)或随机数。n 如果删除了含有自动编号的一条记录,系统不会对记录重新编号。n 字段长度为4个字节自动编号可以进一步设置字段大小45 2.2
20、 建立表 (7)是/否n 只有两种不同取值n 使用True或-1表示“是”值,使用False或0表示“否”值n 字段长度为1个字节(8) OLE对象n 用于存储链接或嵌入的对象,这些对象以文件形式存在,其类型可以是Word文档、Excel电子表格、图像、声音或其他二进制数据n 字段最大容量为1GB46 2.2 建立表 (9)超链接n 以文本形式保存超链接地址,用来链接到文件、Web页、电子邮件地址等(10)附件n 用于存储所有种类的文档和二进制文件n 字段最大容量为2G47 2.2 建立表 (11)计算n 用于显示计算结果,计算时必须引用同一表中的其他字段n 字段长度为8字节(12)查阅向导n
21、 通过下拉列表来选择字段的值48 1Access数据库文件的扩展名是_。.ADP.DBF.FRM.ACCDBABCD提交单选题1分49 2Access表的字段名不能包含的字符是_。!%&ABCD提交单选题1分50 3在“tEmployee”表中,“姓名”字段为文本型,字段大小为10,输入数据时,该字段最多可输入的汉字数和英文字符数分别是_。5 55 1010 1010 20ABCD提交单选题1分51 4在设计表结构时,若某字段值具有唯一性且能够按自动顺序递增,则该字段的数据类型应设置为_。OLE对象文本自动编号计算ABCD提交单选题1分52 5可以改变“字段大小”属性的字段数据类型是_。文本
22、OLE对象备注日期/时间ABCD提交单选题1分53 6使用表设计器定义表中字段时,不是必须设置的内容是_。字段名称数据类型说明字段属性ABCD提交单选题1分54 7在数据表的某个字段中存放演示文稿数据,该字段的数据类型应是_。文本型备注型超链接型 OLE对象型ABCD提交单选题1分55 8在数据表视图窗口中,不能进行的操作是_。删除一条记录修改字段的类型删除一个字段修改字段名称ABCD提交单选题1分56 9在Access数据库的表设计视图中,不能进行的操作是_。修改字段类型设置索引增加字段删除记录ABCD提交单选题1分57 572.2 建立表 1. 字段大小用于限制输入到该字段的最大长度只适用
23、于“文本”、“数字”或“自动编号”类型的字段2.格式用来设置数据的屏幕显示方式和打印方式,并不影响数据在表中的存储。2.2.3 设置字段属性设置字段属性(P34)如果要控制数据的输入格式,应设置字段的输入掩码属性。58 582.2 建立表 3. 输入掩码用掩码字符控制文本、数字、日期/时间和货币型数据输入格式对于文本型和日期/时间型字段也可以使用输入掩码向导来定义可将某些符号固定成格式的一部分,减化输入。在显示数据时, 格式属性优先于输入掩码在输入数据时,输入掩码属性优先 例 定义“联系电话”字段的输入掩码,使其输入格式为前4位是“024-”,后8位是数字。59 592.2 建立表 字符说明0
24、数字(09),必须输入,不允许输入加号和减号。例如,输入掩码000,必须输入3位数字9数字或空格,非必须输入,不允许输入加号和减号。例如,输入掩码999,可以输入03位数字或空格#数字或空格,非必须输入,允许输入加号和减号。例如,输入掩码#,可以输入03位数字、空格、加号或减号L字母(AZ,az),必须输入?字母(AZ,az)或空格,非必须输入A字母或数字,必须输入a字母、数字或空格,非必须输入&任意一个字符、汉字或空格,必须输入C任意一个字符、汉字或空格,非必须输入输入掩码字符(P35)60 602.2 建立表 4标题在数据表视图中,为字段设置标题属性后,该属性值将作为字段的标题。5默认值默
25、认值是向表中添加一条新记录时,为相应字段预设的值。61 612.2 建立表 6. 有效性规则和有效性文本n有效性规则是指向表中输入数据时应遵循的条件,其作用是限制非法数据的输入。n有效性文本是指当输入的数据违反了有效性规则时显示的出错提示信息。62 622.2 建立表 实训P29综合练习2.52)设置表对象的有效性规则为学生的出生年份应早于(不含)入校年份,同时设置相应的有效性文本为“请输入合适的年龄和入校时间”。要求:使用year( )函数返回有关年份。63 632.2 建立表 9. 索引(P39)n对字段定义索引,可以加快排序和查询等操作的速度,可以验证数据的唯一性。n“索引”属性选项有以
26、下三种。 无:默认值,表示该字段无索引。 有(无重复):该字段有索引,每条记录中该字段中的值不能重复,适合做主键。 有(有重复):该字段有索引,每条记录中该字段中的值可以重复。n可建立单字段索引和多字段索引64 1下列有关字段属性的叙述中,错误的是_。字段大小可用于设置文本、数字或自动编号等类型字段的最大容量可对任意类型的字段设置默认值属性有效性规则属性是用于限制此字段输入值的表达式不同的字段类型,其字段属性不同ABCD提交单选题1分65 2下列有关字段属性的叙述中,错误的是_。可以控制数据的输入格式“输入掩码向导”只能用于“文本”或“日期”字段类型当同时为字段定义了输入掩码和格式属性时,输入
27、数据时格式属性优先允许将“文本”字段中的数据限定字数ABCD提交单选题1分66 3输入掩码字符“&”的含义是_。必须选择输入字母或数字可以选择输入字母或数字必须输入一个任意字符或一个空格可以选择输入一个任意字符或一个空格ABCD提交单选题1分67 4.若输入掩码设置为“LLL000”,则对应的正确的输入数据是_。555555aaa555555aaaaaaaaaABCD提交单选题1分68 5.若文本型字段的输入掩码设置为“#-#”,则正确的输入数据是_。0755-abcdef077 -12345a cd-123456#-#ABCD提交单选题1分69 5.若要求在输入数据时“学院名称”字段必须以“
28、学院”两个汉字结尾,则在表设计时应该设置的字段属性是_。有效性规则有效性文本输入掩码参照完整性ABCD提交单选题1分70 702.2 建立表 2.2.6 建立表间关系(建立表间关系(P49) 建立表之间的关系,能保证多个表之间的数据保持同步操作。 在定义表间关系之前,应关闭所有需要定义关系的表。 定义方法:“数据库工具”“关系” 1.创建表之间的关系71 712.2 建立表 1)实施参照完整性 不能在子表的关联字段中输入在主表的主键中不存在的值。 如果在子表中存在匹配的记录,则不允许删除主表中的记录,也不允许更改主表中的主键值。2)实施参照完整性 + 级联更新相关字段在更改主表中记录的主键值时
29、,会自动更改子表中的对应字段值。3)实施参照完整性 + 级联删除相关记录在删除主表中的记录时,会自动删除子表中的相关记录。2.2.6 建立表间关系(建立表间关系(P49) 2.参照完整性(P51)在输入或删除记录时,为维持表之间已定义的关系而必须遵循的规则。72 1下列关于Access表的叙述中,错误的是_。在Access表中,不可以对备注型字段进行“格式”属性设置若删除表中含有“自动编号”型字段的一条记录后,Access不会对表中“自动编号”型字段重新编号创建表之间的关系时,应关闭所有打开的表可在Access表的设计视图中的“说明”列中,对字段进行具体的说明ABCD提交单选题1分73 2.在
30、“关系”窗口中,双击两个表之间的连接线,会出现_。数据表分析向导数据关系图窗口连接线粗细变化编辑关系对话框ABCD提交单选题1分74 3. 为了保持表之间的关系,要求若在子表(从表)中添加记录时,主表中没有与之相关的记录,则不能在子表中添加该记录。为此需要定义的关系是_。输入掩码有效性规则默认值参照完整性ABCD提交单选题1分75 4.在Access数据库中,为了保持表之间的关系,要求在主表中修改相关记录时,子表相关记录随之更改。为此需要定义参照完整性关系的_。级联更新相关字段级联删除相关字段 级联修改相关字段级联插入相关字段ABCD提交单选题1分76 762.4 操作表 2.4.1 查找与替
31、换数据(P59)字符说明示例*通配任意多个字符“wh*”可以找到what、white和why,但找不到awhile或watch?通配任意单个字符“b?ll”可以找到ball、bill和bell,但找不到beell 通配方括号内的任意单个字符“baell”可以找到ball和bell,但找不到bill或bull!通配任意不在方括号内的字符“b!aell”可以找到bill和bull,但找不到ball或bell-通配范围内的任意单个字符。必须以递增排列顺序来指定区域(A到Z,而不是Z到A)“ba-cd”可以找到bad、bbd和bcd,但找不到bdd或babd#通配任意单个数字字符“2#5”可以找到20
32、5、215和255,但找不到211577 772.4 操作表 2.4.2 排序记录(P61)1. 单字段排序使用“升序”或“降序”按钮2. 多字段排序使用“升序”或“降序”按钮使用“高级筛选/排序”命令按设定的优先次序进行排序78 782.4 操作表 2.4.3 筛选记录(P63)1. 按选定内容筛选筛选符合单值的记录使用“选择”按钮2. 使用筛选器筛选列出选定字段的所有不重复值,以便选择3. 按窗体筛选选择多个字段的值进行筛选4. 高级筛选筛选满足复杂条件的记录,可以自己编写筛选条件79 1.在数据表的查找操作中,通配符“-”的含义是_。通配任意多个减号通配任意单个字符通配任意单个运算符通配
33、指定范围内的任意单个字符ABCD提交单选题1分80 2.要查找包含双引号( “ )的记录,在“查找内容”文本框中应输入的内容是_。*“*”“like ” ABCD提交单选题1分81 3.在数据表的查找操作中,若将查找内容设置为“b!aeull”,则可找到的字符串是_。billballbellbullABCD提交单选题1分82 4.某数据表中有5条记录,其中“编号”为文本型字段,其值分别为129、97、75、131、118,若按该字段对记录进行降序排序,则排序后的顺序为_。75、97、118、129、131118、129、131、75、97131、129、118、97、7597、75、131、1
34、29、118ABCD提交单选题1分83 5.如果要从列表中选择所需的值,而不想浏览数据表或窗体中的所有记录,或者要一次指定多个条件,即筛选条件,可使用的方法是_。按选定内容筛选内容排除筛选按窗体筛选高级筛选/排序ABCD提交单选题1分谢谢收看第 3 章 查询SQL查询计算机教研室 Access教学组ACCESS 数据库技术与应用86 3.7 SQL查询 结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言。使用SQL可以实现关系数据库的各种管理操作。SQL功能功能命令动词命令动词数据查询数据查询SELECT数据定义数据定义CREATE、DROP、A
35、LTER数据操纵数据操纵INSERT、UPDATE、DELETE数据控制数据控制GRANT、REVOKESQL常用命令动词 SQL查询是用户使用SQL语句创建的查询。前面介绍的所有查询都可以使用SQL语句创建。有一些使用查询向导和查询设计视图无法实现的复杂查询,也可以使用SQL语句创建。3.7.1查询与SQL视图3.7.2SQL数据查询Contents Page目录页3.7.3SQL的数据定义3.7.4SQL数据操纵88 3.7.1 查询与SQL视图1数据的属性查询的常用视图设计视图:常用于创建和修改查询数据表视图:常用于以表格形式显示查询的数据SQL视图:常用于编辑和显示SQL语句。89 3
36、.7.1 查询与SQL视图1数据的属性【例3.22】显示例3.6所创建的“男学生信息”查询(查询入学成绩大于475分的男学生)中的SQL语句。(1)使用设计视图打开“男学生信息”查询。(2)单击“设计”选项卡“结果”组中的“视图”下拉按钮,在打开的下拉列表中选择“SQL视图”选项,即可打开该查询的SQL视图窗口。SQL视图设计视图在SQL视图中可以查看、编辑SQL语句,也可以直接输入SQL语句创建查询。说明:在SQL语句中,除了参数查询外,表名和字段名可以不加方括号。90 3.7.2 SQL数据查询21. SELECT语句格式SELECT ALL|DISTINCT|TOP n * | , AS
37、 FROM , WHERE AND GROUP BY HAVING ORDER BY ASC|DESC;(1)SELECT子句用于指定查询结果包含的字段(列)。(2)FROM子句用于指定查询的数据源,多个数据源用英文逗号分隔。(3)WHERE 用于指定多表查询时数据表之间的连接条件;WHERE 用于指定查询结果中的记录必须满足的条件,即对记录进行筛选。(4)GROUP BY子句用于对记录进行分组,分组后通常对每组记录进行统计运算。HAVING子句只能在GROUP BY子句之后使用,用于对分组运算后的记录进行筛选。(5)ORDER BY子句用于对记录进行排序,ASC表示升序,DESC表示降序。9
38、1 3.7.2 SQL数据查询21. SELECT语句格式SELECT ALL|DISTINCT|TOP n * | , AS FROM , WHERE AND GROUP BY HAVING ORDER BY ASC|DESC;(6)ALL、DISTINCT和TOP n用于指定检索记录的范围。ALL表示所有记录,DISTINCT表示去掉重复的记录,TOP n表示前n条记录。(7)*、用于指定检索结果包括的字段。*表示全部字段,表示检索结果只包括列表中指定的字段。(8) AS 表示为表达式指定新的字段名。(9)、和 | 为语法符号。为必选项;为可选项,可以不选;| 为任选项,任选其中一个。(1
39、0)句尾的英文分号为SQL语句的结尾符,可以省略。92 3.7.2 SQL数据查询22.简单查询1)查询部分或全部字段信息【例3.23】创建SQL查询,显示“教师”表中所有教师的“教师名”和“职称”信息。(1)进入查询的设计视图:在“教学管理”数据库中,单击“创建”选项卡“查询”组中的“查询设计”按钮。在弹出的“显示表”对话框中,单击“关闭”按钮。(2)切换到查询的SQL视图:单击“设计”选项卡“结果”组中的“视图”下拉按钮,在打开的下拉列表中选择“SQL视图”选项。(3)输入SQL语句:在查询的SQL视图中,有条默认的“SELECT;”语句,在该位置输入查询所使用的SQL语句。(4)显示查询
40、结果:单击“设计”选项卡“结果”组中的“视图”或“运行”按钮。(5)保存查询:将其命名为“SQL查询教师”。93 3.7.2 SQL数据查询2【例3.24】查询“教师”表的所有信息。SELECT * FROM 教师;说明:命令中的 * 表示所有字段等价于SELECT 教师号,教师名,性别,职称,入职时间,联系电话 ,工资 FROM 教师;94 3.7.2 SQL数据查询22)去掉查询结果中的重复记录【例3.25】查询“学生”表中的专业(重复的专业只显示一个)。SELECT DISTINCT 专业 FROM 学生;说明:利用DISTINCT子句可以去掉查询结果中的重复记录。95 3.7.2 SQ
41、L数据查询23)定义新字段【例3.26】查询“学生”表中学生的“学号”“姓名”“年龄”信息。SELECT 学号,姓名,YEAR(DATE()-YEAR(出生日期) AS 年龄 FROM 学生;年龄=?现在年份 - 出生年份YEAR(出生日期) YEAR(DATE() 说明:如果查询结果中不希望使用原表中的字段名,或查询结果是通过函数、表达式运算得到的,可以根据要求设置一个新的字段名。【格式】 或 AS 96 3.7.2 SQL数据查询24)查询满足条件的记录【例3.27】在“学生”表中查询外语专业中入学成绩小于520分的学生的“学号”“姓名”“入学成绩”信息。SELECT 学号,姓名,入学成绩
42、 FROM 学生WHERE 专业=外语 AND 入学成绩520;改为 OR 的结果? 97 3.7.2 SQL数据查询2【例3.28】查询“课程”表中所有含有“大学”两个字的课程名。SELECT 课程名 FROM 课程 WHERE 课程名 LIKE *大学*;运算符LIKE用于判断表达式的值是否匹配指定的字符串样式?:可以匹配任意一个字符*:可以匹配任意多个字符#:可以匹配任意一个数字把上面SQL语句的 “*” 改为“ ?”,输出结果?98 3.7.2 SQL数据查询25)排序查询【例3.29】查询入学成绩前三名的学生的“学号”“姓名”“入学成绩”信息。SELECT TOP 3 学号,姓名,入
43、学成绩 FROM 学生 ORDER BY 入学成绩 DESC;ORDER BY 子句用于对查询结果中的某些字段进行排序。ASC为升序,DESC为降序,默认为升序排列。99 3.7.2 SQL数据查询2【例3.30】查询物理专业的学生信息,查询结果按“入学成绩”字段升序排列,入学成绩相同的记录再按“出生日期”字段降序排列。SELECT * FROM 学生 WHERE 专业=物理 ORDER BY 入学成绩,出生日期 DESC;100 3.7.2 SQL数据查询26)分组查询【例 3.31】查询“学生”表中少数民族各民族的人数,结果包含“民族”和“人数”两个字段。SELECT 民族,COUNT(*
44、) AS 人数 FROM 学生WHERE 民族汉族GROUP BY 民族; 说明:GROUP BY子句用于对记录进行分组 此查询先把所有民族不是汉族的记录筛选出来, 然后对这些筛选出来的记录再按组统计个数。101 3.7.2 SQL数据查询2【例3.32】查询“学生”表中的少数民族中人数大于2的各民族人数,结果包含“民族”和“人数”两个字段。SELECT 民族,COUNT(*) AS 人数 FROM 学生WHERE 民族汉族GROUP BY 民族 ;HAVING子句只能在GROUP BY子句之后使用,用于对分组运算后的记录进行筛选。只有满足HAVING条件的记录才能在结果中显示出来。HAVIN
45、G COUNT(*)2;102 3.7.2 SQL数据查询27)参数查询【例3.33】查询“教师”表中某个时间范围内参加工作的教师,结果包含“教师名”“职称”“入职时间”字段。SELECT 教师名,职称,入职时间 FROM 教师WHERE 入职时间 Between 起始日期 And 终止日期;提示:运行时需要输入起止日期和终止日期103 3.7.2 SQL数据查询23SQL连接查询【例3.34】查询学生的“学号”“姓名”“课程号”“成绩”信息。当一个查询同时涉及两个或两个以上的表时,称为连接查询(也称为多表查询)。在多表之间进行查询时,必须先建立表与表之间的连接关系。1)普通连接查询格式如下:
46、SELECTFROM, WHERE AND ;FROM子句后列出两个表的表名,用“,”分隔,使用WHERE子句指定连接表的条件和筛选条件。104 3.7.2 SQL数据查询2【例3.34】查询学生的“学号”“姓名”“课程号”“成绩”信息。SELECT 学生.学号,姓名,课程号,成绩 FROM 学生,选课WHERE 学生.学号=选课.学号;说明:当不同表中含有相同的字段名(如“学号”字段)时,必须指明是哪个表的字段,指定方法是在字段名前加“表名.”或“表名!”如,“学生.学号”或“学生!学号”。 105 3.7.2 SQL数据查询2【例3.35】查询 王欣 的“学号”“姓名”“课程号”“成绩”信
47、息。SELECT 学生.学号,姓名,课程号,成绩 FROM 学生,选课WHERE 学生.学号=选课.学号;说明:“学生.学号=选课.学号”为连接条件,“姓名=王欣”为筛选条件。 AND 姓名=王欣; 106 3.7.2 SQL数据查询2【例3.36】查询学生的“学号”“姓名”“课程名”“成绩”信息。SELECT 学生.学号,姓名,课程名,成绩 FROM 学生,选课,课程WHERE 学生.学号=选课.学号 AND 选课.课程号=课程.课程号;当查询涉及三个或三个以上的表时,要根据表之间对应的字段来书写连接表的条件。107 3.7.2 SQL数据查询22)内连接查询格式如下:SELECTFROM
48、INNER JOIN ON WHERE;【说明】INNER JOIN 为内联接,也称为等值联接,按照联接条件进行联接,不满足条件的记录不会出现在查询结果中。108 3.7.2 SQL数据查询2【例3.37】利用内连接查询学生的“学号”“姓名”“课程号”“成绩”信息。SELECT 学生.学号,姓名,课程号,成绩 FROM 学生 INNER JOIN 选课ON 学生.学号=选课.学号;SELECT 学生.学号,姓名,课程号,成绩 FROM 学生,选课WHERE 学生.学号=选课.学号;普通联接查询:内联接查询:109 3.7.2 SQL数据查询2【例3.38】利用内连接查询学生的“学号”“姓名”“
49、课程名”“成绩”信息。SELECT 学生.学号,学生.姓名,课程.课程名,选课.成绩FROM(学生 INNER JOIN 选课 ON 学生.学号=选课.学号) INNER JOIN 课程 ON 选课.课程号=课程.课程号;110 3.7.2 SQL数据查询24联合查询SELECT语句的查询结果是记录的集合,可以利用并运算把两个查询结果合并在一起,为了完成合并运算,两个查询的结果要求具有相同的字段数,并且对应字段的数据类型和取值范围应该一致。【例3.39】查询选修了“002”或“005”课程的学生的“学号”“课程号”。格式如下 UNION ALL 说明:UNION语句默认组合结果中已排除重复记录
50、,使用ALL,则允许包含重复记录。SELECT 学号,课程号 FROM 选课 WHERE 课程号=002UNIONSELECT 学号,课程号 FROM 选课 WHERE 课程号=005;111 3.7.2 SQL数据查询25子查询当查询的条件依赖于另一个查询的结果时,要在查询条件WHERE子句中嵌套一个子查询,子查询需要用括号括起来。【例3.40】查询“教师”表中低于平均工资的教师。方法一:在SQL语句中使用子查询。SELECT * FROM 教师WHERE 工资平均工资(SELECT Avg(工资) FROM 教师);子查询结果112 3.7.2 SQL数据查询2【例3.40】查询“教师”表