建立表间关系

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• Create: 创建表(table) • 格式:Create Table <表名>
(<字段名><数据类型>[完整性约束 条件],……) • 说明:< >内的内容必须填写
[ ]内的内容可写可不写
• Text /char文本 Date 日期 Money 货币 Memo 备注
Integer 整型
例3.19创建一个雇员表,包括雇员号,姓名,性别,出生 日期,部门,备注字段.
办公室”,”经理”);
例3.23插入新记录,其中”雇员号”为”002”,”姓名”为” 王宏”,”性别”为”男”.
Insert into 雇员 (雇员号,姓名,性别)values(“0002”,”王宏”,” 男”);
UPDATE (更新记录)
格式:UPDATE <表名> SET <字段名1>=<表达式1>[,<字段名2>=<表达 式2>]… [WHERE<条件>]
SQL特定查询
Hale Waihona Puke Baidu• 分类
– 数据定义查询 – 联合查询 – 传递查询 – 子查询
数据定义查询
• 使用该查询可以创建、删除或 更改表。
• 每个数据定义查询只能由一个 数据定义语句组成。
Create table创建表
Alter table 修改表
Drop
删除表
Create index创建索引
SQL语句
操作查询
它使用户在利用查询检索数据,计算数据,显示数 据的同时更新数据,而且还可以生成新的数据表。
操作查询是指仅在一个操作中更改许多记录的 查询。
操作查询的结果要在表对象查看和验证。
操作查询的种类
• 生成表查询(需要指定条件字段和新表结构)
– 从多个表中提取数据组合起来生成一个新表并保存下 来.
分组总计查询
• 在实际应用中,用户不仅要统计某个 字段的值,而且还要把记录分组,对 每个组进行统计。这时,就需要使用 “设计”视图中,“总计”行中的 GroupBy来对某个字段先进行分组, 然后再使用其他计算函数实现统计计 算。
添加计算字段
• 有时我们在对表中数据进行计算时,需要 统计的数据在表中没有相应的字段,或者 用于 计算的数据值来源于多个字段组合, 我们就需要手工添加一个计算字段。
• 删除查询(P94只需要指定条件字段)
– 从单表/多表中删除满足条件的记录.
• 更新查询(P95需要指定条件字段和待修改字段)
– 将符合某条件的多个记录一次性的更新(修改)
• 追加查询(P96要注意,新记录的结构要和目标表 的结构一致,否则会发生添加不成功的情况)
– 将某表中的符合条件的记录添加到另一个表中
例3.34建立一个”学生情况”表,包含学生ID 、姓名、 性别、出生日期、家庭住址、联系电话和备注这几个字 段。
Create table 学生情况 (学生ID integer primary key ,姓名 char(4),性别 char(1),出生日期 date, 家庭住址char(20), 联系电话char(8),备注memo);
例3.24 将”雇员”表张磊的出生日期改为”19601-11”
• Alter:修改表 • 格式:alter table <表名>
[add <新列名><数据类型>[约束] ] [drop<约束名> ] [ alter <列名><数据类型>] 例3.20在雇员表中增加一个字段“职务”,文本 类型;将“备注”字段删除;将“雇员号”字 段的类型改为文本,字段大小为8.
• 所有的查询都可以认为是一个SQL查询
• Select :用于对数据库进行查询
• 格式:select [ all / distinct]<字段列表>……
from <表名1>[,<表名2>]…… [where<条件表达式>] [group by <字段名1>[having<条件表达 式>] ]
将结果按<字段名1>进行分组,having的意思是只有满足条件的组 才能输出
• 例3.3:查看每名学生选课成绩,并显示”学生编 号”、”姓名”、”课程名称”和”成绩”字段, 所建查询名为“学生选课成绩”。
• 例3.4:查找1992年参加工作的男教师,并显示 “姓名”、“性别”、“学历”、“职称”、 “系别”和“联系电话”。
• 例3.5:查找成绩小于60分的女生,或成绩大于等 于90分的男生,显示“姓名”、“性别”和“成 绩”。
Create table 雇员(雇员号 smallint primary key,姓名 char(4) not null,性别 char(1),出生日期 date,部门 char(20),备注 memo);
整数型 分类:int、smallint、tinyint。int长度为4个字节,smallint长度为2个字节,tinyint长度为1字节。
例3.27查找并显示教师表中的“姓名”、“性别”、“工作时间”、“系 别”这4个字段。
SELECT 姓名,性别,工作时间,系别 FROM 教师 ;
例3.28查询1992年参加工作的男教师,显示姓名、性别、学历、 职称、系别和联系电话。 SELECT 姓名,性别,学历,职称,系别,联系电话 FROM 教师 WHERE 性别= "男" and YEAR([工作时间])=1992 ;
复习
建立表间关系
满足条件:两表存在共同字段,该共同字段至少是其中 一个表的主键。
– 参照完整性:是在输入或删除记录时,为维持表 之间已定义的关系而必须遵循的规则。
– 实施参照完整性,对表中主键进行操作时,系统 会自动检查主键字段是否被添加、修改或删除。 若对主键的修改违背了参照完整性的要求,系统 则强制执行参照完整性。
在查询中计算
我们以前所创建的查询只是在某些表中找到 一些符合条件的数据信息,而没有对这些信息进 行进一步的计算或处理。
比如:统计男教师的人数。
其实这个操作就是对某个查询结果所进行的统计 (计数)。
查询中计算的分类
这种对于查询结果的统计包括: 求和、计数、求最大值、……这些都归属于 “在查询中计算”
• 选择查询是一种最常用的查询类型。
• 定义:根据指定条件,从一个或多个数据 源中获取数据的查询称为选择查询。
• 利用选择查询可以对表中的部分字段进行 选择,一般是没有条件的选择;也可以对 表的部分记录进行选择,一般都有指定的 条件。
选择查询的创建方法一 •使用向导(用于无条件查询)
例3.1:查找“教师”表中记录,并显示“姓名”、“性 别”、“工作时间”和“系别”4个字段。
INSERT(插入新记录)
格式:INSERT INTO<表名>[(<字段名1>[,<字段名2>…])]
VALUES(<常量1>[,<常量2>]…)
例3.22将一条新记录插入到”雇员”表中 注意:文本用” ”括起来,日期用##括起来. Insert into 雇员 values(“0001”,”张磊”,”男”,#1960-1-1#,”
将多个表连接在一起
例3.31查找学生的选课成绩,并显示“学生编号”、“姓名”、“课程名称”、“成绩”。
Select 学生.学生编号,学生.姓名,课程.课程名称,选课成绩.成绩 From 学生,课程,选课成绩 Where 课程.课程编号=选课成绩.课程编号 and 学生.学生编号=选课成绩.学生编号;
询可以对多字段设定条件 • 运算符是组成条件的基本元素
条件的使用方法
• 在条件中的字段名用[ ]括起来; • 数据类型应与对应字段定义的数据类型相
一致; • 在准则中输入文本信息时,要用半角的双
引号括起来;(在2003环境下可以不用输入,系统自动生成) • 在条件中允许使用通配符; • 在条件中输入日期值用半角的# #括起来
➢ACCESS支持两种基本计算功能: 总计查询(选择查询的一种,利用现成的函数)
自定义计算查询(人为编辑进行计算的表达式, 这种计算是查询计算的难点)
总计查询
➢目的:在于记录的统计结果
➢定义:所谓总计查询就是在成组的记 录中完成一定计算的查询。
➢利用“合计” ∑按钮来激活ACCESS 所提供的一组函数
[order by <字段名>[asc/desc] ]
将结果按<字段名>进行排序,asc的意思是升序,desc是降序
SELECT语句示例
前面所讲的选择查询、交叉表查询、参数查询和操作查询均 可使用SQL语句实现。
例3.26 查找并显示”教师”表中的所有字段. SELECT * FROM 教师;
查询教师表中张姓教师,显示所有字段。 SELECT * FROM 教师 WHERE 姓名 LIKE "张*”;
SQL查询
用户使用SQL语句直接创建的查询
定义
SQL (Structure Query Language, 结构化查询语言)
是广泛应用的数据库查询语言,它包括数据定义、 查询、操纵和控制4种功能。 SQL查询就是用户使用SQL语句直接创建的一种 查询。其中,使用最频繁的就是SELECT语句, 它是SQL数据库语言的核心。
查询在功能上和筛选有些相似,可以对存储在一个 表和多个表中的数据进行查找,同时产生一个类似 于表的结果,这个结果可以重复查看。
• 筛选与查询的相似处:
都是从表中检索出关于某个记录的子集。
• 筛选与查询的不同之处:
①筛选只是一种查找操作,局限较多,而查询有 很多功能。
②筛选的结果只用于显示,不可以提供给查询作 为数据来源或打印输出。
练习1:查询并显示学生表中的姓名,性别,入校日期这 几个字段。
例3.2:查看每名学生选课成绩,并显示”学生编号”、” 姓名”、”课程名称”和”成绩”字段,所建查询名为 “学生选课成绩”。
选择查询的创建方法二
• 使用”设计”视图(可以创建无条件的查询,也
可以
) 创建有条件的查询 • 结构
字段列表区
设计网格区 每行的作用请参考P79表3.9
方法:新字段名称:新字段的表达式(可以手 工编辑,也可以使用生成器)
交叉表查询
• 含义:将来源于某个表中的字段进行 分组,一组列在数据表的左侧,一组 列在数据表的上部,然后在数据表行与 列的交叉处显示表中某个字段的各种 计算值。
• 注意事项:用户指定三种字段-行标题、 列标题、总计项(是在行与列的交叉 位置,只能指定一个总计项)
③查询可以从一个或多个表、一个或多个查询中 检索记录,筛选只能从一个打开的表中对记录进 行检索。
到底什么是查询?
• 查询是一种方法,用来从 已经存在的数据源中按照 一定的条件来抽取用户需 要的数据。
• 查询类型:
–选择 最常用的查询(一会要讲到的) –参数 条件不固定的查询 –交叉表 以行和列来统计数据的查询 –操作 主要是对记录进行编辑(添加,修改,删除) –SQL 以命令方式建立查询
– 级联更新、删除:当主表的内容更新、删除时, 相关表的内容也相应更新、删除。
查询的目的
建立数据库的目的并不是为了简单的存储数据, 在工作生活中,更重要的是对数据进行各种处理和 分析,从中提取所需的信息。 例: 对一个表进行某些信息的查询
对多个表同时进行某些信息的查询 在查询的同时可以进行计算、排序等
alter table 雇员 add 职务char(10); alter table 雇员 drop 备注; alter table 雇员 alter 雇员号 char(8);
• Drop :删除表、索引、视图 • 格式:Drop table <表名>
例3.21:删除雇员表 Drop table 雇员;
参数查询
• 实质:条件不固定的查询 • 分类:
单参数查询(指定一个条件) 查看某门课程的成绩单
多参数查询(指定多个条件) 查找指定系别指定职称的教师信息
• 方法:
– 在条件字段所对应的”准则”行输入提示信息.
查询条件
• 针对复杂的查询,可以设置条件 • 查询条件一定要在设计视图下使用 • 条件在输入时一定要按照规定的格式 • 一个字段可以使用一个或多个条件,一个查
进行分组统计,并增加新字段
例3.29计算各类职称的教师人数,并将计算字段命名为”各类职称人数“
SELECT 职称,count (教师编号) as 各类职称人数 FROM 教师 group by 职称;
对检索结果进行排序
例3.30计算每名学生的平均成绩,并按平均成绩降序显示。
SELECT 学生编号, avg(成绩) as 平均成绩 FROM 选课成绩 group by 学生 编号 order by avg(成绩) desc;
相关文档
最新文档