vf7sql连接和嵌套.docx

上传人:b****4 文档编号:4926997 上传时间:2022-12-11 格式:DOCX 页数:4 大小:16.37KB
下载 相关 举报
vf7sql连接和嵌套.docx_第1页
第1页 / 共4页
vf7sql连接和嵌套.docx_第2页
第2页 / 共4页
vf7sql连接和嵌套.docx_第3页
第3页 / 共4页
vf7sql连接和嵌套.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

vf7sql连接和嵌套.docx

《vf7sql连接和嵌套.docx》由会员分享,可在线阅读,更多相关《vf7sql连接和嵌套.docx(4页珍藏版)》请在冰豆网上搜索。

vf7sql连接和嵌套.docx

vf7sql连接和嵌套

2连接查询

特点:

基于多个关系的查询

什么时候用连接查询当要检索的字段分别出自多个关系,这样的检索肯定是基于多个关系的,一般用连接查询来实现

例题1:

根据职工和仓库表查询出工资多于1220的职工的职工号和所在城市

Select职工号,城市from职工,仓库where职工.仓库号=仓库.仓库号and工资>1220

 

检索命令的from后的多个关系之间肯定有一种联系(通过共同字段体现)

当from之后的多个关系中含有相同的属性名时,这时必须用关系前缀指明属性所属的关系,如职工.仓库号.前面是关系名后面是属性名注意不是,

基于两个表连接查询语法规则:

Select字段1,字段2…from表1,表2where表1.共同字段=表2.共同字段and题目给定的条件

思路把要检索的字段和条件字段都拿出来分析然后确定要检索的字段出自什么表再确定条件字段出自什么表最后确定用简单,连接还是嵌套

 

学生练习:

根据供应商和订购单关系查找出订购日期为2001-5-25日的职工号,和供应商名称

订购日期={^2001-5-25}

 

select职工号,供应商名from订购单,供应商where;

订购单.供应商号=供应商.供应商号and订购日期={^2001-5-25}

 

例题2:

根据订购单和供应商表找出公司地址在北京和西安的供应商号,供应商名和与他们对应的订购单号

select订购单.供应商号,供应商名,订购单号from订购单,供应商;

where订购单.供应商号=供应商.供应商号and(地址="北京"or地址=”上海”)

从大的方面来

看连接条件(有多个时用括号括起来)与题目给定的条件(有多个时用括号括起来)用and连接

学生练习:

根据职工和仓库关系检索出城市为北京以及上海的仓库的面积和职工号?

 

不进行讲解例题3找出与地址在北京和西安的供应商对应的订购单号和签该订购单的员工姓名

Select订购单号,员工姓名from职工,订购单,供应商where(职工.职工号=订购单.职工号and订购单.供应商号=供应商.供应商号)and(地址="北京"or地址="上海")

不进行讲解学生练习:

找出选修了课程名为物理的学生的姓名和该门课程的成绩

3嵌套查询:

特点:

基于多个关系的查询

什么时候用嵌套所要检索的字段出自同一个关系,但相关的条件字段涉及其他关系,这时使用嵌套查询

例题1:

求出至少有一个职工的工资为1250元的仓库的信息?

1250元或者1230元

Select*from仓库where仓库号in(select仓库号from职工where工资=1250)

含有两个select—from—where也就是两个简单查询

内层查询实际上是一个范围检索到的仓库值就是wh1wh2

等价查询命令是:

Select*from仓库where仓库号in(“WH1”,”WH2”)

in相当于集合论中的属于运算符

基于两个表的嵌套查询语法规则:

select字段1,字段2...from要检索的字段所在的表where共同字段in(select共同字段from条件字段所在的表where题目给定的条件)

思路把要检索的字段和条件字段都拿出来分析然后确定要检索的字段出自什么表再确定条件字段出自什么表最后确定用简单,连接还是嵌套

学生练习:

根据订购单和供应商关系查询出2001-06-23日签订订购单的供应商名以及地址

例题2查询所有职工的工资都多于1210的仓库的信息

Select*from仓库where仓库号in(select仓库号from职工where工资>1210)错误

也就是没有一个职工的工资少于等于1210的仓库的信息

至少有一个职工的工资小于等于1210的仓库号范围

没有一个职工的工资小于等于1210的仓库号的范围

1.仓库有职工

2.仓库没职工

正确的表述为:

没有一个职工的工资少于等于1210的仓库的信息,且该仓库至少要有一名职工

Select*from仓库where仓库号notin(select仓库号from职工where工资<=1210)and仓库号in(select仓库号from职工)

not否定运算符

学生练习:

查询所有职工的工资都少于1250的仓库的信息

例题3找出和职工E4挣同样工资的所有职工的职工号?

和E4或E3

select工资from职工where职工号=”E4”

select职工号from职工where工资=(select工资from职工where职工号=”E4”)

=后面只能跟一个值

In后面可以跟多个值的范围也能跟一个值

学生练习:

找出和职工E4在同一仓库的所有职工的职工号

总练习:

根据订购单和供应商关系查询出供应商名为“华通电子公司”和”607厂”的订购单号和订购日期?

用嵌套查询做的题目也可以用连接查询来做但可能结果有重复需要用distinct消除重复值

例题1检索出至少有一个职工的工资大于1210的仓库所在的城市

Select城市from仓库where仓库号in(select仓库号from职工where工资>1210)

Selectdistinct城市from仓库,职工where仓库.仓库号=职工.仓库号and工资>1210

 

Select城市from仓库where仓库号in(select仓库号from职工where工资>1220)

不进行讲解例题2检索出签订了订购单号为OR76的订单的职工所在的城市

Select城市from仓库where仓库号in(select仓库号from职工where职工号in(select职工号from订购单where订购单号=”OR76”))

Select城市from订购单,仓库,职工where(订购单.职工号=职工.职工号and仓库.仓库号=职工.仓库号)and订购单号=”OR76”

select城市from仓库,职工,订购单where(订购单.职工号=职工.职工号and仓库.仓库号=职工.仓库号)and订购单号="OR76"

 

不进行讲解例题3检索出地址为北京且已经和城市在北京的仓库里工作的职工签订了订购单的供应商名(书上137)

当检索的字段和条件均出自一个关系的时候用简单查询

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1