按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
ROWID 字段作为主关键字有许多理由 首先 对于整数值的归并操作要远远快于对一个
长度为 80 个字符的字符串的归并操作 因为整数的存储长度小于字符串 所以最终归并的
结果集也将小于字符串的归并结果集 此外的一个好处是使用 ROWID 字段你可以看到表
的组织情况 而字符则会产生数字输入的问题 例如 当一个人输入了 111 First Street 而
183
…………………………………………………………Page 184……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
另一人输入了 111 1st Street 时会有什么情况发生 如果又有一个输入了 111 1st St。呢 在
今天的图形用户界面环境下 正确的字符串会被输入到一个列表框中 当用户从列表框中
选择的时候 代码会将字符串变换成为一个唯一的 ID 号并将这个号码存储在数据库中
到现在为止 你可以用你在今天所学过的东西来创建一个表了 随后我们将在今天使
用这些表 所以你应该在表中输入一些数据 使用昨天的 INSERT 命令可以向表中加入表
9。3 9。4 和 9。5 中的数据
INPUT/OUTPUT
SQL》create database PAYMENTS
Statement processed。
SQL》create table BILLS (
2 NAME CHAR(30) NOT NULL;
3 AMOUNT NUMBER;
4 ACCOUNT_ID NUMBER NOT NULL);
Table created。
SQL》 create table BANK_ACCOUNTS (
2 ACCOUNT_ID NUMBER NOT NULL;
3 TYPE CHAR(30);
4 BALANCE NUMBER;
5 BANK CHAR(30));
Table created。
SQL》 create table PANY (
2 NAME CHAR(30) NOT NULL;
3 ADDRESS CHAR(50);
4 CITY CHAR(30);
5 STATE CHAR(2));
Table created。
Table 9。3。 Sample data for the BILLS table。
Name Amount Account_ID
Phone pany 125 1
Power pany 75 1
184
…………………………………………………………Page 185……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
Name Amount Account_ID
Record Club 25 2
Software pany 250 1
Cable TV pany 35 3
Table 9。4。 Sample data for the BANK_ACCOUNTS table。
Account_ID Type Balance Band
1 Checking 500 First Federal
2 Money Market 1200 First Investor's
3 Checking 90 Credit Union
Table 9。5。 Sample data for the PANY table
Name Address City State
Phone pany 111 1st Street Atlanta GA
Power pany 222 2nd Street Jacksonville FL
Record Club 333 3rd Avenue Los Angeles CA
Software pany 444 4th Drive San Francisco CA
Cable TV pany 555 5th Drive Austin TX
表的存储与尺寸的调整
大多数 RDBMS 都设定了表的默认大小和存储的定位 如果你没有指定表的大小和存
储大小它就会采用默认值 它可能是非常不合适的 特别对于大型的表来说更是如此 默
认大小根据解释器和不同而不同 下边是一个在创建表时使用 STORAGE 子句的例子 对
于 ORACLE 而言
INPUT
SQL》 CREATE TABLE TABLENAME
2 (COLUMN1 CHAR NOT NULL;
3 COLUMN2 NUMBER;
4 COLUMN3 DATE)
5 TABLESPACE TABLESPACE NAME
6 STORAGE
7 INITIAL SIZE;
8 NEXT SIZE;
9 MINEXTENTS value;
185
…………………………………………………………Page 186……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
10 MAXEXTENTS value;
11 PCTINCREASE value);
OUTPUT
Table created。
分析
在 ORACLE 中你可以指定需要存放的表的大小 定夺的依据是可用空间的大小 经常
是由数据库管理人员来决定 INITIAL SIZE 表的初始长度 最初的分配空间 NEXT SIZE
是指追加的长度 MINEXTENTS 和 MAXEXTENTS 用于指定表的最小和最大长度
PCTINCREASE 则指明表每次追加的百分比或进行下一次追加
用一个已经存在的表来建表
CREATE TABLE 是最为通用的建表的方法 然而 在一些数据库管理系统中提供了一
种可供选择的方法 — — 使用已经存在的表中的格式和数据 当你对表进行临时改动需要将
数据选出时这种方法是很有用的 当你要创建的表与已有的表类似并且其内容也类似时它
也非常有用 你不必须重新输入这些信息 在 ORACLE 中它的语法如下
SYNTAX
CREATE TABLE NEW_TABLE(FIELD1; FIELD2; FIELD3)
AS (SELECT FIELD1; FIELD2; FIELD3
FROM OLD_TABLE
它的语法允许你建立一个字段类型与已有表中选出的字段类型相同的新表