数据查询和视图

合集下载

chap05 查询和视图

chap05 查询和视图
用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
查询的创建
设置查询结果的分组依据

SQLServer数据库的查询和视图

SQLServer数据库的查询和视图
MAX / MIN ( [ ALL | DISTINCT ] 表达式 ) 其中,“表达式”可以是常量、列、函数或表达式,其数据类型可以是数字、字符和时间日期类 型。
【例4.9】 求选修101课程的学生的最高分和最低分。 T-SQL命令如下,执行结果如图4.7所示。
SELECT MAX(成绩) AS '计算机基础最高分' , MIN(成绩) AS '计算机基础最低分'
T-SQL命令如下,执行结果如图4.10所示。
SELECT 学号,姓名,专业
FROM xsb
WHERE 学号 LIKE '%9_ _ _[1-5]'
第22页,共85页。
选择查询条件:WHERE子句
【例4.13】 查询xsb表姓名中倒数第2个字为’玉’的学生学号、姓名及专业。 T-SQL命令如下,执行结果如图4.10所示。 SELECT 学号,姓名,专业
4.替换查询结果中的数据
在对表进行查询时,有时希望对所查询的某些列得到的数据进行变换。
要替换查询结果中的数据,则可使用CASE表达式,格式为: CASE
WHEN 条件1 THEN 表达式1 WHEN 条件2 THEN 表达式2 ……
ELSE 表达式 END
第7页,共85页。
选择查询结果输出列
【例4.4】 查询xsb表中计算机系各同学的学号、姓名和总学分,对其总学分按以下规 则进行替换,列标题更改为“等级”。
[GROUP BY <分组条件> ]
/*指定查询结果分组条件*/
[ HAVING <分组统计条件>]
/*指定查询结果分组统计条件*/
[ ORDER BY <排序顺序>]

视图和查询的区别

视图和查询的区别

视图和查询的区别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子句限制用户对某些底层基表的行的访问对不同用户授予不同的权限。

数据库实验4_数据库查询与视图

数据库实验4_数据库查询与视图

数据库实验4_数据库查询与视图在学⽣选课数据库中完成规定查询,并创建视图。

1.查询线性代数不及格的同学的学号和姓名;SQL语句为:SELECT名单$.学号,姓名FROM名单$,学⽣选课信息和成绩$,课程$WHERE名单$.学号=学⽣选课信息和成绩$.学号AND课程$.课号=学⽣选课信息和成绩$.课号AND 课程$.课程名='线性代数'AND学⽣选课信息和成绩$.成绩<60;执⾏后结果为:2.查询没有选课记录的同学的所有基本信息;SQL语句为:SELECT*FROM名单$WHERE NOTEXISTS(SELECT*FROM学⽣选课信息和成绩$WHERE学号=名单$.学号);执⾏后结果为:3.查询具有简介先修课的课程信息及对应的先修课名;SQL语句为:SELECTFIRST.课号,SECOND.课程名FROM课程$FIRST,课程$SECONDWHEREFIRST.先修课号=SECOND.课号;执⾏后结果如下:4.统计⾼等数学(1)的平均成绩;SQL语句为:SELECT AVG(成绩)FROM学⽣选课信息和成绩$,课程$WHERE学⽣选课信息和成绩$.课号=课程$.课号AND课程$.课程名='⾼等数学(1)'; 执⾏后结果如下:5.统计各门课的选课⼈数;SQL语句为:SELECT课号,COUNT(学号)FROM学⽣选课信息和成绩$GROUPBY课号;执⾏后结果为:6.查询选修5门课以上的学⽣的学号;SQL语句为:SELECT学号FROM学⽣选课信息和成绩$GROUPBY学号HAVING COUNT(*)>5;执⾏后结果为:7.⽤你的学号查询和你⼀个班的同学的学号和姓名;SQL语句为:SELECT学号,姓名FROM名单$WHERE班级IN(SELECT班级FROM名单$WHERE学号='201000800145');执⾏后结果如下:8.查询⾼等数学(1)成绩⽐你⾼出10分以上的同学的姓名和对应成绩;SQL语句为:SELECT姓名,成绩FROM名单$,学⽣选课信息和成绩$WHERE名单$.学号=学⽣选课信息和成绩$.学号AND学⽣选课信息和成绩$.课号='82006010'AND成绩>(SELECT成绩+10FROM学⽣选课信息和成绩$,课程$WHERE学⽣选课信息和成绩$.课号=课程$.课号AND课程$.课程名='⾼等数学(1)' AND学⽣选课信息和成绩$.学号='201000800145')执⾏后结果为:9.找到每门课获得最⾼成绩的同学的学号、姓名、课名和成绩;选做。

05_查询与视图

05_查询与视图

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正是利用这些语句将在视图中修改或删除的记录发送到

数据库的查询和视图

数据库的查询和视图
使用SELECT语句选择一个表中的某些列,各列名之间要以逗号分隔。其中, $IDENTITY表示选择标识列,$ROWGUID表示选择ROWGUIDCOL属性的全局标识列。 如果在FROM子句中有多个表具有ROWGUIDCOL属性,则必须用特定的表名限定 $ROWGUID,如T1.$ROWGUID。 【例4.2】 查询PXSCJ数据库的XSB表中各个同学的姓名、专业和总学分。 USE PXSCJ GO SELECT 姓名,专业,总学分 FROM XSB GO SQL Server 2008中还能一次执行多个查询。
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表

数据库__VFP6第4章查询与视图

数据库__VFP6第4章查询与视图

图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所示的查询去向对话 框中选择不同的查询去向。

SQL_Server实用教程(第三版)实验4_数据库的查询和视图

SQL_Server实用教程(第三版)实验4_数据库的查询和视图

实验四数据库的查询和视图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子句将结果中各列的标题分别指定为地址、电话。

视图与查询的区别

视图与查询的区别

一、视图与查询的区别功能不同。

视图可以更新字段内容并返回原表,而查询文件中的记录数据不能修改。

这是视图与查询的本质区别。

归属不同。

视图不是一个独立的文件,它保存在数据库中。

查询文件是一个独立的文件,不属于数据库。

访问限制不同。

视图的数据来源可以是本地数据源,也可以是远程数据源,而查询不能访问远程数据源。

输出去向不同。

视图只能当表使用,而查询可以选择多种查询去向,如表、图表、报表、标签等多种形式。

使用方法不同。

视图可以作为数据源被引用,而查询不能被引用。

使用方式不同。

视图只有所属的数据库被打开时才能使用。

而查询可在“命令”窗口中执行。

二、数据库在创建关系之前,要关联的表之间必须有公共的字段和索引。

在数据库中创建的关系称为“永久关系”,之所以成为永久关系,是因为这种表与表之间的关系作为数据库的一部分存储在数据库文件中。

两个建立了关系的表可以分为父表和子表。

显然,一个父亲可以有一个或多个子女,而每个子表只能有一个父表。

这样两个表之间的关系就由子表在建立关系使用的索引类型决定了。

如果子表索引类型为[主索引]或[候选索引],那么,两表之间就是一对一关系。

否则,若子表索引类型为[普通索引]或[唯一索引],那么,两表间就是一对多关系。

而作为父表来说,它在建立关系时使用的索引类型就只能是[主索引]或[候选索引]。

三、查询在多表查询中,可以使用数据库表、自由表、本地视图或远程视图的任意组合。

在查询中,我们在表之间建立的联接与数据库中表之间的关系是不同的。

在查询中,表之间建立的联接是以选择标准存在,不会象数据库中表之间的持续关系那样持续保存下来,也不必建立在索引的基础上。

只有当字段的大小相等,且数据类型相同时才能建立联接。

同表之间的永久关系一样,一个表不能同时为两个父表的子表,也不能同时为两个子表的父表。

???。

实现SQL Server数据库中的视图和查询

