- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VF4总结2011
查询的意义:
通过设置筛选条件,从给定的一个或多个表中检索出符合要求的字段、记录、以及排序结果、分组统计;
也可以将查询的命令保存为程序文件,多次运行,每次运行可以获得动态记录集;
所以,建立数据库和表是通过查询来体现其应用价值。
1.简单的基于单表的查询
无条件查询
例4.1 从职工关系中检索所有工资
SELECT 工资 FROM 职工
SELECT DISTINCT 工资 FROM 职工
(DISTINCT短语的作用是去掉查询结果中的重复值。)
例4.2 检索仓库关系中的所有元组
SELECT 仓库号,城市,面积 FROM 仓库
此命令等同于
SELECT * FROM 仓库
其中“*”是通配符,表示所有属性,即字段。
有条件查询
例4.4 检索哪些仓库有工资多于1210元的职工
SELEST DISTINCT 仓库号 FROM 职工 WHERE 工资1210
例4.5 给出在仓库“WH1”或“WH2”工作,并且工资少于1250元的职工号
SELECT 职工号 FROM 职工;
WHERE 工资1250 and ;
(仓库号=WH1 or 仓库号=WH2)
Select是一条完整的语句,如果要分行使用分号“;”(续行符)断开,但是,分号前后不能输入其它任何符号。
这里用 where制定了查询条件,查询条件可以是任意复杂的逻辑表达式。
仓库号=WH1 or 仓库号=WH2 等价于:
仓库号 in (WH1,WH2)
仓库号 not in (WH1,WH2) 等价于:
仓库号WH1 and 仓库号WH2
2.基于多表的联合查询
如果目标字段来自一个表,筛选条件来自另一个表。
例如:
查询职工工资大于2000的职工所在城市及仓库面积?
(目标字段来自仓库表,条件来自职工表)
Select 城市,面积 from 仓库表, 职工表
Where工资2000 and (仓库表.仓库号=职工表.仓库号)
通过检索职工表,可以获得工资2000的职工所在仓库号,再利用获得的仓库号去检索仓库的信息。
等价于:
Select 城市,面积 from 仓库表 where仓库号in
(select仓库号 from职工表 Where工资2000)
Where 仓库号in() 嵌套子查询
这就意味着工资2000的职工所在仓库的仓库号,是前一个查询的取值范围。
如果目标字段来自多个表,筛选条件来自多个表。
例如:
查询职工工资大于3000的工作的城市,工资。
Select 城市,工资 from 仓库表, 职工表
Where工资3000 and (仓库表.仓库号=职工表.仓库号)
等价于:
Select 城市,工资 from 仓库表 Inner Join职工表 On
仓库表.仓库号=职工表.仓库号 Where工资3000
自然连接(内连接)
学生表(学号,姓名,性别,专业,出生日期)
考试表(学号,科目,成绩,时间)
例题1:
查询考试成绩大于等于90的学生的姓名、专业?
Select Distinct 姓名,专业 from 学生表 where学号
in (select 学号 from考试表 where成绩=90)
例题2:
查询没有考试的学生的姓名?
Select 姓名 from 学生表 where 学号
Not in (select 学号 from考试表)
3.特殊查询
(1)数值区间作为条件(必须是闭区间而且左小右大)
成绩 Between 60 And 100 等价于:
成绩=60 And 成绩=100
日期、时间
出生日期Between {^1990-01-01} And {^1990-12-31}
Year(出生日期)=1990
(2)模糊查询
例题1:
从供应商表中检索出全部公司的信息(以“公司”两个字结尾的供应商名称)?
SELECT * FROM 供应商 ;
WHERE 供应商名 LIKE %公司
例题2:
查询学生表中姓“李”的学生信息?
SELECT * FROM 学生表 ;
WHERE 姓名 LIKE 李%
或:WHERE Left(姓名,2)=李
例题3:
查询科目中包含“计算机”三个字的考试信息?
SELECT * FROM 考试表 ;
WHERE 科目 LIKE %计算机%
这里的LIKE是字符串匹配运算符, 通配符:
通配符”%”表示0个或多个任意字符;
通配符“_”表示一个任意字符。
(3)取反运算、集合运算
!= Not()
(4)空值运算 某些字段的取值允许为空值
字段名 Is Null
字段名 Is Not Null
4.查询结果排序
例4.14
按职工的工资值升序检索出全部职工信息?
S
文档评论(0)