第四章 关系数据库标准语言SQL.docx
《第四章 关系数据库标准语言SQL.docx》由会员分享,可在线阅读,更多相关《第四章 关系数据库标准语言SQL.docx(27页珍藏版)》请在冰豆网上搜索。
![第四章 关系数据库标准语言SQL.docx](https://file1.bdocx.com/fileroot1/2023-4/16/6a6665b2-9128-4f38-9fe4-41d64d9da933/6a6665b2-9128-4f38-9fe4-41d64d9da9331.gif)
第四章关系数据库标准语言SQL
第四章关系数据库标准语言SQL
4.1SQL概述
SQL(StructureQueryLanguage,结构化查询语言)是关系型数据库的标准语言,目前已成为国际标准。
SQL命令可分为3组:
(1)数据定义语言(DDL):
包括数据库、表、索引和视图的创建、修改命令;
(2)数据操作语言(DML):
包括数据查询和数据操作命令;
(3)数据控制语言(DCL):
包括用户权限管理命令,在Access2010中不能使用。
4.1.1
SQL特点:
综合统一
高度非结构化
面向集合的操作方式
以同一语法结构提供多种使用方式
语言简单,易学易用
标准的SQL语言包括4部分内容:
数据定义——CREATE(建立),DROP(删除),ALTER(修改)
数据操纵——INSERT(插入),UPDATE(更新),DELETE(删除)
数据查询——用于检索数据SELECT(选择)
数据控制——GRANT(授权),REVOKE(回收权限)
4.1.2在Access中使用SQL
1.在SQL视图中使用
2.在VBA中嵌入使用
例如:
PrivatesubCommand1_Click()
DimSQLAsString
SQL="SELECT姓名,性别,专业编号
FROM学生信息;"
SetconDatabase=
Application.CurrentProject.Connection
conDatabase.ExecuteSQL
4.2数据定义
4.2.1模式的创建于删除
1.定义模式
[例2]CREATESCHEMAAUTHORIZATIONWANG;
<模式名>隐含为用户名WANG
⏹如果没有指定<模式名>,那么<模式名>隐含为<用户名>
⏹定义模式实际上定义了一个命名空间
⏹在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。
⏹在CREATESCHEMA中可以接受CREATETABLE,CREATEVIEW和GRANT子句。
CREATESCHEMA<模式名>AUTHORIZATION<用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
2.删除模式
⏹DROPSCHEMA<模式名>
CASCADE(级联)
删除模式的同时把该模式中所有的数据库对象全部删除
RESTRICT(限制)
如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。
当该模式中没有任何下属的对象时才能执行。
[例4]DROPSCHEMAZHANGCASCADE;
删除模式ZHANG
同时该模式中定义的表TAB1也被删除
4.2.2创建、修改与删除表
1.创建表
CREATETABLE<表名>
(<列名><数据类型>[<列级完整性约束条件>]
[,<列名><数据类型>[<列级完整性约束条件>]]…
[,<表级完整性约束条件>]);
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
[例5]建立“学生”表Student,学号是主码,姓名取值唯一。
CREATETABLEStudent
(SnoCHAR(9)PRIMARYKEY,/*列级完整性约束条件*/
SnameCHAR(20)UNIQUE,/*Sname取唯一值*/
SsexCHAR
(2),
SageSMALLINT,
SdeptCHAR(20)
);
[例7]建立一个“学生选课”表SC
CREATETABLESC
(SnoCHAR(9),
CnoCHAR(4),
GradeSMALLINT,
PRIMARYKEY(Sno,Cno),
/*主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGNKEY(Sno)REFERENCESStudent(Sno),
/*表级完整性约束条件,Sno是外码,被参照表是Student*/
FOREIGNKEY(Cno)REFERENCESCourse(Cno)
/*表级完整性约束条件,Cno是外码,被参照表是Course*/
);
2.修改表
ALTERTABLE<表名>
[ADD<新列名><数据类型>[完整性约束]]
[DROP<完整性约束名>]
[ALTERCOLUMN<列名><数据类型>];
[例8]向Student表增加“入学时间”列,其数据类型为日期型。
ALTERTABLEStudentADDS_entranceDATE;
▪不论基本表中原来是否已有数据,新增加的列一律为空值。
[例9]将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
ALTERTABLEStudentALTERCOLUMNSageINT;
[例10]增加课程名称必须取唯一值的约束条件。
ALTERTABLECourseADDUNIQUE(Cname);
3.删除表
DROPTABLE<表名>[RESTRICT|CASCADE];
⏹RESTRICT:
删除表是有限制的。
Ø欲删除的基本表不能被其他表的约束所引用
Ø如果存在依赖该表的对象,则此表不能被删除
⏹CASCADE:
删除该表没有限制。
Ø在删除基本表的同时,相关的依赖对象一起删除
DROPTABLE<表名>[RESTRICT|CASCADE];
⏹RESTRICT:
删除表是有限制的。
Ø欲删除的基本表不能被其他表的约束所引用
Ø如果存在依赖该表的对象,则此表不能被删除
⏹CASCADE:
删除该表没有限制。
Ø在删除基本表的同时,相关的依赖对象一起删除
[例12]若表上建有视图,选择RESTRICT时表不能删除
CREATEVIEWIS_Student
AS
SELECTSno,Sname,Sage
FROMStudent
WHERESdept='IS';
DROPTABLEStudentRESTRICT;
--ERROR:
cannotdroptableStudentbecauseotherobjectsdependonit
[例12]如果选择CASCADE时可以删除表,视图也自动被删除
DROPTABLEStudentCASCADE;
--NOTICE:
dropcascadestoviewIS_Student
SELECT*FROMIS_Student;
--ERROR:
relation"IS_Student"doesnotexist
4.3数据查询
v语句格式
SELECT[ALL|DISTINCT]<目标列表达式>
[,<目标列表达式>]…
FROM<表名或视图名>[,<表名或视图名>]…
[WHERE<条件表达式>]
[GROUPBY<列名1>[HAVING<条件表达式>]]
[ORDERBY<列名2>[ASC|DESC]];
4.3.1单表查询
以下所有内容参见PPT
第五章窗体
5.1窗体概述
一、窗体的主要功能和类型
▲窗体是应用程序与用户之间的接口,是创建数据库应用系统最基本的对象。
▲窗体就是程序运行时的Windows窗口,是人机交互的界面。
▲窗体是操作应用系统的界面。
▲在应用程序中,必定有一个主窗体,提供系统的各种功能。
▲用户就是通过选择不同的操作来实现数据维护、控制应用程序流程等人机交互的功能。
1、窗体的主要功能
▲控制应用程序的流程
▲操作数据
▲显示信息
▲交互信息
2、窗体的类型
根据数据记录的显示方式,Access提供了6种类型的窗体
单页窗体(纵栏式窗体)
多页窗体
连续窗体(表格式窗体)
弹出式窗体
主/子窗体
图表窗体
二、窗体视图
窗体视图是窗体在具有不同功能和应用范围下呈现的外观表现形式,不同的窗体视图具有不同的功能。
Access2010有6种窗体视图:
设计视图
是创建或修改窗体的是主要的视图形式。
在设计视图下可以对各种类型的窗体实现添加控件对象、修改控件属性、调整控件布局、编写控件事件代码等功能。
窗体视图
是窗体运行时的显示格式。
在窗体视图下,可以查看窗体运行后的界面;以及根据窗体的功能浏览、输入、修改窗体运行时的数据。
布局视图
是用于修改窗体最直观的视图,实际上是处于运行状态的窗体。
在布局视图中,可以调整窗体设计,包括:
调整窗体对象的尺寸、添加和删除控件、设置对象的属性等。
数据表视图
是以行和列组成的表格形式显示窗体中的数据。
数据透视表视图
用于数据的分析与统计。
数据透视图视图
将数据的分析和汇总结果以图形化的方式直观地显示出来。
三、“窗体设计工具”选项卡
“窗体设计工具”选项卡中包括3个子选项卡,分别是:
“设计”、“排列”和“格式”。
“设计”选项卡
主要用于设计窗体,即向窗体中添加各种对象、设置窗体主题、页眉/页脚以及切换窗体视图。
“排列”选项卡
主要用于设置窗体的布局。
“格式”选项卡
主要用于设置窗体中对象的格式。
5.2创建窗体
在Access中,可以使用3种方法创建窗体:
1自动创建窗体
自动创建窗体可以创建一个基于单表或查询的窗体。
自动创建窗体操作步骤简单,不需要设置太多的参数,是一种快速创建窗体的方法。
2利用窗体向导创建窗体
使用向导创建窗体与自动创建窗体不同,需要在创建的过程中:
选择数据源
选择显示字段
设置窗体布局
窗体的布局类型可以是:
纵栏式窗体
表格式窗体
数据表式窗体
两端对齐窗体
3使用设计视图创建窗体
创建窗体时,在某些情况下需要指定窗体的数据源。
窗体的数据源可以是:
表
查询
SQL语句
5.3利用设计视图创建窗体
一、窗体的设计视图
1、窗体的节
窗体的设计视图由若干部分组成,每一部分称为“节”。
所谓节,是用于设计窗体细节的区域。
窗体最多可拥有5个节,默认情况下,只有主体节。
主体
是每个窗体都必须包含的主体部分(其它部分是可选的)。
绝大多数的控件及信息都出现在主体节中,通常用于显示、编辑记录数据。
窗体页眉
位于窗体的顶部位置,主要用于添加窗体标题、窗体使用说明等信息。
页面页眉
用于设置窗体每页的顶部所显示的信息,包括:
标题、列标题、日期或页码等。
页面页眉仅当窗体打印时才显示,且显示在每一打印页的上方。
页面页脚
用于设置窗体每页的底部所显示的信息,包括:
页总汇、日期或页码等。
页面页脚仅当窗体打印时才显示,且显示在每一打印页的下方。
窗体页脚
位于窗体的底部,其功能与窗体页眉基本相同,一般用于显示对记录的操作说明、设置命令按钮等。
☆所有窗体都必须要有主体节,其它节均可通过设置确定有或无。
☆由于窗体设计主要应用于系统与用户的交互接口,所以通常在窗体设计时很少考虑页面页眉和页面页脚的设计。
2、控件
控件是放置在窗体中的图形对象,主要用于输入数据、显示数据、执行操作等。
打开窗体的设计视图后,可以从【窗体设计工具】/【设计】选项卡中的【控件】组中选择控件,并添加到窗体中。
3、窗体的数据源
使用窗体对表的数据进行操作时,需要为窗体添加数据源。
二、控件
控件是构成窗体的基本元素,用以实现在窗体中对数据的输入、查看、修改以及对数据库中各种对象的操作。
不同的控件,其功能各不相同。
1、控件的属性
控件的属性是用来描述控件的特征或状态
每个属性用属性名来标识
不同类型的控件有其不同的属性;相同类型的控件,其属性值也有所不同
2、控件的类型
根据控件的用途及其与数据源的关系,可以将控件分为3类:
绑定型控件
☆绑定型控件通常有其数据源,控件中的数据来自于数据源(表或查询中的字段),并且对控件中数据的修改将返回到与其绑定的数据源中。
☆绑定型控件主要用于显示、输入及更新数据表(或查询)中的字段。
☆绑定型控件主要有文本框、列表框、组合框等。
非绑定型控件
☆非绑定型控件没有数据源,不与任何数据绑定。
☆非绑定型控件主要用于显示提示信息、线条、矩形及图像等。
☆非绑定型控件主要有标签、命令按钮、图像、直线、分页符等。
计算型控件
☆计算型控件以表达式作为其数据源
☆表达式可以使用窗体或报表中数据源的字段值,也可以是其它控件中的数据。
5.4常见控件的创建及其属性设置
一、向窗体中添加控件
向窗体中添加控件有3种方法:
利用窗体【工具箱】创建
利用控件向导创建
利用数据源创建
1、标签(Label)
标签是一个非绑定型控件,其主要功能是在窗体、报表中显示说明性文字。
在窗体、报表运行时,不能被用户直接修改。
有两种标签:
独立标签
即与其它控件没有关联的标签;主要用于添加说明性文字。
关联标签
即链接到其它控件上的标签;用于对相关控件显示数据的说明。
默认情况下,当添加文本框、列表框和组合框时系统将在控件的左侧加上一个关联标签;且随着相应控件的删除而删除。
2、文本框(Text)
文本框用于对数据进行显示、输入、修改等操作。
文本框可以是一个绑定型文本框(与某个字段关联),也可以是一个非绑定型文本框(用于显示计算结果或接收用户输入的数据)。
3、组合框(CombBox)和列表框(ListBox)
列表框(ListBox)用于显示项目列表,用户可从中选择一个或多个项目。
如果项目总数超过了可显示的项目数,系统会自动加上滚动条。
组合框(ComboBox)将文本框和列表框的功能结合在一起,用户既可以在列表中选择某一项,也可以在编辑区域中直接输入文本内容。
列表框和组合框都是一个绑定型控件,均可显示多列数据。
组合框、列表框在属性的设置及使用上基本相同,都是一个绑定型控件。
它们的区别在于:
▲列表框只能通过选择列表中的数据进行数据的输入,而不能直接通过键盘输入数据;组合框既可以通过列表选择输入数据,也可以直接输入数据。
限于列表属性:
LimitToList
▲窗体运行时组合框只显示显示其中的一行;列表框显示其多行。
列表框和组合框有以下两种创建方法:
1.使用控件向导创建
2.手工方式创建
4、命令按钮(CommandButton)
命令按钮是一个非绑定型控件,其主要功能是用于接收用户操作命令、控制程序流程,通过它使系统进行特定的操作。
命令按钮的创建方法有两种:
◆使用控件向导创建命令按钮
◆手工方式创建命令按钮
5、选项按钮(Option)、复选框(CheckBox)和切换按钮(Toggle)
选项按钮、复选框和切换按钮都表示“是/否”型数据的值。
6、选项组(Frame)
选项组(Frame)是由一个组框和一组选项按钮、复选框或切换按钮组成,其作用是对这些控件进行分组,为用户提供必要的选项。
在选项组中个选项之间是互斥的,一次只能选择一个选项。
选项组控件是一个绑定控件,它可与一个是/否型或数字型字段相绑定。
选项组中的选项一次只能选择一个。
可将选项组中的控件与一个字段绑定。
7、图像(Image)
▲图像控件主要用于放置静态图片,美化窗体。
不能对窗体上的图像进行编辑。
8、直线(Line)和矩形(Box)
直线和矩形都是非绑定型控件,其主要作用是对其它控件进行分隔和组织,以增强窗体的可读性。
直线和矩形的主要属性
水平线的Hight属性为0;垂直线的Width属性为0;斜线的倾斜度由此两属性共同确定。
9、非绑定对象框(OLEUnbound)和绑定对象框(OLEBound)
1)非绑定对象控件用于在窗体显示非绑定的OLE对象,即其他应用程序对象。
非绑定对象控件不与任何一个表或字段相联接。
2)绑定对象框用于在窗体显示OLE对象字段对象的内容。
绑定对象控件可存储嵌入和链接的OLE对象。
10、分页符(PageBreak)
▲分页符用于在多页窗体的页间分页。
分页符控件属于非绑定型控件。
11、选项卡
选项卡控件用于在窗体上创建一个多页的选项卡。
通过单击选项卡对应的标签,可进行页面切换。
12、ActiveX控件
▲ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼。
▲ActiveX控件可由不同语言的开发工具开发。
▲ActiveX控件可以被大多数应用程序再使用。
13、超链接控件
▲在窗体上创建一个超链接
14、图表控件
▲在窗体上创建一个基于数据表的图表
三.创建主/子窗体
子窗体是包含在另一个窗体中的窗体,基本窗体称为主窗体,窗体中的窗体称为子窗体。
主/子窗体一般用来显示具有一对多关系的表或查询中的数据,并保持同步,主窗体显示一对多关系中“一”方数据表中的数据,子窗体显示一对多关系中“多”方数据表中与主窗体中当前记录相关的记录。
若使主窗体和子窗体同步,则需要满足下列两项条件之一:
◆已经为选定的两个表定义了一对多关系。
◆主窗体的数据源表存在主关键字字段,而子窗体的数据源表又包含与主键同名,并且数据类型和字段长度相同或兼容的字段。
主/子窗体的创建方法:
1.使用向导
2.先使用设计视图创建主窗体,然后使用子窗体向导创建子窗体
3.创建子窗体并将其添加到已有的窗体中
当【工具箱】工具栏中的【控件向导】按钮已弹起时,单击【子窗体/子报表】按钮在主窗体中拖出一个矩形,形成一个子窗体控件。
可设置该控件的以下属性:
◆源对象(SourceObject):
输入作为子窗体数据源的窗体名称。
◆链接子字段(LinkChildFields):
输入子窗体中一个链接字段的名称。
◆链接主字段(LinkMasterFields):
输入主窗体中一个链接字段的名称。
第六章报表
6.1报表概述
一、报表的概念
报表主要用于对数据库的数据进行分组、计算、汇总和打印输出,它将根据指定规则打印输出格式化的数据信息。
Access的报表提供了以下功能:
●可以对数据进行分组、汇总
●可以包含子窗体、子报表
●可以按特殊设计版面
●可以输出图表和图形
●能打印所有表达式
二、报表的类型
纵栏式报表
以垂直方式在每一页中主体节区显示一条或多条记录。
用来记录数据的字段标题信息与字段记录数据一起被安排在每页的主体节区域内同时显示。
纵栏式报表可以安排显示一条记录的区域,也可同时显示一对多关系的“多”端的多条记录的区域,甚至包括合计。
表格式报表
以整齐的行、列形式显示记录数据。
通常一行显示一条记录、一页显示多行记录。
表格式报表的记录数据的字段信息不是被安排在每页的主体节,而是安排在页面页眉的区域内显示(即各记录共用一个字段标题)。
图表报表
数据以图表的形式直观地打印出来。
标签报表
是一种特殊类型的报表。
主要用于打印书签、名片、信封、邀请函等特殊用途。
三、报表的视图
设计视图
用于创建和编辑报表的结构。
布局视图
报表视图
用于查看报表的字体、字号和常规布局等版面设置
打印预览视图
用于查看报表和每一页上显示的数据。
报表的各个视图之间可以互相切换。
四、报表的结构
报表主要由以下七部分组成:
报表页眉
页面页眉
主体
页面页脚
报表页脚
组页眉
组页脚
每一个部分称为“节”。
其中的主体节是必须具有的,其余各节可以根据需要随时增删(点击鼠标右键方法)。
1、报表页眉
这是整个报表的页眉,用于显示整个报表的标题、说明性文字、图形、制作时间或制作单位等信息。
每个报表只有一个页眉,它的内容打印在报表的首页上。
2、页面页眉
页面页眉的内容打印在每页的顶端(即每页均打印一次)。
如果报表页眉和页面页眉共同存在于首页,则页面页眉的内容在报表页眉的下方。
3、主体
报表的主体用于处理每一条记录(即每条记录均打印一次),其中的每个值都要被打印。
主体是报表内容的主体区域,通常含有计算字段。
4、页面页脚
页面页脚打印在每页的底部,用于显示本页的汇总说明。
页面页脚通常包含页码,通过一个文本框控件显示页码,文本框的ControlSource属性值为一个表达式,即:
="第"&[Page]&"页"
[Page]为页码变量。
5、报表页脚
报表页脚用于打印报表末端,通常使用它显示整个报表的计算汇总、日期和说明性文本等。
6、组页眉
分组后在报表每组头部打印输出,同一组的记录都会在主体节中显示,它主要定义分组报表,输出每一组的标题。
7、组页脚
分组后在报表的每页底部打印输出,主要用来输出每一组的统计计算标题。
当需要在报表中进行分类汇总统计时,即需要设置组页眉和组页脚,这是分组汇总的依据。
组页眉每组打印一次,且打印在每组数据的开始端;组页脚打印在每组数据的末端。
五、窗体与报表的比较
▲相同点
两者均可以有其数据源,其数据源可以是表、查询或SQL语句,数据源均存储于本地数据库中。
两者的结构、创建方法均有相似之处。
▲不同点
窗体的主要作用是建立用户与系统交互的界面,对数据库中的数据进行访问时除可以显示数据外,还可以输入数据、修改数据、删除数据等操作。
报表主要用于数据库数据的打印输出,并且可以对数据库中的数据进行分组、计算、汇总等操作。
6.2创建报表
在Access中,可以使用5种方法创建报表:
1快速创建报表
2创建标签报表
3创建空报表
4利用报表向导创建报表
5使用设计视图创建报表
一、使用“快速创建报表”创建报表
使用“自动创建报表”,可以选择记录源和报表格式(包括纵栏式或表格式)来创建报表。
该报表能够显示表中的所有字段和记录。
二、创建空报表
创建空报表是指创建一个空白报表,然后将选定的数据字段添加到报表中所创建的报表。
注意:
数据源只能是表。
三、创建标签报表
标签报表是一种特殊类型的报表。
利用标签向导可以快捷地创建标签。
四、使用报表向导创建报表
在使用报表向导创建报表时,需要选择在报表中出现的信息(包括报表标题、显示字段等),并从多种格式中选择一种格式以确定报表的外观。
五、创建图表报表
图表报表没有向导方法,只能使用图表控件向导创建。
六、使用报表设计视图创建报表
有些报表是无法通过报表向导来创建的,必须使用报表设计视图来完成。
报表的数据源可以是单个的表或查询。
如果报表的数据源涉及到多表,则必须查询。
6.3创建高级报表
一、子报表
子报表是出现在另一个报表内部的报表,包含子报表的报表称为主报表。
▲主报表中包含的是一对多关系中的“一”,而子报表显示“多”的相关记录。
▲在合并报表时,两个报表中必须有一个作为主报表。
▲主报表可以是绑定的,也可以是未绑定的。
绑定的主报表是基于数据表、查询或SQL语句等数据源,非绑定的主报表不基于数据源,可用作容纳要合并的子报表的容器。