数据库中视图和查询的比较
chap05 查询和视图
![chap05 查询和视图](https://img.taocdn.com/s3/m/6318c9d2a8956bec0875e377.png)
打开数据库,用命令来创建视图:
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
查询的创建
设置查询结果的分组依据
数据库 PPT6第六章
![数据库 PPT6第六章](https://img.taocdn.com/s3/m/cc9c95e9bb4cf7ec4afed0d9.png)
计器中时,会自动弹出【连接条件】对话框,用于设置数据表之间
的关联。本例中,在【连接条件】对话框的左右两个下拉列表中分
别选择“Student.学号”和“Score.学号”两个字段,如图6.11所 示。这一步也可以在【查询设计器】对话框的【连接】选项卡中完
成。
上一页 下一页 返回
6.2
查询
步骤4:字段选取。在【查询设计器】对话框的【字段】选项
“学号”,单击
按钮将其移入【选定字段】列表框,用同样的
方法将“姓名”、“班级”、“性别”、“年龄”移入【选定字段】 列表框;完成后单击【下一步】按钮,如图6.3所示。
步骤4:筛选记录,输入查询的筛选条件。在【查询向导】对
筛选记录”中,根据要求在【字段】下拉列表中选
话框的“步骤3
择“STUDENT.系别”,在【操作符】下拉列表中选择“等于”,在 【值】文本框中输入“计算机”;完成后单击【下一步】按钮,如 图6.4所示。
的“步骤2
号”,拖放到【坐标轴】文本框,选择“成绩”列表项拖放到【数 据系列】列表框,单击【下一步】按钮,如图6.18所示。
步骤4:选择图形样式。在【图形向导】对话框的“步骤3
选
择图形样式”中,选择需要的图形样式,本例中选择“三维柱形图”
(上排右一),如图6.19所示。
上一页 下一页 返回
6.2
建立查询后,可以单击【程序】菜单中的【运行】命令,在打
开的【运行】对话框中选择需要运行的查询文件:JSJA.QPR,如图 6.8所示。单击运行按钮“”执行查询,结果如图6.9所示。
上一页 下一页 返回
6.2
查询
2. 使用查询设计器建立查询 【例6.11】 查询学生陈腾云各门功课的成绩,显示学号、姓
05_查询与视图
![05_查询与视图](https://img.taocdn.com/s3/m/b75a3bc250e2524de5187e58.png)
6.1.4 运行查询
DO <查询文件名> 注:命令执行方式中,必须给出查询文件的扩展名.qpr。 设计查询的目的不只是为了完成一种查询功能,在查询设 计器中可根据需要为查询输出定位查询去向。选择“查询” 菜单下的“查询去向”,或在“查询设计器”工具栏中单 击“查询去向”按钮,可打开“查询去向”对话框。 (1)浏览(2)临时表(3)表(4)图形 打印机: (5)屏幕(6)报表(7)标签
6.2.5 使用视图
2、使用视图 (1)在“项目管理器”中“浏览”视图
先选择一个数据库,接着再选择视图名,然后单击“浏览”,则在“浏览” 窗口中显示视图,并可对视图进行操作。 (2)用命令使用视图 ①先用OPEN DATABASE打开数据库,再用USE打开视图,最后用BROWSE 浏览。 ②打开数据库后,用SQL的SELECT或UPDATE直接操作视图。 对视图的更新是否反映在了基本表里,则取决于在建立视图时是否在“更新 条件”中选择了“发送SQL更新”。 总的来说,视图一经建立就基本可以像基本表一样使用,适用于基本表的命 令基本都可用于视图,比如建立索引,此索引当然是临时的,视图一关闭, 索引自动删除;多工作区时也可以建立联系等。但视图不可用MODIFY SREUCTURE命令修改结构。因为视图毕竟不是独立存在的基本表,它是由 基本表派生出来的,只能修改视图的定义。
3、检查更新合法性
在允许更新之前,Visual FoxPro先检查远程基本表中的指定字段,看看它们在记录被提取 到视图中后没有改变,如果数据源中的这些记录被修改,就不允许进行更新操作。
“SQL WHERE子句包括”框中的这些选项决定哪些字段包含在UPDATE或DELETE语句
的WHERE子句中,Visual FoxPro正是利用这些语句将在视图中修改或删除的记录发送到
VF课件
![VF课件](https://img.taocdn.com/s3/m/6762815d804d2b160b4ec049.png)
黑龙江省黑河学院计算机系
6.1.2 视图
视图其实是从数据库表或视图中导出的“ 视图其实是从数据库表或视图中导出的“表”。 与其他表不同, 与其他表不同,视图中的数据还是存储在原来的 数据库表或视图中。 数据库表或视图中。因此可以把视图看做是一个 虚表” 尽管它是一个虚拟表, “虚表”,尽管它是一个虚拟表,但是在数据浏 查询和更新方面却有着广泛的应用。 览、查询和更新方面却有着广泛的应用。 视图是操作表的一种手段,通过视图可以查询表, 视图是操作表的一种手段,通过视图可以查询表, 也可以更新表。视图是数据库中特有的, 也可以更新表。视图是数据库中特有的,它依赖 于某一数据库而存在, 于某一数据库而存在,只有打开与视图相关的数 据库才能创建和使用视图。 据库才能创建和使用视图。
黑龙江省黑河学院计算机系
2、用“查询向导”创建查询 查询向导”
(1)打开“查询向导”。 打开“查询向导” 向导选取” (2)在“向导选取”对话框中选择要使用的向导类 型。 单击“确定”按钮,弹出“查询向导”窗口, (3)单击“确定”按钮,弹出“查询向导”窗口, 选择查询时所用的字段,单击“下一步”按钮。 选择查询时所用的字段,单击“下一步”按钮。 查询向导步骤3 筛选记录” (4)在“查询向导步骤3-筛选记录”中设置记录 筛选条件,单击“下一步”按钮。 筛选条件,单击“下一步”按钮。 查询向导步骤4 排序记录” (5)在“查询向导步骤4-排序记录”中设置排序 的字段和排序方式,单击“下一步”按钮。 的字段和排序方式,单击“下一步”按钮。 查询向导步骤5 完成”中选择“ (6)在“查询向导步骤5-完成”中选择“保存查 单击“完成”按钮, 另存为” 询”,单击“完成”按钮,在“另存为”对话框 中输入查询名称,保存查询。 中输入查询名称,保存查询。
视图和查询的区别
![视图和查询的区别](https://img.taocdn.com/s3/m/cc1ff50202020740be1e9b44.png)
1:什么是视图2:视图和查询的区别3:视图的优点4:如何创建和管理视图5:如何通过视图修改基本表的数据6:如何通过视图实现数据的安全性A:什么是视图:视图(view):从一个或几个基本表中根据用户需要而做成一个虚表1:视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据2:视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户B:视图与查询的区别:视图和查询都是用由sql语句组成,这是他们相同的地方,但是视图和查询有着本质区别: 它们的区别在于:1:存储上的区别:视图存储为数据库设计的一部分,而查询则不是.2:更新限制的要求不一样要注意:因为视图来自于表,所以通过视图可以间接对表进行更新,我们也可以通过update语句对表进行更新,但是对视图和查询更新限制是不同的,以下我们会知道虽然通过视图可以间接更新表但是有很多限制.3:排序结果:通过sql语句,可以对一个表进行排序,而视图则不行.比如:创建一个含有order by子句的视图,看一下可以成功吗?C:视图的优点:为什么有了表还要引入视图呢?这是因为视图具有以下几个优点:1:能分割数据,简化观点可以通过select和where来定义视图,从而可以分割数据基表中某些对于用户不关心的数据,使用户把注意力集中到所关心的数据列.进一步简化浏览数据工作.2:为数据提供一定的逻辑独立性如果为某一个基表定义一个视图,即使以后基本表的内容的发生改变了也不会影响“视图定义”所得到的数据3:提供自动的安全保护功能视图能像基本表一样授予或撤消访问许可权.4:视图可以间接对表进行更新,因此视图的更新就是表的更新D:视图的创建和管理视图的创建1:通过sql语句格式:create view 视图名 as select 语句试一试:分别创建关于一个表或多个表的视图[因为视图可以来自于多表]2:通过企业管理器说明:1:在完成视图的创立之后,就可以像使用基本表一样来使用视图2:在创建视图时,并非所有的select子查询都可用如:compute和compute by,order by[除非与top一起连用]3:但在查询时,依然都可以用在创建时禁用的select子查询4:在视图创建时,必须为没有标题列指定标题[思考:能否不用select语句来创建一个视图]视图的删除:1:通过sql语句:drop view 视图名2:通过企业管理器说明:与删除表不同的是,删除视图后只是删除了视图了定义,并没有删除表中的数据.[查看相关性]修改视图的定义1:通过企业管理器2:通过sql语句:格式:alter view 视图名 as 新的select语句浏览视图信息 sp_helptext 视图名 [查看视图创建的语句]E:如何通过视图修改基本表的数据.1:在视图上使用insert语句通过视图插入数据与直接在表中插入数据一样,但视图毕竟不是基本表.因此在进行数据插入时还是有一定的限制1:如果视图上没有包括基本表中属性为not null[不能为空]的列,那么插入操作会因为那些列是null值而失败.2:如果某些列因为某些规则或约束的限制而不能直接接受从视图插入的列时,插入会失败3:如果在视图中包含了使用统计函数的结果,或是包含计算列,则插入操作会失败4:不能在使用了distinct语句的视图中插入值5:不能在使用了group by语句的视图中插入值2:使用update更新视图中的数据1:更新视图与更新表格一样,但是在视图中使用了多个基本表连接的情况下,每次更新操作只能更新来自基本表的一个数据列例如:创建以下视图:create view del asselect 职工号,姓名,部门名称,负责人 from work1,部门where work1.部门编号=部门.部门编号如果再执行下面的语句时:update del set 职工号=\'001\',部门名称=\'wenda\' where 职工号=\'01\'[出现错误]只能够改成:update del set 职工号=\'001\' where 职工号=\'01\'update del set 部门名称=\'wenda\' where 职工号=\'01\' 2:不能在使用了distinct语句的视图中更新值3:不能在使用了group by语句的视图中更新值3:使用delete删除视图中数据.通过视图删除数据最终体现为从基本表中删除数据格式:delete 视图名 [where 条件]说明:当视图由两个以上的基表构成时,不允许删除视图的数据例如:建一个视图kkcreate view kk asselect 职工号,姓名,性别,部门名称 from work1,部门 where work1.部门编号=部门.部门编号 [试着去删除]使用with check option的视图如果不了解视图定义内容,则常常会发生向视图中输入不符合视图定义的数据的情况.比如:create view xm asselect * from work where 性别=\'男\'完全可以插入insert xm values(\'001\',\'女\',23,\'2400\'....)尽管从意义上来说是不合理的,但是上述语句是正确的.为了防止这种情况的发生,可以使用with check option子句来对插入的或更改的数据进行限制.比如:create view xm asselect * from work where 性别=\'男\' with check option使用schemabinding的视图[使用绑定到构架]我们知道视图是依赖于表,如果在一个表中创建一个视图,今后如果这个表被删除了,则这个视图将不可再用了.为了防止用户删除一个有视图在引用的表,可以在创建视图的时候加上schemabinding关键字.比如:create view 基本工资 with SCHEMABINDINGas select 姓名,性别,基本工资 from dbo.work说明:1:不能使用“*”来创建此类型的视图2:创建此类型的视图时,一定要加上dbo.表名.3:如果在某个表中定义了此类视图,则用户将不能对表的结构进行修改,否则会删除这些绑定4:如果用户对表的结构进行列改名,则会删除绑定而且视图不可用.5:如果用户对表的结构进行列的类型或者大小修改,则会删除绑定但视图可用,此时用户可以删除视图所引用的表.使用with encryption对视图进行加密为了保护创建视图定义的原代码,可以对视图进行加密.比如:create view kk with encryptionas select * from work where 职称=\'经理\'用sp_helptext来查看一下.或用企业管理器查看一下.说明:如果应用此项用户将无法设计视图F:使用视图加强数据的安全一般通过使用视图共有三种途径加强数据的安全性A:对不同用户授予不同的使用权.B:通过使用select子句限制用户对某些底层基表的列的访问C:通过使用where子句限制用户对某些底层基表的行的访问对不同用户授予不同的权限。
数据库的查询和视图
![数据库的查询和视图](https://img.taocdn.com/s3/m/aa8910e9aeaad1f346933f64.png)
4.替换查询结果中的数据
在对表进行查询时,有时希望对所查询的某些列得到的是一种概念而不是具 体的数据。 例如,查询XSB表的总学分,希望知道的是学习的总体情况,这时,就可以用 等级来替换总学分的具体数字。 要替换查询结果中的数据,则要使用查询中的CASE表达式,格式为 CASE WHEN 条件1 THEN 表达式1 WHEN 条件2 THEN 表达式2 …… ELSE 表达式 END
T1 T2 T1 T2 T1 T2
1
A
6
F
2
B
表4.5 B表
T3 1 T4 3 T5 M T3 2 T4 0 T5 N
表4.6 A B F
T1
1 2
T2
A B
T3
1 2
T4
3 0
T5
M NBiblioteka 数据库应用中最常用的是“自然连接”。进行自然连接运算要求两个表有共同 属性(列),自然连接运算的结果表是在参与操作的两个表的共同属性上进行等值 连接后,再去除重复的属性后所得的新表。自然连接运算记为 ,其中,R和S是参与 运算的两个表。 例如,若表A和B分别如表4.7和表4.8所示,则 如表4.9所示。 表4.7 A表
计算机二级 第4章 查询与视图
![计算机二级 第4章 查询与视图](https://img.taocdn.com/s3/m/74ef69f9c8d376eeaeaa31db.png)
5.1 查询
5.1.1 查询的概念
查询是一个预先定义好的SQL SELECT语句 在 语句,在 查询是一个预先定义好的 语句 不同场合可以直接或反复使用,从而提高效率 从而提高效率。 不同场合可以直接或反复使用 从而提高效率。 查询是从指定的表或视图中提取满足条件的记 录,然后按照想要得到的输出类型定向输出查 询结果 查询是以扩展名为QPR的文件保存在磁盘上, 的文件保存在磁盘上, 查询是以扩展名为 的文件保存在磁盘上 是一个文本文件,主体是SELECT语句。 语句。 是一个文本文件,主体是 语句
查询设计器的结果是将查询以.QPR为扩展名的 文件形式保存在磁盘中;而视图设计完后,在 磁盘上找不到类似的文件,视图的结果保存在 数据库中; 由于视图是可以用于更新的,所以它有更新属 性需要设置,为此在视图设计器中多了一个 “更新条件”选项卡; 在视图设计器中没有“查询去向”的问题。
5.2.3 远程视图与连接
第4章 查询与视图
查询和视图有很多类似之外,创建视图与 查询和视图有很多类似之外, 创建查询的步骤也非常相似。 创建查询的步骤也非常相似。视图兼有表 和查询的特点, 和查询的特点,查询可以根据表或视图定 义,所以查询和视图又有很多交叉的概念 和作用。查询和视图都是为快速、 和作用。查询和视图都是为快速、方便地 使用数据库中的数据的一种方法。 使用数据库中的数据的一种方法。
为了建立远程视图,必须首先建立连接远程数 据库的“连接”,其方法如下:
可以用CREATE CONNECTION命令打开“连接设 计器”,或完全用命令方式建立连接; 可以选择“菜单”—“新建”,打开“新建”对话左 珏,然后选择“连接”并单击“新建文件”打开连 接设计器连接; 可以在项目管理器的“数据”选项卡下将要建立连 接的数据库分支展开,并选择“连接”,然后单击 “新建”命令按钮打开连接设计器。
数据库__VFP6第4章查询与视图
![数据库__VFP6第4章查询与视图](https://img.taocdn.com/s3/m/89398f04e87101f69e31957a.png)
图4-15 查询设计器界面
(3)查询参数的设置 第一节 查询 ①确定输出的字段。在图4-15中的“可用字段”列表框中显示了上部窗 口中表的所有字段名称,通过“添加”或“全部添加”将“可用字段” 中所选择的字段移到“选定字段”列表框中。在本例中,B_xsxx表中除 szbj、xsjg、xspy等三个字段不选外其余全选,B_bjxx表中选择bjmc, B_dqxx表中选择dqmc ②设置联接条件 ③查询结果的排序。如果需要对查询的结果按一定的顺序排列,则可以 选择“排序依据”选项卡,以决定排序的依据。该选项卡如图4-16所示 。
第一节
图4-2 查询向导步骤之2 查询 查询向导步骤之2
第一节 查询 (4)步骤2:关联表
通常查询向导会自动查找两个表之间相匹配的字段 并显示在第二步的两个列表框中, 并显示在第二步的两个列表框中 , 如果这种关系正是 所需要的, 可以直接单击“ 添加” 按钮。 所需要的 , 可以直接单击 “ 添加 ” 按钮 。 如果在表之 间没有相匹配的字段, 就需要手工建立, 间没有相匹配的字段 , 就需要手工建立 , 只要分别在 两个下拉列表框中选取相应的字段即可。 两个下拉列表框中选取相应的字段即可。
图4-16 排序依据选项卡
第一节 查询 ④查询条件的设置。在“筛选”选项卡中可以设定查询的
条件,例如可以查询所有男同学的情况。“筛选”选项卡 如图4-17。
图4-17 筛选选项卡
⑤其他查询参数的设置 查询参数主要包括以上四项,其 他还有“分组依据”和“杂项”两个选项。
(4)查询结果的去向 第一节 查询
在查询设计的过程中,为了查看查询的结果, 可以随时单击“运行”按钮,VFP就会在屏幕上显 示查询的结果记录。在默认情况下,查询的结果直 接输出到屏幕上而且是不保存的。如果想改变查询 结果的去向,可以单击“查询设计器”工具栏中的 “查询去向”按钮,在图4-18所示的查询去向对话 框中选择不同的查询去向。
查询和视图
![查询和视图](https://img.taocdn.com/s3/m/8a151b47336c1eb91a375d69.png)
选项有下述几种表示形式:
◆可以是From <数据表文件>中的字段名或者由 字段名、常量、函数、运算符组成的有效表达式。 Avg〈字段名〉:求一列数据的平均值。 Count(*):输出查询的行数(记录的条数)。 Min〈字段名〉:输出列中的最小值。 Max〈字段名〉:输出列中的最大值。 Sum〈字段名〉:输出一列数据的和。 进行各种统计和运算
第八章 查询和视图
查询和视图是Visual Foxpro实现对一个数据表或多个 相关联的数据表进行数据检索的两个重要工具。 8.1 查询 一、查询的基本概念 查询就是根据用户给定的条件,从指定的一个表或多个 相关联的表中获取数据的一个操作过程。 获取数据:对数据表进行浏览、筛选、排序、检索、统 计,形成不同类型的文件,产生结果多样化的数据资源。 多个相关联的表:表与表之间有公共字段(两表都具有 的共同字段)。 建立查询的方法有三种: ◆使用Select-Sql语句建立查询 ◆使用查询设计器建立查询 ◆使用查询向导建立查询
Байду номын сангаас
例:查询学生档案表中年龄大于99212班的所有学生的各项信 息。 Select * From 学生档案表 Where 年龄>All(Select 年龄 From 学生档案表 Where 班级="99212") 或 Select * From 学生档案表 Where 年龄>(Select max(年龄) From 学生档案表 Where 班级="99212") 问:若把该题中的ALL改为ANY,是何意思?
VFP第五章 查询与视图
![VFP第五章 查询与视图](https://img.taocdn.com/s3/m/90df506925c52cc58bd6bea6.png)
利用视图向导创建本地视图
用本地视图向导创建本地视图,可采用以下方法:
方法一:“工具”菜单向导全部本地视图向导
方法二:“文件”菜单新建视图向导 方法三:项目管理器选定数据库本地视图新建 视图向导 方法四:数据库设计器数据库菜单新建本地视图 视图向导
利用视图向导创建本地视图
1. 当视图使用的数据源是当前数据库中的表或存在的 视图,则所建立的视图是本地视图; 2. 当数据源采用的是当前数据库之外的其他数据,包 括在当前VFP环境下建立的其他数据库和表,以及 其他的ODBC数据源,则建立的是远程视图。 若希望针对数据库服务器上的ODBC数据源进行 查询,则应该建立远程视图。 所谓ODBC是Open Database Connectivity的 缩写,即开放式数据库连接。它是用于数据库服务 器的一种标准协议(规则),它向应用程序提供访 问数据库服务器上所存放数据库的接口,以便应用 程序访问。
(5)执行查询
① “查询”菜单“运行查询”命令 ②在查询设计器窗口单击右键,快捷菜单“运行 查询”命令 ③ “程序”菜单“运行”命令→ 打开“查询文 件” →“运行”按钮 ④ 命令窗口中执行命令“DO <查询文件名.qpr>
(6) 查询的保存 查询窗口关闭前,以下三种方法可用来保存 查询设置: ① 按Ctrl+W ② 单击窗口右上角“关闭”按钮、双击窗 口左上角、或单击窗口左上角后选定“关闭” 命令,均会出现“确认”对话框 ③ “文件”菜单“保存”命令
二、 将查询结果以图形方式输出
例1 生成“zhggz”的表单,以图形方式输出。 S1:打开职工.dbf,创建一个新查询 S2:设置查询去向为“图形” S3:单击工具栏的“运行”按钮,弹出图形向导的 “步骤2——定义图形布局”对话框 S4:确定数据系列、图例: S4.1:数据系列:将要输出的数值型字段拖到“数 据系列”列表框,可以有多个数据系列。如:工资 等 S4.2:图例:将要显示的字符型字段拖到坐标轴图 形框。如:职工号.
SQL_Server实用教程(第三版)实验4_数据库的查询和视图
![SQL_Server实用教程(第三版)实验4_数据库的查询和视图](https://img.taocdn.com/s3/m/253d463d5a8102d276a22f6c.png)
实验四数据库的查询和视图T4.1 数据库的查询1.目的与要求(1)掌握select语句的基本语法;(2)掌握子查询的表示(3)掌握连接查询的表示(4)掌握select语句的group by子句的作用和使用方法(5)掌握select语句的order by子句的作用和使用方法2 实验准备(1)了解SELECT语句的基本语法格式;(2)了解SELECT语句的执行方法;(3)了解子查询的表示方法;(4)了解连接查询的表示;(5)了解SELECT语句的GROUPBY子句的作用和使用方法;(6)了解SELECT语句的ORDERBY子句的作用;3实验内容SELECT语句的基本使用。
①对于实验2给出的数据库表结构,查询每个雇员的所有数据。
新建一个查询,在查询分析器中输入如下语句并执行:USEYGGLGOSELECT *FROM Employees【思考与练习】用SELECT语句查询Departments和Salary表中所有的数据信息。
用SELECT语句查询Employees表中每个雇员的地址和电话。
新建一个查询,在查询分析器中输入如下语句并执行:Use YGGLGOSELECT Address PhoneNumberFROM Employees【思考与练习】a.用SELECT语句查询Deparments和Salary表的一列或若干列。
b.查询Employees表中的部门号和性别,要求使用DISTINCT消除重复行。
c.查询EmployeeID为000001的雇员的地址和电话。
Use YGGLGOSELECT Address PhoneNumberFROM EmployeesWHERE EmployeeID=’000001’【思考与练习】a.查询月收入高于2000元的员工号码。
b.查询1970年以后出生的员工的姓名和住址。
c.查询所有财务部的员工的号码和姓名。
查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
视图与查询的区别
![视图与查询的区别](https://img.taocdn.com/s3/m/3aa7f606aaea998fcc220e9a.png)
一、视图与查询的区别功能不同。
视图可以更新字段内容并返回原表,而查询文件中的记录数据不能修改。
这是视图与查询的本质区别。
归属不同。
视图不是一个独立的文件,它保存在数据库中。
查询文件是一个独立的文件,不属于数据库。
访问限制不同。
视图的数据来源可以是本地数据源,也可以是远程数据源,而查询不能访问远程数据源。
输出去向不同。
视图只能当表使用,而查询可以选择多种查询去向,如表、图表、报表、标签等多种形式。
使用方法不同。
视图可以作为数据源被引用,而查询不能被引用。
使用方式不同。
视图只有所属的数据库被打开时才能使用。
而查询可在“命令”窗口中执行。
二、数据库在创建关系之前,要关联的表之间必须有公共的字段和索引。
在数据库中创建的关系称为“永久关系”,之所以成为永久关系,是因为这种表与表之间的关系作为数据库的一部分存储在数据库文件中。
两个建立了关系的表可以分为父表和子表。
显然,一个父亲可以有一个或多个子女,而每个子表只能有一个父表。
这样两个表之间的关系就由子表在建立关系使用的索引类型决定了。
如果子表索引类型为[主索引]或[候选索引],那么,两表之间就是一对一关系。
否则,若子表索引类型为[普通索引]或[唯一索引],那么,两表间就是一对多关系。
而作为父表来说,它在建立关系时使用的索引类型就只能是[主索引]或[候选索引]。
三、查询在多表查询中,可以使用数据库表、自由表、本地视图或远程视图的任意组合。
在查询中,我们在表之间建立的联接与数据库中表之间的关系是不同的。
在查询中,表之间建立的联接是以选择标准存在,不会象数据库中表之间的持续关系那样持续保存下来,也不必建立在索引的基础上。
只有当字段的大小相等,且数据类型相同时才能建立联接。
同表之间的永久关系一样,一个表不能同时为两个父表的子表,也不能同时为两个子表的父表。
???。
《Visual FoxPro 6.0数据库与程序设计》课件 第4章 查询和视图(电子版)
![《Visual FoxPro 6.0数据库与程序设计》课件 第4章 查询和视图(电子版)](https://img.taocdn.com/s3/m/ca64642a192e45361066f549.png)
利用查询设计器得到的查询文件是一个文本文件,用户可 以查看其内容。 打开查询设计器,选择“查询|查看SQL”命令,打开一个 只读窗口,其中显示了一条SQL语句,它包含了用户创建这个查 询的所有信息。
18
4.2.1 视图的概念
通过视图不仅可以从多个表中提取数据,还可以在改变视
图数据后,把更新结果送回到数据源表中。 视图不能以自由表文件的形式单独存在,它必须依赖于某 个数据库,并且只有在打开相关的数据库之后,才能创建和使
(6)运行查询,获得查询结果。
4
4.1.2 创建查询
1. 启动查询设计器 (1)项目管理器:选择 “查询”数据项,单击“新建”按钮, 出现“新建查询”对话框,选择“新建查询”命令,打开查询 设计器。 (2)菜单:选择“文件|新建”命令,在“新建”对话框中选 择“查询”文件类型,然后单击“新建文件”按钮。
第4章 查询和视图
2
4.1 查询
查询和视图是检索和操作数据库的两个基本手段。
两者都可以从一个或多个相关联的数据表中提取有用的信息。 查询可以根据表或视图定义,它不依赖于数据库而独立存在, 可以显示但不能更新由查询检索到的数据(查询结果是只读 的)。
视图兼有表和查询的特点,它可以更改数据源中的数据,但
例:将“学生1”表中的“学号”字段更名为“学生证编号“
ALTER TABLE 学生1 RENAME COLUMN 学号 TO 学生证编号
对“学生1”表中的“姓名”和“出生日期”字段建立主索引
ALTER TABLE 学生1 ADD PRIMARY KEY 姓名+DTOC(出生日期) TAG 姓名_生日
(3)命令:CREATE QUERY <查询文件名>
数据库的查询和视图
![数据库的查询和视图](https://img.taocdn.com/s3/m/c266548e84868762caaed523.png)
6
数据库查询
表达式比较 【例】查询XS数据库CP表中库存量在500以上的产品情况。
SELECT * FROM CP WHERE KCL !< 500
【例】查询XSCJ数据库XS表中通信工程专业总学分大于等于42的同学的情 况。
SELECT * FROM XS WHERE专业名 = ‘通信工程’ an表中不在1979年出生的学生情况。
SELECT * FROM XS WHERE 出生时间 NOT BETWEEN ‘1979-1-1’ and ‘1979-12-31’ 使用IN关键字可以指定一个值表,值表中列出所有可能的值,当表达式与值表中的任一个匹配时, 即返回TRUE,否则返回FALSE。使用IN关键字指定值表的格式为: expression IN ( expression [,…n])
3
数据库查询
【例】 5。 计算列值 。
使用SELECT对列进行查询时,在结果中可以输出对列值计算后的值, 即SELECT子句可使用表达式作为结果,格式为: SELECT expression [ , expression ]
SELECT CPMC AS ‘产品名称’,产品总值 = JG * KCL FROM CP
17
模式匹配 LIKE谓词表达式的格式为:
string_expression [ NOT ] LIKE string_expression [ ESCAPE ‘escape_character’ ]
【例】查询XSCJ数据库XS表中计算机系的学生情况。
SELECT * FROM XS WHERE 专业名 LIKE ‘计算机’ 使用LIKE进行模式匹配时,常使用通配符,即可进行模糊查询。
16
use northwind select productid, sum(quantity) as a from [order details] where productid<10 group by productid having sum(quantity) >=30 go *group by与聚集函数连用 与聚集函数连用 *having必须与 必须与group by 联用 必须与
sql数据库的查询和视图
![sql数据库的查询和视图](https://img.taocdn.com/s3/m/1abdb905a8114431b90dd8d5.png)
第4章数据库的查询和视图一、数据的关系运算:运算的对象和结果都是表(表达方式)包括:选择、投影、连接1.选择(selection):单目运算从行方面分割表记:σF(R)其中:F为条件表达式 R为表例:σF(XS),F为性别=‘男’Λ专业名=‘计算机’2.投影(projection):单目运算从列方向分割表记:ΠA(R)其中:A为列名列表;R为表例:Π姓名,专业名,总学分(XS)3.连接(join):多目运算记:R F S 其中:F为条件表达式;R、S为表①自然连接:R S,按两表的共同属性连接例:XS XS_KC? XS XS_KC KC②条件连接:R F S,两表按下条件连接例:上例中的条件F二、数据库查询使用select 语句实现表的关系运算,用符合条件的数据构成结果表语法:select <select_list>into new_table_nameform table_sourcewhere search_conditiongroup by group_by_expressionhaving search_conditionorder by order_expression [ASC/DESC] 1.选择列①选择表中的列:select列名,列名,……(*)from表名where 条件②在结果表中使用文字串(增强检索结果的可读性)select‘串’,列名,‘串’,列名,……from表名where条件③改变结果列标题(结果表更个性化,可读性强)select列名AS新列标,列名AS 新列标,……(或新列标=列名,新列标=列名,……)from表名where条件④结果表数据替换(使检索结果更能反映出有用信息)select新列标=case when条件1 then‘串’(表达式)when条件2 then‘串’(表达式)……else表达式endfrom 表名where 条件⑤结果表中显示列计算值select表达式,表达式,……from表名⑥消除结果集中的重复行select distinct列名,列名……⑦限制结果集返回行数select top n 列名,列名……2、选择行(用where条件过滤)(紧在from之后)①表达式比较:(比较运算符)比较的表达式之一或两个为NULL时,返回unknown,否则返回true/false②模式匹配:(like谓词)[谓词:返回逻辑值的运算符、关键字]字符串表达式1 [not] like字符串表达式2 [escape‘不匹配字符’](可以使用通配符进行匹配)匹配通配符:%:任意一串字符例:select * from xs where 姓名 like‘王%’_:任意一个字符例:select * from xs where 姓名 like‘王_’[]:指定范围,如[a-z]、[0-9]、[abcde]……[^]:指定不属于范围,如[^a-z]、[^0-9]、[^abcde]③范围比较:表达式[not] between 表达式1 AND表达式2注:表达式1<=表达式2,包括表达式1和2表达式IN(表达式1,表达式2,……,表达式N)④空值比较表达式is [not] NULL⑤contains 谓词:在表中指定字符串的搜索(精确、模糊、加权匹配)contains(列/*,‘匹配串’)注:先为要操作的表建立全文索引(第六章Create Index,企业管理器)⑥freetext 谓词:与contains相似,不如contains精确freetext(列/*,‘匹配串’)⑦子查询:用另一个查询结果做为where条件的一部分,可嵌套★ IN:判断某个值是否在子查询结果中,只能返回一列数据。
vfp的查询和视图
![vfp的查询和视图](https://img.taocdn.com/s3/m/f1264764bdd126fff705cc1755270722192e59be.png)
二、视图的创建和使用
视图的概念:把分散在相关表中的数据通过联 接条件把他们收集到一起,构成一张“虚表”。 这张“虚表”就是视图,视图是数据库的一个组 成部分,是基于表的并且可更新的数据集合
视图与查询的区别:视图除了可以用来查询数 据之外,还可以当作表来使用,可以作为数据源, 也可对查询出来的数据进行修改并送回源表中
❖多表查询的创建:步骤 例题 ▪ 若有2张以上的表,在添加时一定要注意先后次 序,“纽带表”要放在两张“父表”之间 ▪ 若已进行了永久性关系的设置,则无须进行联接 ▪ 修改联接条件可在“查询设计器”—“联接”卡 片中进行 ▪ 联接条件和筛选条件类似,都是选出符合条件的 记录;不同的是筛选是将字段值和筛选值进行比 较,而联接条件是将一张表中的字段值与另外一 张表中的字段值进行比较
❖查询时会考到的最难的程度如下例:
查询信息管理系中所有成绩在480分以上,并且各门课程的成
绩不低于70分的学生。要求在查询的结果中包含学号,姓名, 总分,均分,最低分,并按照总分从高到底排列
❖ 一部分查询的练习 1. 查询学生的学号,姓名,系名,总分和平均分, 按照系名升序排序,同一个系的学生按照总分 降序排序。 2. 查询每个系每门课程的总分和平均分,要求输 出课程名,课程代号,系名,每个系的平均成 绩和总成绩,按课程代号升序排序 3. 查询各个系每位教师的课时数,要求输出系名, 工号,姓名,课时数,并按系名升序排序,同 一个系的教师按照工号升序排序 4. 查询计算机科学系各位教师的课时数,要求输 出工号,姓名,系名,课时数,并按工号降序 排序,并且将查询信息保存为表,表名为: