《SQL 21日自学通(V3.0)(PDF格式)》第164章


12 如果执行下边的语句会有什么结果 
SQL》 DELETE * FROM COLLECTION; 
由于语法不正确 什么也不会删除 这里不需要*号 
13 如果执行下边的语句会有什么结果 
SQL》 DELETE FROM COLLECTION; 
在 COLLECTION 表中的所有记录都会被删除 
14 如果执行下边的语句会有什么结果 
SQL》 UPDATE COLLECTION SET WORTH = 555 
SET REMARKS = "UP FROM 525"; 
547 
…………………………………………………………Page 548……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
在 COLLECTION 表中的所有 WORTH 现在都变成了 555 而且所有的 REMARKS 都 
变成了 UP FROM 525 这可不是一件好事 
15 下边的语句是否会工作 
SQL》 INSERT INTO COLLECTION SET VALUES = 900 WHERE ITEM = "STRING" 
不会工作 INSERT 与 SET 不可能在一起工作 
16 下边的语句是否会工作 
SQL》 UPDATE COLLECTION SET VALUES = 900 WHERE ITEM = "STRING" 
可以工作 语法完全正确 
练习答案 
3 试着向一个表中插入一个不正确的数据类型 看一下出错信息 然后再插入一个 
正确的数据类型 
无论你使用何种类型的解释器 你都会收到一个所插入数据的类型与表中对应列的数 
据类型不匹配的错误信息 
4 试着使用你的数据库系统将某个表导出为其他库格式 然后再把它导入 熟悉一 
下你的数据库系统的导入与导出操作 并试着用其它数据库操作导出文件 
对于确切的导入和导出数据的语法请参见你的文档 如果你重复导入的话你可以想删 
除导入表中的所有数据 在真正进行数据操作之前你应该先熟悉一下导入导出命令 如果 
在你的表中存在唯一约束列那么你的导入操作可能会失败 你将会收到大量的关于唯一约 
束限制的错误 
第九天 创建和操作表 
问题答案 
9 ALTER DATABASE 语句经常用在修改已有表的结构上 对不对 
不对 大多数数据系统中没有 ALTER DATABASE 命令 修改已有表的结构应该用 
ALTER TABLE 命令 
548 
…………………………………………………………Page 549……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
10 DROP TABLE 语句与 DELETE FROM 的作用是相同的 对不对 
不对 这两个命令并不等价 DROP TABLE 将会把表的记录及结构从数据库中全部删 
除 而 DELETE FROM 则只是将表中的记录全部删除 表的结构在数据 
库中依然存在 
11 可以使用 CREATE TABLE 命令向数据库中加入一个新表 对不对 对 
12 为什么下边的语句是错误的 
INPUT 
CREATE TABLE new_table ( 
ID NUMBER 
FIELD1 char(40) 
FIELD2 char(80) 
ID char(40) 
该语句存在着两个问题 首先是 ID 的命句在表中重复了 而它们的数据类 
型并不同 字段名重复使用是非法的 其次是在语句的末尾没有对应的圆括号 
正确的语句应该如下 
INPUT 
CREATE TABLE new_table ( 
ID NUMBER; 
FIELD1 char(40); 
FIELD2 char(80)); 
13 为什么下边的语句是错误的 
INPUT 
ALTER DATABASE BILLS ( 
PANY char(80)) 
更新字段名称和长度应该使用 ALTER TABLE 命令 而不是 ALTER DATABASE 
命令 
14 当一个表建立时 谁是它的所有者 
它的创建人 如果你用你的 ID 登录 那么所有都是你的 ID 如果你用 SYSTEM 
登录 那么所有都是 SYSTEM 
15 如果字符型列的长度在不断变化 如何才能做出最佳的选择 
549 
…………………………………………………………Page 550……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
VARCHAR2 是最好的选择 它可以允许存储在其中的字符串的长度变化 
16 表名是否可以重复 
可以 只要所有者或计划不同就行 
练习答案 
4 用你喜欢的格式向 BILLS 数据库中加入两个表 名字分别叫 BANK 和 
ACCOUNT_TYPE BANK 表中应该包含有 BANK_ACCOUNT 表中 BANK 字段 
的 信 息 ACCOUNT_TYPE 表 中 也 应 该 包 含 有 BANK_ACCOUNT 表 中 
ACCOUNT_TYPE 字段的信息 试着尽可以地减少数据的数量 
你应该使用 CREAETE TABLE 命令来创建表 可能的语句形式如下 
SQL》 CREATE TABLE BANK 
2 ( ACCOUNT_ID NUMBER(30) NOT NULL; 
BANK_NAME VARCHAR2(30) NOT NULL; 
ST_ADDRESS VARCHAR2(30) NOT NULL; 
CITY VARCHAR2(15) NOT NULL; 
STATE CHAR(2) NOT NULL; 
ZIP NUMBER(5) NOT NULL 
SQL》 CREATE TABLE ACCOUNT_TYPE 
( ACCOUNT_ID NUMBER(30) NOT NULL; 
SAVINGS CHAR(30); 
CHECKING CHAR(30); 
5 使用你已经创建的五个表 BILLS BANK_ACCOUNTS PANY BANK 
ACCOUNT_TYPE 改为表的结构以用整数型字段作为关键字以取代字符型字段 
作为关键字 
SQL》 ALTER TABLE BILLS DROP PRIMARY KEY; 
SQL》 ALTER TABLE BILLS ADD (PRIMARY KEY (ACCOUNT_ID)); 
SQL》 ALTER TABLE PANY ADD (PRIMARY KEY (ACCOUNT_ID)); 
6 使用你所知道的 SQL 的联接知识 见第 6 天 表的联接 写几个查询来联接 BILLS 
数据库中的几个表 
550 
…………………………………………………………Page 551……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪 
由于在上一个练习中我们已经修改了表的结构使其关键字段为 ACCOUNT_ID 列 所 
以的表都可以根据该列进行?
小说推荐
返回首页返回目录