友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
SQL 21日自学通(V3.0)(PDF格式)-第28部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
LE SHOPPE 76
LE SHOPPE 10
AAA BIKE 10
AAA BIKE 76
AAA BIKE 46
JACKS BIKE 76
分析
这是一种新型的查询 这里我们第一次使用了 RIGHT OUTER JOIN 它会令 SQL 返
回右边表集内的全部记录 如果当 ORDERS。PARTNUM54 则补以空值 下边是一个左
联合的例子
INPUT/OUTPUT:
SELECT P。PARTNUM P。DESCRIPTION P。PRICE O。NAME O。PARTNUM
FROM PART P LEFT OUTER JOIN ORDERS O ON ORDERS。PARTNUM = 54
PARTNUM DESCRIPTION PRICE NAME PARTNUM
54 PEDALS 54。25 BIKE SPEC 54
42 SEATS 24。50 BIKE SPEC 54
46 TIRES 15。25 BIKE SPEC 54
23 MOUNTAIN BIKE 350。45 BIKE SPEC 54
76 ROAD BIKE 530。00 BIKE SPEC 54
10 TANDEM 1200。00 BIKE SPEC 54
分析
133
…………………………………………………………Page 134……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
与内部联合的结果一样 都是六行 因为你使用的是左联合 PART 表决定返回的行
数 而 PART 表比 ORDERS 表小 所以 SQL 把其余的行数都扔掉了
不要对内部联合和外部联合操太多的心 大多数的 SQL 产品会判断应该在你的查询中
使用哪一种联合 事实上 如果你在过程中使用它 或在程序内使用这 包括存储过程和
将在第 13 天提到的 高级 SQL 使用 你无需指明联合类型 解释器会为你选择合适的
语法形式 如果你指明的联合类型 解释器会用你指明的类型来代替优化的类型
在一些解释器中使用+号来代替外部联合 +号的意思就是— — 显示我的全部内容包括
不匹配的内容 语法如下
SYNTAX
SQL》 select e。name e。employee_id ep。salary ep。marital_status from e;ployee_tbl e;
employee_pay_tbl ep
where e。employee_id = ep。employee_id(+) and e。name like '%MITH'
分析
这条语句将会联合两个表 标有+号的 employee_id 将会全部显示 包括不满足条件的
记录
表的自我联合
今天的最后一个内容是经常使用的自我联合 它的语法与联合两个表的语法相似 例
如 表 1 的自我联合可以写成如下格式
INPUT
SELECT * FROM TABLE1 TABLE1
OUTPUT
ROW REMARKS ROW REMARKS
row 1 Table 1 row 1 Table 1
row 1 Table 1 row 2 Table 1
row 1 Table 1 row 3 Table 1
row 1 Table 1 row 4 Table 1
row 1 Table 1 row 5 Table 1
row 1 Table 1 row 6 Table 1
row 2 Table 1 row 1 Table 1
row 2 Table 1 row 2 Table 1
134
…………………………………………………………Page 135……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
ROW REMARKS ROW REMARKS
row 2 Table 1 row 3 Table 1
row 2 Table 1 row 4 Table 1
row 2 Table 1 row 5 Table 1
row 2 Table 1 row 6 Table 1
分析
如果把这个表的内容全部列出的话它与联合两个有 6 行的表是相同的 这种联合
对于检查内部数据的一致性 如果你的零件生产部门的某人犯了迷糊输入了一个已经存在
的零件号时将会发生什么呢 这对于每一个人来说都是一个坏消息 发票会开错 你的应
用程序会崩溃 会耗掉你许多宝贵的时光 在下表中 重复的 PARTNUM 会导致问题的产
生
INPUT/OUTPUT
SELECT * FROM PART
PARTNUM DESCRIPTION PRICE
54 PEDALS 54。25
42 SEATS 24。50
46 TIRES 15。25
23 MOUNTAIN BIKE 350。45
76 ROAD BIKE 530。00
10 TANDEM 1200。00
76 CLIPPLESS SHOE 65。00提示符以及行号
建立一个子查询
简而言之 子查询可以让你把查询的结果与另一个查询绑定在一起 通用的语法格式
如下
SYNTAX
SELECT * FROM TABLE1 WHERE TABLE1。SOMECOLUMN =
(SELECT SOMEOTHERCOLUMN FROM TABLE2
WHERE SOMEOTHERCOLUMN = SOMEVALUE)
注意一下第二个查询是如何嵌入到第一个查询之中的 这里用 ORDERS 和 PART 表来
举一个实例
INPUT
SELECT * FROM PART
OUTPUT
PARTNUM DESCRIPTION PRICE
54 PEDALS 54。25
42 SEATS 24。50
46 TIRES 15。25
138
…………………………………………………………Page 139……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
PARTNUM DESCRIPTION PRICE
23 MOUNTAIN BIKE 350。45
76 ROAD BIKE 530。00
10 TANDEM 1200。00
INPUT/OUTPUT
SELECT *
FROM ORDERS
ORDEREDON NAME PARTNUM QUANTITY REMARKS
15…MAY…1996 TRUE WHEEL 23 6 PAID
19…MAY…1996 TRUE WHEEL 76 3
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!