实现SQL Server数据库中的视图和查询

(6)WITH CHECK OPT须符合由 SELECT查询语句设置的准则。通过视图修改 数据行时,WITH CHECK OPTION 可确保提 交修改后,仍可通过视图看到修改的数据。 ( 7 ) WITH ENCRYPTION : 表 示 SQL Server 加密包含 CREATE VIEW 语句文本的 系统表列。使用 WITH ENCRYPTION 可防止 将视图作为 SQL Server 复制的一部分发布。
(5)在CREATE VIEW语句中,对于SELECT 查询语句有如下限制: 创建视图的用户必须对该视图所参照或引用 的表或视图具有适当的权限。 在查询语句中,不能包含ORDER BY(如果 要包含的话SELECT子句中要用TOP n [percent])、 COMPUTE或COMPUTE BY关键字。也不能包 含INTO关键字。 不能在临时表中定义视图(不能引用临时表)。
FROM { 表名|视图名 } [ ,...n ]
当有多个数据源时,可以使用逗号“,”分隔, 但是最多只能有16个数据源。数据源也可以像 列一样指定别名,该别名只在当前的SELECT语 句中起作用,方法为:数据源名 AS 别名,或 者数据源名 别名。指定别名的好处在于以较短 的名字代替原本见名知意的长名。
二、使用指定的列 select 列名1,列名2,……,列名n from 表名/视图名 返回from中指定的表中的指定列。
三、使用TOP关键字 select top n [percent] 列名
四、使用DISTINCT关键字 使用DISTINCT关键字时, 1、无论遇到多少个空值,只返回一个。 2、表达式只包含一个列名,且不能包含算术 表达式。 3、不能包含text、ntext和image类型字段。 4、是sum、avg和count的可选关键字。

《Visual FoxPro 6.0数据库与程序设计》课件 第4章 查询和视图(电子版)

《Visual FoxPro 6.0数据库与程序设计》课件 第4章  查询和视图(电子版)

利用查询设计器得到的查询文件是一个文本文件,用户可 以查看其内容。 打开查询设计器,选择“查询|查看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 <查询文件名>

数据库的查询和视图

数据库的查询和视图

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 联用 必须与

VF查询与视图

VF查询与视图

填空 1、为“成绩”表中“总分”字段增加有效性规则:“总分必须 大于等于0并且小于等于750”,正确的SQL语句是: TABLE 成绩 ALTER 总分 总分>=0 AND 总分 <=750
2、为“学生”表的“年龄”字段增加有效性规则“年龄必须在18~45岁之间” 的SQL语句是 ALTER TABLE学生ALTER年龄 年龄<=45 AND 年 龄>=18 2、在SQL语言中,用于对查询结果计数的函数是 。 3、在SQL的SELECT查询中,使用 4、使用SQL Select语句进行分组查询时,有时要求分组满足某个条件时才查 询,这时可以用 子句来限定分组。 5、设有SC(学号,课程号,成绩)表,下面SQL的SELECT语句检索成绩高于 或等于平均成绩的学生的学号。 SELECT 学号 FROM SC WHERE 成绩>=(SELECT FROM SC)
空值查询
表中值为空表示没有确定内容,当要查询的时候: repl 供应商号 with null,订购日期 with null for 职工号 ="E4 " 然后才能用IS NULL查询,考试的时候不需要设置。
当需要本仓库的职工的工资和本仓库的平均工资 进行比较时候
自身连接和嵌套查询 sele * from 职工 A where 工资>(sele avg(工资) from 职工 B where A.仓库号=B.仓库号) 自身连接:将同一关系与自身连接。 注意:应用的原因:根据出自同一个字段,值域相同 的两个进行比较。属性是“包含”与“被包含”的关 系。
5.在Visual Foxpro中,如果要将学生表S(学号,姓名,性别,年 龄)中“年龄”属性删除,正确的SQL命令是 。 A)ALTER TABLE S DROP COLUMN 年龄 B)DELETE 年龄FROM S D)ALTER TABLE S DELETE COLUMN 年 龄 D)ALTER TABLE S DELETE年龄 6.在Visual Foxpro的数据库表中只能有一个 。 A)候选索引 B)普通索引 C)主索引 D)惟一索引 7. 设有学生表 S( 学号 ,姓名,性别 , 年龄),查询所有年龄小于等于 18 岁的女同学,并按年龄进行降序生成新的表WS,正确的SQL命令是 。 A)SELECT*FROMS WHERE性别=“女”AND年龄<=18ORDER BY 4 DBSC INTO TABLE WS B)SELECT*FROMS WHERE 性别 = “女” AND 年龄 <=18ORDER BY 年龄 INTO TABLE WS C)SELECT*FROMS WHERE 性别 = “女” AND 年龄 <=18ORDER BY 年龄 DESC INTO TABLE WS D)SELECT*FROMS WHERE 性别 = “女” OR 年龄 <=18ORDER BY 年龄

