友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
SQL 21日自学通(V3.0)(PDF格式)-第68部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
select * from customer_table
where city = 'INDIANAPOLIS';
563
…………………………………………………………Page 564……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
7 定义一个名字为 UnknownCode 的异常
DECLARE
UnknownCode EXCEPTION;
8 请写一个语句 使得在 AMOUNT_TABLE 中的AMT 当 CODE 为 A 时其值为 10
当 CODE 为 B 时其值为 20 当 CODE 既不是 A 也不是 B 时激活一个名字叫
UnknownCode 的异常 表中的内容只有一行
IF ( CODE = 'A' ) THEN
update AMOUNT_TABLE
set AMT = 10;
ELSIF ( CODE = 'B' ) THEN
update AMOUNT_TABLE
set AMT = 20;
ELSE
raise UnknownCode;
END IF;
第 19 天 TRANSACT…SQL 简介
问题答案
问 在 ORACLE 的 PL/SQL 中与在 TRANSACT…SQL 中 SQL 字的使用方法与 ANSI 标准
的 SQL 是完全相同的 对不对
答 不对 这些关键字不受版权的保护 产品在许多内容上都与 ANSI 标准一致 但不是
每样东西都一致
问 静态的 SQL 比动态的 SQL 灵活性差 尽管它的性能要比动态的好 对不对
答 对 静态的 SQL 需要进行预编译 而不是动态编译 所以它的灵活性不如动态 SQL
但是由于查询已经被处理过 所以它的性能要更好些
练习答案
3 如果你没有使用 SYBASE 或 MICROSOFT 的 SQL SERVER 那么请你比较一个你的产
品对 SQL 的扩展与今天所讲的有何不同
由于今天所讲的几乎全是 TRANSACT…SQL 我们并没有对 ANSI 标准的其它扩展进行
564
…………………………………………………………Page 565……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
探讨 大多数的数据库随机文档都标明了它所提供了对 SQL 的有效的扩展 这些扩展在其
它数据库中使用是不同的
4 写一组 SQL 语句 它可以对一些已知的条件进行检测 如果条件为真 执行一些操作
否则的话执行另一些操作
该操作需要使用 IF 语句 具有的逻辑结构今天已经讨论过了
第 20 天 SQL*PLUS
问题答案
7 哪些命令可以改变你的 SQL 会话的性能
SET 命令可以改变你的会话设置
8 你可以在 SQL 的脚本中提示用户输入参数并根据输入的参数运行吗
可以 你的脚本能从用户输入接受参数并把它赋给变量
9 如果你对 CUSTOMERS 表创建了一个汇总报表 你如何在你的报表中对你的数据进行
分组
你可能会依据客户进行分组 因为你的数据是从客户表中选择的
10 你在使用 LOGIN。SQL 文件时有哪些限制
它的限制就是你输入到其中的内容必须是 SQL 或 SQL*PLUS 的有效命令
11 DECODE 函数与过程语言中的 LOOP 功能是等价的 对不对
不对 它与 IF THEN 类似
12 如果你将查询重新定向到一个已经存在的文件中 你的输出将追加到这个文件 对不
对
不对 新文件将会覆盖原文件的内容
练习答案
4 利用在今天开始时的 PRODUCTS 表 写一个查询选择其中的所有数据并对记录的个数
进行汇总 要生成报表并且不得使用 SET FEEDBACK ON 命令
pute sum of count(*) on report
break on report
565
…………………………………………………………Page 566……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
select product_id; product_name; unit_cost; count(*)
from products
group by product_id; product_name; unit_cost;
5 假如今天是 1998 年 5 月 12 日星期一 写一个查询产生下边的输出
Today is Monday; May 12 1998
答
set heading off
select to_char(sysdate;' 〃Today is 〃Day; Month dd yyyy')
from dual;
6 试一下下边的语句
1 select *
2 from orders
3 where customer_id = '001'
4* order by customer_id;
不需要在缓冲区中重新输入这些语句 将 FROM 子句中的表改为 CUSTOMERS
在 ORDER BY 子句中加入 DESC
l2
c/orders/customer
现在你 DESC 加入到 ODRER BY 子句中
l4
append DESC
第 21 天 常见的 SQL 错误及解决方法
问题答案
1。 A user calls and says; 〃I can't sign on to the database。 But everything was working fine
yesterday。 The error says invalid user/password。 Can you help me?〃 What steps should you take?
At first you would think to yourself; yeah sure; you just forgot your password。 But this error can
be returned if a front…end application cannot connect to the database。 However; if you know the
database is up and functional; just change the password by using the ALTER USER mand and
tell the user what the new password is。
2。 Why should tables have storage clauses and a tablespace destination?
In order for tables not to take the default settings for storage; you must include the storage clause。
Otherwise medium to large tables will fill up and take extents; causing slower performance。 They
also may run out of space; causing a halt to your work until the DBA can fix the space problem。
Exercise Answers
566
…………………………………………………………Page 567……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
1。 Suppose you are logged on to the database as SYSTEM; and you wish to drop a table called
HISTORY in your schema。 Your regular user ID is JSMITH。 What is the correct syntax to drop
this table?
Because you are signed on as SYSTEM; be sure to qualify the table by including the table owner。
If you do not specify the table owner; you could accidentally drop a table called HISTORY in the
SYSTEM schema; if it exists。
SQL》 DROP TABLE JSMITH。HISTORY;
2。 Correct the following error:
INPUT:
SQL》 select sysdate DATE
2 from dual;
OUTPUT:
select sysdate DATE
*
ERROR at line 1:
ORA…00923: FROM keyword not found where expected
DATE is a reserved word in Oracle SQL。 If you want to name a column heading DATE; then you
must use double quotation marks: 〃DATE〃。
3。 一个用户打电话说 “ 我不能登录数据库了 昨天还能呢 你能帮帮我吗 你该如
何做
首先 你要问他是否忘记了密码 但是这个错误也可能是因为前端无法联接到数据库
产生的 如果你可以确认数据据正常 那么你可以更改用户属性 并告诉他新的密码
4。 为什么表在存储子句中有表空间项
这是为了可以让表不使用默认的存储空间选项 否则如果表很大时 系统的性能就会
变慢 也可能会导致运行超时 系统挂死直到 DBA 修正了这个错误
练习答案
3。 如果你以 SYSTEM 身份登录了数据库 你想删除你的计划中的一个名字叫HISTORY
的表 如果你的用户 ID 是 JSMITH 那么正确的语法是怎样的
因为你是以 SYSTEM 身份登录的 所以要确认表的所有者对表的限制 如果你不是指
定的表的所有者 你也可以在 SYSTEM 计划中删除了这个表
4。 更正下边语句的错误
INPUT:
SQL》 select sysdate DATE
567
…………………………………………………………Page 568……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
2 from dual;
OUTPUT:
select sysdate DATE
*
ERROR at line 1:
ORA…00923: FROM keyword not found where expected
DATE 是 ORACLE SQL 的保留字 如果你想把列句命名为 DATE 你应该在它的两边
加上单引号
568
………………………………………………………………………用户上传之内容结束……………………………………………………………………………………
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!