按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
还有许多种写法
第 7 天 子查询 内嵌的 SELECT 语句
问题答案
1 在嵌套查询部分 有一个例子中子查询返回了以下几个数值
LE SHOPPE
BIKE SPEC
LE SHOPPE
BIKE SPEC
JACKS BIKE
其中有一些结果是重复的 为什么在最终的结果中没有出现重复
由于查询调用了子查询 所以在最后的结果中没有出现重复
SELECT ALL C。NAME; C。ADDRESS; C。STATE;C。ZIP
FROM CUSTOMER C
WHERE C。NAME IN
只会返回 NAME 的州为 IN 的记录 这里不要为 IN 在复杂语句里的简写所迷糊
2 下面的话是对还是错
4 汇总函数如 SUM AVG COUNT MAX MIN 都返回多个数值 不对 它们
都返回多个数值
5 子查询最多允许嵌套两层 不对 嵌套层数的限制是根据你的解释器而定的
6 相关子查询是完全的独立查询 不对 相关子查询中你使用外部引用
544
…………………………………………………………Page 545……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
3 下边的子查询中哪一个是使用 ORDERS 表和 PART 表工作的
INPUT/OUTPUT
SQL》 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
INPUT/OUTPUT
SQL》 SELECT * FROM ORDERS
ORDEREDON NAME PARTNUM QUANITY REMARKS
15…MAY…96 TRUE WHEEL 23 6 PAID
19…MAY…96 TRUE WHEEL 76 3 PAID
2…SEP…96 TRUE WHEEL 10 1 PAID
30…JUN…96 BIKE SPEC 54 10 PAID
30…MAY…96 BIKE SPEC 10 2 PAID
30…MAY…96 BIKE SPEC 23 8 PAID
17…JAN…96 BIKE SPEC 76 11 PAID
17…JAN…96 LE SHOPPE 76 5 PAID
1…JUN…96 LE SHOPPE 10 3 PAID
1…JUN…96 AAA BIKE 10 1 PAID
1…JUN…96 AAA BIKE 76 4 PAID
1…JUN…96 AAA BIKE 46 14 PAID
11…JUL…96 JACKS BIKE 76 14 PAID
A SQL》 SELECT * FROM ORDERS WHERE PARTNUM =
SELECT PARTNUM FROM PART
WHERE DESCRIPTION = 'TRUE WHEEL';
不对 在子查询的周围没有括号
B SQL》 SELECT PARTNUM FROM ORDERS WHERE PARTNUM =
(SELECT * FROM PART
WHERE DESCRIPTION = 'LE SHOPPE')
不会 SQL 引擎在=操作后边关联表所的所有了
545
…………………………………………………………Page 546……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
C SQL》 SELECT NAME; PARTNUM FROM ORDERS WHERE EXISTS
(SELECT * FROM ORDERS
WHERE NAME = 'TRUE WHEEL')
对的 这个查询是正确的
练习答案
应用 ORDERS 表来写一个查询 返回所以字母顺序排列在 JACKS BIKE 之后的NAMES
和 ODEREDON 数据
INPUT/OUTPUT:
SELECT NAME; ORDEREDON
FROM ORDERS
WHERE NAME 》
(SELECT NAME
FROM ORDERS
WHERE NAME ='JACKS BIKE')
NAME ORDEREDON
TRUE WHEEL 15…MAY…1996
TRUE WHEEL 19…MAY…1996
TRUE WHEEL 2…SEP…1996
TRUE WHEEL 30…JUN…1996
LE SHOPPE 17…JAN…1996
LE SHOPPE 1…JUN…1996
第八天 操作数据
问题答案
9 下边的语句有什么错误
DELETE COLLECTION
如果你想删除 COLLECZTION 表中的所有记录 你必需使用下边的语法
DELETE FROM COLLECTION;
546
…………………………………………………………Page 547……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
要注意这条语句会删除表中的所有的记录 你可以使用下边的语法来有选择地删
除表中的记录
DELETE FROM COLLECTION
WHERE VALUE = 125
这条语句将会删除所有 VALUE 为 125 的记录
10 下边的语句有什么错误
INSERT INTO COLLECTION SELECT * FROM TABLE_2
这条语句的目的是将 TABLE_2 中的所有记录都拷贝到 COLLECTION 表中
这里存在的主要问题是在 INSERT 语句中使用了 INTO 关键字 在把一个表中的
数据拷贝到另一个表中时 你必需使用下边的语法
INSERT COLLECTION
SELECT * FROM TABLE_2;
同时 要记住 TABLE_2 中的数据类型和字段次序与 COLLECTION 表中的一样
11 下边的语句有什么错误
UPDATE COLLECTION (〃HONUS WAGNER CARD〃 25000; 〃FOUND IT〃)
这条语句把 UPDATE 与 INSERT 弄混了 如果想更新 COLLECTIONS 表中的数
值 你应该使用下边的语法
UPDATE COLLECTIONS
SET NAME = 〃HONUS WAGNER CARD〃;
VALUE = 25000;
REMARKS = 〃FOUND IT〃;
12 如果执行下边的语句会有什么结果
SQL》 DELETE * FROM COLLECTION;
由于语法不正确 什么也不会删除