6.查询与试图

6.查询与试图
添加表 移去表 添加联接 显示SQL窗口 最大化上部窗格

添加表:显示“添加表或视图”对话框,从而可以向设计器窗 口添加一个表或视图

移去表:从设计器窗口的上窗格中移去选定的表。 添加联接:在视图中的两个表之间创建联接条件


显示/隐藏SQL窗口:显示或隐藏建立当前视图的SQL语句
最大化/最小化上部窗口:放大或缩小视图设计器的上窗格
创建本地视图
利用视图设计器创建本地视图
利用视图设计器创建本地视图
• 通过本地视图向导建立数据库视图虽然方便、快 捷,但用视图向导建立数据库视图最终还要依赖 视图设计器。因此,还应学会使用视图设计器的 强大功能来创建视图。
1、进入视图设计器
进入视图设计器的方法与进入查询设计器的方法基本相同, 下面以新建视图的方式进入视图设计器。
定向输出查询结果
查询检索的信息,可以输出到不同的目的地,以用作 不同的用途。如果没有选定输出的目的地,查询结果 将显示在浏览窗口中。查询输出目的可以是浏览窗口、 临时表、表、图形、屏幕、报表、标签等。选择结果 的去向方法如下: 单击“查询设计器工具”中的【查询去向】按钮,或 者从【查询】菜单中选择【查询去向】,可看到如图 所示的“查询去向”对话框。
设计单表查询
查询向导——字段选取
• 选择“教学管理”数据库中的“学生”表,并将该表中的 所有字段添加到“选定字段”列表框中。
查询向导—筛选记录
单击【预览】按钮可以显 示查询结果。
选择“系别” 取默认值
在此输入值 管理 从中选择 “包含” 在此输入值 单击
0103
查 询 向 导 记 录 排 序
——
调整排 序顺序
移动按钮
选择排序字段 单击【添加】 选择排序方式

第6章 数据查询与视图

第6章 数据查询与视图

示例:
USE XS INDEX 学号 SEEK “020101” DISPLAY
一定要定界符
A=“990101” SEEK A DISPLAY
无需“&”
INDEX ON 出生日期 TO 出生日期 SEEK CTOD(“01-12-83”) && 或SEEK {83-01-12}
INDEX ON 团员 TO 团员 SEEK .T.
说明:
⑴ FIND命令是在索引文件中查询,找到后根据记录号从表 文件中读出相应的记录。因为一个表在同一时刻只能有一 个索引文件或一个索引标记为主控索引,因此,利用FIND 命令来查找记录时,只能查找主控索引字段的值。 ⑵ 查询的值可以是字符串,也可以是数值。通常字符串可 以不用定界符括起来,但是当字符是以空格开始时,则必 须用定界符括起来;如果要查找的字符串是以定界符开头 时,就必须用不同的定界符将其括起来。
姓名 周子康 王世洪 刘晓刚 李梦如 胡冬琴
平均成绩 85.0 67.3 85.5 90.3 77.5
例1:USE XS
INDEX ON 学号 TAG 学号
SET ORDER TO TAG 学号
FIND 990101 &&查找第一个学号为“990101”的记录
DISPLAY
A=“990109”
FIND &A
查找一个特定的数据子集; (5)“分组依据”:将一组类似的记录压缩成一个结果记录,
可以完成基于一组的计算。
要设计一个查询文件,首先必须明确查询的目的是什么,即 想要得到哪些数据,并以什么方式存在;或者想要得到满足 某些条件的特定记录,或者想要知道某些记录的字段值组合 成的表达式按某一方式输出。明确了输出的数据后,就可以 开始设计查询了,一般要通过以下几个步骤进行: (1)启动查询设计器; (2)选择出现在查询结果中的字段; (3)设置选择条件来查找可给出所需结果的记录; (4)设置排序或分组选项来组织查询结果; (5)选择查询结果的输出类型:表、报表、浏览等; (6)运行查询。

