chap05 查询和视图
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用CREATE SQL VIEW命令创建视图
打开数据库,用命令来创建视图:
OPEN DATABASE 数据库名 CREATE SQL VIEW 视图文件名 AS SQL-SELECT
语句
20
视图的使用
利用视图更新源表数据
可在视图设计器的更新条件页面中进行如下设置 来实现对源表数据的更新:
set<fieldname>=<expression> 插入表记录命令:Insert into <tablename> (字段名列表)Values(值列表) 删除表记录命令:Delete From <tablename>
[where<条件表达式>]
22
5.3 SQL命令小结
非SQL命令
建表命令:Create 修改表命令:Modify Structure 修改表记录命令:Replace 插入表记录命令:Append 删除表记录命令:Delete
VFP程序设计教程
南京理工大学紫金学院 计算机系
Chapter05 查询和视图
2
5.1 查询的创建和使用
查询的概念 查询的创建
3
查询的概念
查询:就是向一个数据库发出检索信息的请求, 从中提取符合特定条件的记录。
查询文件:保存实现查询的SELECT-SQL命令的 文件。查询文件保存时,系统自动给出扩展 名.qpr;查询被运行后,系统还会生成一个编 译后的查询文件,扩展名为.qpx。
设置查询结果的排序依据
排序决定查询输出结果中记录显示的顺序。单击排序 依据 → 从选定字段框选中字段 → 选择升序或降序 → 单击添加。
7
查询的创建
设置查询结果的分组依据
分组是指将一组类似的记录压缩成一个结果记录,目 的是为了完成基于该组记录的计算,比如:求平均值、 总和、统计个数、其中的最大值、最小值等。
查询结果:通过运行查询文件得到的一个基于 表和视图的动态的数据集合。查询结果可以用 不同的形式来保存。查询中的数据是只读的。
查询的数据源:可以是一张或多张相关的自由 4表、数据库表、视图。
查询的创建
打开查询设计器:
方法1:从文件菜单或工具栏上单击新建 → 查询 → 新建文件 → 进入查询设计器
②From <表1>[ inner join 表2 On <联接 条件>] ;
说明:单表查询只需要表1;多表查询还需要 表2;表1和表2需要进行联接,inner join反映 联接类型,默认的是内联接;联接条件是通过 两个表之间的共有字段进行。
13
SELECT-SQL查询语句书写格式
③[where <筛选条件>]&&对表中原数据进 行筛选
从表框中选择想要更新的源表; 在字段名框中单击一个字段前关键列 和更新
列,使其作为主关键字和可更新字段; 将发送SQL更新复选框选中。
21
5.3 SQL命令小结
建表命令:crearte table<tablename> 修改表命令:alter table <tablename> 修改表记录命令:update <tablename>
P140-141,一、5,6,8,9; P141-144,二、1,2,3,4,5,6,7,8,9,
10,11 chap05补充练习
25
用于分组的字段不一定是选定输出的字段,但分组字 段不能是一个计算字段。可以用 满足条件… 来对分 组结果进行进一步筛选。
对查询结果的其他设置
可以排除查询结果中所有重复的行,并设置结果的记 录范围。
8
查询的创建
选择查询结果的输出类型
默认情况下,查询结果将输出在浏览窗口中,且其中 的数据是只读的。
5
查询的创建
定义查询的输出内容
单击字段选项卡 →从可用字段列表框中单击所需字 段(当输出的列不是直接来源于表中的字段时,单击 函数和表达式框边的… 按钮,打开表达式生成器, 构造出所需的表达式)→ 单击添加按钮→ 所需字段 自动出现在选定字段框中。
6
查询的创建
设置查询的筛选条件
筛选条件决定将哪些记录显示出来。在筛选框中构造 筛选条件表达式时,要注意在实例框中输入不同数据 类型时的格式:字符串可以不带引号(当与源表中的 字段名相同时才用引号);日期型数值要用{ }括起来; 逻辑型数据两侧要带 .号 ,如 .T. .F.
视图的特点 创建本地视图 视图的使用
17
视图的特点
视图是存在于数据库中的一个虚表,不以独立的 文件形式保存;
视图中的数据是可以更改的,它不仅具有查询的 功能,且可以把更新结果反映到源数据表中;
视图打开时,其基表自动打开,但视图关闭时, 其基表并不随之自动关闭;
视图的数据源可以是自由表、数据库表或另一个 视图。
默认的输出方式是浏览方式(Browse),也可 以按照其他方式输出。
[Into Cusror<临时表>]&&临时表存放在内存中, 使用完之后,自动消除;
[Into Table<基表>]&&基表存放在外存中; [To <输出重定向>]&&按照其他类型文件输出,
包括图表、屏幕、报表和标签。
16
5.2 视图的创建和使用
常用筛选条件,“=”非精确比较,查看右边字 符串是否包含在左边字符串中;“= =”精确比 较,左边和右边字符串必须完全一致才认为相 同;is null用在两个表的左联接和右联接中。 如果涉及到子查询必须出现在筛选条件的实例 中。
14
SELECT-SQL查询语句书写格式
④[order by <排序依据>]
23
5.3 SQL命令小结
SQL命令与非SQL命令区别
使用SQL命令无需事先打开表,而使用非SQL命令 须事先打开表;
所有非SQL命令中都没有表名; 所有SQL命令有筛选条件都用where语句,所有非
SQL命令有筛选条件都用for语句; SQL命令执行完之后,原先没有打开的表被打开
24
课后练习
①select [⑥ [top<n>或者<n persent> ] [distinct]] <输出表达式> ;
输出表达式包括表中原有字段或自行构造输出 表达式,“;”代表换行。
top<n>或者<n persent>指输出前几条记录或 前百分比的记录。
Distinct指输出不重复的记录。
12
SELECT-SQL查询语句书写格式
设置其他输出类型的方法: 打开查询菜单 → 选择查 询去向 → 在查询去向对话框中选择一种。一般多选 择表或报表。
运行查询
在查询设计器打开的状态下,单击常用工具栏上的 ! 按钮或从查询菜单中选择运行查询。
其他情况下,可从项目管理器中选中查询文件并单击 运行按钮,或从程序菜单中选择执行命令,或从命令 窗口中输入: DO 查询文件名。
创建参数化视图
在筛选页面的实例框中输入:?参数名→从查询菜单中选择视 图参数→在对话框中给出参数名并选择参数类型 → 确定 →保 存视图 → 给出视图名称 → 关闭视图设计器。
19
创建本地视图
用视图向导创建本地视图
从项目管理器中选择一个数据库 → 选择本地视 图→ 单击新建按钮 → 选择视图向导 →选取字段 → 关联表 → 记录操作范围 → 筛选记录 → 排序 记录 → 选择保存,一、1,2,3,4,7,10;
10
SQL命令创建查询
我们知道利用查询设计器构造的查询都会 生成相应的查询语句,其实可以在查询设 计器查看生成的SQL命令。
具体操作方法,“查询”菜单→“查看SQL” 或者右击查询设计器,选择“查看SQL”命 令
11
SQL查询命令书写格式
方法2:当所用到的数据表已在项目中时,从项目管理 器窗口中单击数据→查询→新建→新建查询→进入查 询设计器
方法3:从命令窗口中输入命令
create query 查询文件名 创建新查询 modify query 查询文件名 修改已存在的查询
添加查询所用数据源:
添加表或者视图之前,一定要先打开数据库表所在的 数据库sjk,否则出现对话框提示“不能访问选定表”。
除了select和from子句必须写在前面,其他子 句的前后排序不固定。
⑤ [group by <分组依据>] [having <满足 条件>]
只能按照表中原有字段进行分组,不能按照统 计字段进行分组;满足条件是在查询结果的基 础上进一步筛选。
15
SELECT-SQL查询语句书写格式
⑦[Into<输出重定向>]或[To <输出重定向>]
18
创建本地视图
用视图设计器创建本地视图
基本步骤:
从项目管理器中选择一个数据库 → 选择本地视图→ 单击新建 按钮 → 选择新视图 → 添加所需的数据表 → 在视图设计器中 按照与创建查询相同的步骤(2)~(6)建立视图→设置更 新条件 → 保存视图 → 给出视图名称 → 关闭视图设计器(可 以先运行一下看看)。
打开数据库,用命令来创建视图:
OPEN DATABASE 数据库名 CREATE SQL VIEW 视图文件名 AS SQL-SELECT
语句
20
视图的使用
利用视图更新源表数据
可在视图设计器的更新条件页面中进行如下设置 来实现对源表数据的更新:
set<fieldname>=<expression> 插入表记录命令:Insert into <tablename> (字段名列表)Values(值列表) 删除表记录命令:Delete From <tablename>
[where<条件表达式>]
22
5.3 SQL命令小结
非SQL命令
建表命令:Create 修改表命令:Modify Structure 修改表记录命令:Replace 插入表记录命令:Append 删除表记录命令:Delete
VFP程序设计教程
南京理工大学紫金学院 计算机系
Chapter05 查询和视图
2
5.1 查询的创建和使用
查询的概念 查询的创建
3
查询的概念
查询:就是向一个数据库发出检索信息的请求, 从中提取符合特定条件的记录。
查询文件:保存实现查询的SELECT-SQL命令的 文件。查询文件保存时,系统自动给出扩展 名.qpr;查询被运行后,系统还会生成一个编 译后的查询文件,扩展名为.qpx。
设置查询结果的排序依据
排序决定查询输出结果中记录显示的顺序。单击排序 依据 → 从选定字段框选中字段 → 选择升序或降序 → 单击添加。
7
查询的创建
设置查询结果的分组依据
分组是指将一组类似的记录压缩成一个结果记录,目 的是为了完成基于该组记录的计算,比如:求平均值、 总和、统计个数、其中的最大值、最小值等。
查询结果:通过运行查询文件得到的一个基于 表和视图的动态的数据集合。查询结果可以用 不同的形式来保存。查询中的数据是只读的。
查询的数据源:可以是一张或多张相关的自由 4表、数据库表、视图。
查询的创建
打开查询设计器:
方法1:从文件菜单或工具栏上单击新建 → 查询 → 新建文件 → 进入查询设计器
②From <表1>[ inner join 表2 On <联接 条件>] ;
说明:单表查询只需要表1;多表查询还需要 表2;表1和表2需要进行联接,inner join反映 联接类型,默认的是内联接;联接条件是通过 两个表之间的共有字段进行。
13
SELECT-SQL查询语句书写格式
③[where <筛选条件>]&&对表中原数据进 行筛选
从表框中选择想要更新的源表; 在字段名框中单击一个字段前关键列 和更新
列,使其作为主关键字和可更新字段; 将发送SQL更新复选框选中。
21
5.3 SQL命令小结
建表命令:crearte table<tablename> 修改表命令:alter table <tablename> 修改表记录命令:update <tablename>
P140-141,一、5,6,8,9; P141-144,二、1,2,3,4,5,6,7,8,9,
10,11 chap05补充练习
25
用于分组的字段不一定是选定输出的字段,但分组字 段不能是一个计算字段。可以用 满足条件… 来对分 组结果进行进一步筛选。
对查询结果的其他设置
可以排除查询结果中所有重复的行,并设置结果的记 录范围。
8
查询的创建
选择查询结果的输出类型
默认情况下,查询结果将输出在浏览窗口中,且其中 的数据是只读的。
5
查询的创建
定义查询的输出内容
单击字段选项卡 →从可用字段列表框中单击所需字 段(当输出的列不是直接来源于表中的字段时,单击 函数和表达式框边的… 按钮,打开表达式生成器, 构造出所需的表达式)→ 单击添加按钮→ 所需字段 自动出现在选定字段框中。
6
查询的创建
设置查询的筛选条件
筛选条件决定将哪些记录显示出来。在筛选框中构造 筛选条件表达式时,要注意在实例框中输入不同数据 类型时的格式:字符串可以不带引号(当与源表中的 字段名相同时才用引号);日期型数值要用{ }括起来; 逻辑型数据两侧要带 .号 ,如 .T. .F.
视图的特点 创建本地视图 视图的使用
17
视图的特点
视图是存在于数据库中的一个虚表,不以独立的 文件形式保存;
视图中的数据是可以更改的,它不仅具有查询的 功能,且可以把更新结果反映到源数据表中;
视图打开时,其基表自动打开,但视图关闭时, 其基表并不随之自动关闭;
视图的数据源可以是自由表、数据库表或另一个 视图。
默认的输出方式是浏览方式(Browse),也可 以按照其他方式输出。
[Into Cusror<临时表>]&&临时表存放在内存中, 使用完之后,自动消除;
[Into Table<基表>]&&基表存放在外存中; [To <输出重定向>]&&按照其他类型文件输出,
包括图表、屏幕、报表和标签。
16
5.2 视图的创建和使用
常用筛选条件,“=”非精确比较,查看右边字 符串是否包含在左边字符串中;“= =”精确比 较,左边和右边字符串必须完全一致才认为相 同;is null用在两个表的左联接和右联接中。 如果涉及到子查询必须出现在筛选条件的实例 中。
14
SELECT-SQL查询语句书写格式
④[order by <排序依据>]
23
5.3 SQL命令小结
SQL命令与非SQL命令区别
使用SQL命令无需事先打开表,而使用非SQL命令 须事先打开表;
所有非SQL命令中都没有表名; 所有SQL命令有筛选条件都用where语句,所有非
SQL命令有筛选条件都用for语句; SQL命令执行完之后,原先没有打开的表被打开
24
课后练习
①select [⑥ [top<n>或者<n persent> ] [distinct]] <输出表达式> ;
输出表达式包括表中原有字段或自行构造输出 表达式,“;”代表换行。
top<n>或者<n persent>指输出前几条记录或 前百分比的记录。
Distinct指输出不重复的记录。
12
SELECT-SQL查询语句书写格式
设置其他输出类型的方法: 打开查询菜单 → 选择查 询去向 → 在查询去向对话框中选择一种。一般多选 择表或报表。
运行查询
在查询设计器打开的状态下,单击常用工具栏上的 ! 按钮或从查询菜单中选择运行查询。
其他情况下,可从项目管理器中选中查询文件并单击 运行按钮,或从程序菜单中选择执行命令,或从命令 窗口中输入: DO 查询文件名。
创建参数化视图
在筛选页面的实例框中输入:?参数名→从查询菜单中选择视 图参数→在对话框中给出参数名并选择参数类型 → 确定 →保 存视图 → 给出视图名称 → 关闭视图设计器。
19
创建本地视图
用视图向导创建本地视图
从项目管理器中选择一个数据库 → 选择本地视 图→ 单击新建按钮 → 选择视图向导 →选取字段 → 关联表 → 记录操作范围 → 筛选记录 → 排序 记录 → 选择保存,一、1,2,3,4,7,10;
10
SQL命令创建查询
我们知道利用查询设计器构造的查询都会 生成相应的查询语句,其实可以在查询设 计器查看生成的SQL命令。
具体操作方法,“查询”菜单→“查看SQL” 或者右击查询设计器,选择“查看SQL”命 令
11
SQL查询命令书写格式
方法2:当所用到的数据表已在项目中时,从项目管理 器窗口中单击数据→查询→新建→新建查询→进入查 询设计器
方法3:从命令窗口中输入命令
create query 查询文件名 创建新查询 modify query 查询文件名 修改已存在的查询
添加查询所用数据源:
添加表或者视图之前,一定要先打开数据库表所在的 数据库sjk,否则出现对话框提示“不能访问选定表”。
除了select和from子句必须写在前面,其他子 句的前后排序不固定。
⑤ [group by <分组依据>] [having <满足 条件>]
只能按照表中原有字段进行分组,不能按照统 计字段进行分组;满足条件是在查询结果的基 础上进一步筛选。
15
SELECT-SQL查询语句书写格式
⑦[Into<输出重定向>]或[To <输出重定向>]
18
创建本地视图
用视图设计器创建本地视图
基本步骤:
从项目管理器中选择一个数据库 → 选择本地视图→ 单击新建 按钮 → 选择新视图 → 添加所需的数据表 → 在视图设计器中 按照与创建查询相同的步骤(2)~(6)建立视图→设置更 新条件 → 保存视图 → 给出视图名称 → 关闭视图设计器(可 以先运行一下看看)。