按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
第三天 表达式 条件语句与运算
问题答案
应用下表的内容来回答下列问题
LASTNAME FIRSTNAME AREACODE PHONE ST ZIP
BUNDY AL 100 555…1111 IL 22333
MEZA AL 200 555…2222 UK
MERRICK BUD 300 555…6666 CO 80212
MAST JD 381 555…6767 LA 23456
BULHER FERRIS 345 555…3223 IL 23332
PERKINS ALTON 911 555…3116 CA 95633
BOSS SIR 204 555…2345 CT 95633
1 写一下查询 返回数据库中所有名字以 M 开头的每一个人
SELECT * FROM FRIENDS WHERE LASTNAME LIKE 'M%';
2 写一个查询 返回数据库 ST 为 LA 且 FIRSTNAME 以AL 开头的人
SELECT * FROM FRIENDS WHERE STATE = 'IL' AND FIRSTNAME = 'AL';
3 给你两个表 PART1 和 PART2 你如何才能找出两个表中的共有元素 请写出查询
使用 INTERSECT 切记 INTERSECT 将返回两个查询中的公共行
SELECT PARTNO FROM PART1
INTERSECT
SELECT PARTNO FROM PART2;
4 WHERE a 》= 10 AND a SELECT (FIRSTNAME || 'FROM') NAME; STATE
2 FROM FRIENDS
3 WHERE STATE = 'IL' AND
5 LASTNAME = 'BUNDY'
OUTPUT
NAME ST
AL FROM IL
仍使用上表 返回以下结果
NAME PHONE
MERRICK; BUD 300…555…6666
MAST; JD 381…555…6767
BULHER; FERRIS 345…555…3223
INPUT:
SQL》SELECT LASTNAME || ';' || FIRSTNAME NAME;
2 AREACODE || '…' || PHONE PHONE
3 FROM FRIENDS
4 WHERE AREACODE BETWEEN 300 AND 400;
第四天 函数 对获得数据的进一步处理
问题答案
8 哪个函数是用来将给定字符串的第一个字母变成大写而把其它的字符变成小写的
INITCAP
9 哪些函数的功能就如同它的名字含义一样
Group 函数了 aggregate 函数都是
10 下边的查询将如何工作
SQL》 SELECT COUNT(LASTNAME) FROM CHARACTERS;
它将返回表中的总记录数
538
…………………………………………………………Page 539……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
11 下边的查询是干什么的
SQL》 SELECT SUM(LASTNAME) FROM CHARACTERS;
由于LASTNAME 是字符串类型 所以这个查询将不会工作
12 哪个函数可以将 FIRSTNAME 列与 LASTNAME 列合并到一起
CONCAT 函数和||符号都可以
13 在下边的查询中 6 是什么意思
INPUT:
SQL》 SELECT COUNT(*) FROM TEAMSTATS;
OUTPUT:
COUNT(*)
6
6 是指表中的记录个数
14 下列语句将是否会工作
SQL》 SELECT SUBSTR LASTNAME;1;5 FROM NAME_TBL;
由于在lastname;1;5 周围没有括号 所以它会认为这是列的别名 正确的语句如下
SQL》 SELECT SUBSTR(LASTNAME;1;5) NAME FROM NAME_TBL;
练习答案
3 用今天的 TEAMSTARTS 表来写一个查询 用来显示谁的中球率低于 0。25 中球率
的计算方法为 hits/ab
INPUT:
SQL》 SELECT NAME FROM TEAMSTATS
2 WHERE (HITS/AB) 《 。25;
OUTPUT:
NAME
HAMHOCKER
CASEY
4 用今天的 CHARACTERS 表来写一个查询 要求返回下边的结果
INITIALS__________CODE
K。A。P。 32
1 row selected。
SQL》 select substr(firstname;1;1)||'。'||
substr(middlename;1;1)||'。'||
substr(lastname;1;1)||'。' INITIALS; code
539
…………………………………………………………Page 540……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
from characters
where code = 32;
第五天 SQL 中的子句
问题答案
6 哪种子句的作用与 LIKE % 相似
STARTING WITH
7 GROUP BY 子句的功能是什么 哪种子句的功能与它类似
GROUP BY 子句可以将其它函数返回的数据进行分组 它与 ORDER BY 子句在行为
上类似 ORDER BY 子句是将查询的结果像 GROUP BY 子句一样根据给出的列进行排序
8 下面的查询会工作吗
INPUT
SQL》SELECT NAME AVG SALARY DEPARTMENT FROM PAY_TBL
WHERE DEPARTMENT='ACCOUNTING' ORDER BY NAME
GROUP BY DEPARTMENT SALARY
语法不正确 GROUP BY 必须在 ORDER BY 之前 而且所有选择的列也必需在
GROUP BY 中给出
9 在使用 HAVING 子句时是否要同时使用 GROUP BY 子句
是的
10 你可以使用在 SELECT 语句中没有出现的列进行排序吗
可以 排序时要排序的列不必一定要在 SELECT 语句中出现
练习答案
3 使用上例中的 ORGCHART 表找一下每一个 TEAM 中 SICKLEAVE 天数超过 30 天
的人数
先来看一下每组有多少个人
INPUT:
SELECT TEAM; COUNT(TEAM)
540
…………………………………………………………Page 541……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
FROM ORGCHART
GROUP BY TEAM;
OUTPUT:
TEAM COUNT
COLLECTIONS 2
MARKETING 3
PR 1
RESEARCH 2
将它与下边的答案比较
INPUT:
SELECT TEAM; COUNT(TEAM)
FROM ORGCHART
WHERE SICKLEAVE 》=30
GROUP BY TEAM;
OUTPUT:
TEAM COUNT
COLLECTIONS 1
MARKETING 1
RESEARCH 1
输出显示了每一个组中病假数超过 30 天的人
4 使用 CHECKS 表 返回如下结果
OUTPUT
CHECK# PAYEE AMOUNT
1 MA BELL 150
INPUT:
SQL》 SELECT CHECK#; PAYEE; AMOUNT
FROM CHECKS
WHERE CHECK# = 1;
有多种方法可以完成这个问题 你能找出其它的吗
541
…………………………………………………………Page 542……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
第六天 表的联接
问题答案
6 如果一个表有 50000 行而另一个表有 100000 行时联接的结果会有多少行
5;000;000;000 行
7 下边的联接属于哪一种类型的联接
SELECT E。NAME ; E 。EMPLOYEE_ID; EP