视图与数据查询 SQL基本语句范文

视图与数据查询 SQL基本语句范文

实验四视图与数据查询一、实验目的:熟悉SQL SERVER2000系统开发环境及图形化操作,进一步了解各部分的操作掌握虚拟数据表的原理即实现方法掌握数据查询技术的构成要素及实现方法进一步熟悉企业管理器的操作方法,对比掌握数据表与视图二、实验原理:(一)查询的创建所谓查询就是根据我们的要求,在一张或多张数据表中找出满足一定条件的我们所关注的数据,排除不需要或不关心的信息。

查询的实现方法:在企业管理器中右击你想查看的表,选择“打开表”菜单项下面的“查询”命令,打开“查询设计器”窗口。

1、查询设计器(1)关系图窗格。

此区域以图形方式显示表或视图等对象以及它们之间的连接关系。

(2)网格窗格。

用户可以在此区域中指定查询选项,例如要显示哪些数据列、如何对结果进行排序以及选择哪些行等。

(3)SQL窗格。

显示查询或视图对应的SELECT语句。

(4)结果窗格。

显示满足查询条件的数据。

在查询设计器中,该区域显示最近执行的选择查询的结果。

可以通过编辑该网格单元中的值对数据进行修改,而且可以添加或删除数据。

2、设置查询条件(1)设置显示列。

显示列就是在输出结果中满足条件的记录所显示的列信息。

在网格窗格中,显示列的“输出”栏被标识为√。

如果你查询的数据来至于多张数据表,在“关系图窗格”中单击鼠标右键,选择添加表,将要查询的数据表添加进去。

(2)设置查询条件。

在网格窗格中,单击空白行的“列”栏,从菜单中选择查询条件中的列。

例如要查询所属部门编号等于2的记录,则选择Dep_id,然后在“准则”中输入=2。

注意,将Dep_id所在行中的输出标记去掉,因为结果集中不需要显示所属部门编号。

条件可以设置多个,相与的条件放在同一列,相或的条件放在不同列,假如查询部门编号为2的姓陈的人,则在设置好上述条件后,在姓名后面的“准则”栏写上like ‘陈%’。

(3)设置排列顺序。

设置结果集中的数据按照指定列的升序或降序排列,注意排序可以设置多种规则,比如第一排序按部门,则按部门的拼音顺序排列,如果一个部门的人很多,可以设置第二排序规则,比如按职工号排序。

vfp的查询和视图

vfp的查询和视图
▪ 如果视图不存在,可以用以下命令建立: open database sjk create SQL VIEW viewkcxscj AS; select kc.kcm,cj.xh,xs.xm,cj.cj; from sjk!xs inner join sjk!cj inner join sjk!kc; on kc.kcdh=cj.kcdh on xs.xh=cj.xh
二、视图的创建和使用
视图的概念:把分散在相关表中的数据通过联 接条件把他们收集到一起,构成一张“虚表”。 这张“虚表”就是视图,视图是数据库的一个组 成部分,是基于表的并且可更新的数据集合
视图与查询的区别:视图除了可以用来查询数 据之外,还可以当作表来使用,可以作为数据源, 也可对查询出来的数据进行修改并送回源表中
❖多表查询的创建:步骤 例题 ▪ 若有2张以上的表,在添加时一定要注意先后次 序,“纽带表”要放在两张“父表”之间 ▪ 若已进行了永久性关系的设置,则无须进行联接 ▪ 修改联接条件可在“查询设计器”—“联接”卡 片中进行 ▪ 联接条件和筛选条件类似,都是选出符合条件的 记录;不同的是筛选是将字段值和筛选值进行比 较,而联接条件是将一张表中的字段值与另外一 张表中的字段值进行比较
❖查询时会考到的最难的程度如下例:
查询信息管理系中所有成绩在480分以上,并且各门课程的成
绩不低于70分的学生。要求在查询的结果中包含学号,姓名, 总分,均分,最低分,并按照总分从高到底排列
❖ 一部分查询的练习 1. 查询学生的学号,姓名,系名,总分和平均分, 按照系名升序排序,同一个系的学生按照总分 降序排序。 2. 查询每个系每门课程的总分和平均分,要求输 出课程名,课程代号,系名,每个系的平均成 绩和总成绩,按课程代号升序排序 3. 查询各个系每位教师的课时数,要求输出系名, 工号,姓名,课时数,并按系名升序排序,同 一个系的教师按照工号升序排序 4. 查询计算机科学系各位教师的课时数,要求输 出工号,姓名,系名,课时数,并按工号降序 排序,并且将查询信息保存为表,表名为:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.2.1 启动查询设计器
采用菜单方式启动查询设计器。 方法: 文件→ 新建→ 查询→ “新建” 按钮,打开查询设
计器窗口。
查询设计器窗口
6.2.2 查询设计器窗口的使用
上窗格显示添加的 数据表
添加表、移去表 、添加连接 、
显示/隐藏SQL窗口 、 最大化/最小化上部窗格、
查询去向
对查询的字段、连接、筛选、 排序、分组、杂项进行设置。
6.2.7 查询结果的输出设置
查询的默认输出方式是“浏览”窗口。
Browse(浏览):在“浏览”窗口中显示查询结果。 Cursor(临时表):将查询结果存放到只读临时表。 table(表):将查询结果存放到自由表中 Screen(屏幕):将查询结果输出到VFP主窗口、打印机或
者某个文本文件。
2. “连接”选项卡
设置查询的数据源中表和表之间的连接条件。 添加连接条件
Inner join: 内部连接 Left join:左连接 Right join:右连接 Full join:完全连接
6.2.2 查询设计器窗口的使用
删除连接条件 修改连接条件
6.2.2 查询设计器窗口的使用
6.2.6 交叉表查询
创建交叉表查询的两种方法
交叉表向导 查询设计器
【例6.6】根据职工表zgb.dbf,查询每个部门的各种职称的 人数,保存到查询文件cxzc6_6.qpr。要求行方向上显示部 门的人数,列方向上显示职称的人数,表格中单元格为某 个部门的对应职称的总人数。
分别用交叉表向导和查询设计器方法来创建本例的查询 文件。
2. 打开“查询向导” 文件→ 新建 →查询→ 向导→Query Wizard选项 3. 选择字段 4. 筛选记录
5. 记录排序 6. 限制记录 7. 完成
6.2 使用查询设计器创建查询
6.2.1 启动查询设计器 6.2.2 查询设计器窗口的使用 6.2.3 修改查询 6.2.4 运行查询 6.2.5 多表查询 6.2.6 交叉表查询 6.2.7 查询结果的输出设置 6.2.8 查看SQL语句
6.2.3 修改查询
利用查询设计器,可以对已经建立的查询 文件进行修改。
操作方法: 文件→打开→定位查询文件 对查询添加或删除表、设置查询条件、设
置分组、设置连接条件、设置排序字段等。
6.2.4 运行查询
运行查询的两种方法:
单击“查询”菜单的“运行查询”命令或者单 击工具栏上的“运行”按钮。
【例6.3】从父表zgb.dbf和子表bmb.dbf中,查询每 个职工的信息,查询内容包括编号、姓名、部门 代码、部门名称。结果如下:
6.2.2 查询设计器窗口的使用
3. “过滤器”选项卡
“过滤器”选项卡用来指定查询结果要满足的条 件。
6.2.2 查询设计器窗口的使用
4. “排序”选项卡 “排序”选项卡指定查询结果的输出顺序。可以指 定字段、函数或其他表达式为排序关键字。
6.3 创建视图
6.3.1 创建本地视图 6.3.2 修改视图 6.3.3 重命名视图 6.3.4 删除视图
6.3 创建视图
视图是从一个或多个表或视图中导出的记录集合。 视图是一个虚表。视图存放在数据库中。 只有在打开数据库后,才能创建和使用视图。 视图分为本地视图和远程视图。
6.3.1 创建本地视图
创建查询的步骤:
(1)使用“查询向导”或“查询设计器”开始建立查询。 (2)选择出现在查询结果中的字段。 (3)设置筛选条件来查找所需要的记录。 (4)设置排序或分组选项来组织查询结果。 (5)选择查询结果的输出类型:表、报表、浏览等。 (6)运行查询。
查询文件的扩展名为.qpr Байду номын сангаас编译后的查询文件,扩展名 为.qpx
6.1查询向导
【例6.1】利用“查询向导”,根据职工表 zgb.dbf创建一个查询文件cxzg6_1.qpr,它 包含编号、姓名、工作部门、工作时间、 基本工资等字段,查询结果符合条件: 1990年1月1日以后参加工作,显示的顺序 按编号升序排列。
6.1查询向导
操作过程:
1. 打开需要的表zgb.dbf USE zgb
6. “杂项”选项卡 “杂项”选项卡可以删除查询结果中的重复记录(不要副 本)、设置强制连接、设置交叉表形式等。
选中“不要副本”复选框,则查询结果中将不包含重复记录。 选中“全部”复选框,表示显示符合筛选条件的所有记录 。 交叉列表:只有当“字段”选项卡的“已选择字段”框中选择了3个 输出项时,才能使用“交叉列表”按钮。
命令行:DO 查询文件名.QPR
6.2.5 多表查询
建立多表查询时,先将相关的表或视图添 加到查询中,并建立连接条件。
【例6.5】利用部门表bmb.dbf和职工表zgb.dbf建 立一个查询,查询已婚的且职称为讲师或工程师 的记录,查询结果包含姓名、性别、婚否、部门 名称、出生时间、技术职称、籍贯等字段。
6.2.2 查询设计器窗口的使用
1. “字段”选项卡 “字段”选项卡用来指定查询结果中输出
的字段以及函数和表达式。
6.2.2 查询设计器窗口的使用
【例6.2】利用“查询设计器”创建一个查询文件 cxzg6_2.qpr,它从职工表zgb.dbf查询所有职工的编 号、姓名、职称、出生时间、年龄。
6.2.2 查询设计器窗口的使用
6.2.2 查询设计器窗口的使用
5. “分组”选项卡 “分组”选项卡用来把具有相同字段值的记 录合并为一组,生成查询结果的一条记录。
6.2.2 查询设计器窗口的使用
【例6.4】利用职工表zgb.dbf创建一个查询, 要求查询部门工资总和高于2000元的各部门 的人数和基本工资的总和 。
6.2.2 查询设计器窗口的使用
Visual FoxPro数据库 应用教程与实验(第二版)
清华大学出版社
第6章 数据查询和视图
6.1查询向导 6.2 使用查询设计器创建查询 6.3 创建视图 6.4 使用视图 6.5 创建参数视图
6.1查询向导
查询是从数据表或者视图的大量记录中快速检索出符合一 定要求的记录。
创建查询的方法有两种:查询向导、查询设计器。
相关文档
最新文档