按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
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
它的语法允许你建立一个字段类型与已有表中选出的字段类型相同的新表 你也可以
对新表中的字段进行重命名
INPUT/OUTPUT
SQL》 CREATE TABLE NEW_BILLS(NAME; AMOUNT; ACCOUNT_ID)
AS (SELECT * FROM BILLS WHERE AMOUNT 《 50);
Table created。
分析
上边的语句用 BILL 表中 AMOUNT 小于 50 的记录创建了一个新表
在一些数据库系统中你也可以使用下边的语法
SYNTAX
186
…………………………………………………………Page 187……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
INSERT NEW_TABLE
SELECT from OLD_TABLE
上边的语法格式将会严格地按照原有表的字段格式和数据建立一个新表 下边用 SQL
Server 的Transact…SQL 来对它进行举例
INPUT
INSERT NEW_BILLS
1》 select * from BILLS where AMOUNT 《 50
2》 go
go 语句在 SQL SERVER 中是处理 SQL 缓冲区内指令的命令 它的作用等同于在
ORACLE 中的分号
ALTER TABLE 语句
没有道理为每件事对你的数据库进行多次的设计 但又确实需要对数据库和应用程序
进行改动 那么 ALTER TABLE 语句可以让数据库的设计者或设计人员在表创建以后修改
它的结构
ALTER TABLE 语句可以帮助你做两件事
l 加入一列到已经存在的表中
l 修改已经存在的表中的某一列
ALTER TABLE 语句的语法如下
SYNTAX
ALTER TABLE table_name
下边的命令会将 BILL 表中的 NAME 字段改为长度 40 个字符
INPUT/OUTPUT
SQL》 ALTER TABLE BILLS MODIFY NAME CHAR(40);
Table altered。
注 你可以增加或减少某一列的长度 但是你不能将它减少到使修改后的长度小于其中的
已有数据长度
下边的语句是向 NEW_BILLS 表中加入一个新列
187
…………………………………………………………Page 188……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
INPUT/OUTPUT
SQL》 ALTER TABLE NEW_BILLS
2 ADD MENTS CHAR(80);
Table altered。
分析
这条语句会加入一个叫 MENTS 的长度为 80 个字符的字段 该字段会加在已有
字段的右边
在使用 ALTER TABLE 时会有许多限制 你不能用它来对一个数据库增加或删除字段
它可以将一个列由NOT NULL 改变为NULL 而不必使用其它方法 但是如果想把列由NULL
改变为 NOT NULL 时则要求指定的字段中不能有 NULL 值 想把某一列由 NOT NULL 改
变为 NULL 可以使用下边的语法
SYNTAX
ALTER TABLE table_name MODIFY (column_name data_type NULL)
如果想把一列由 NULL 改变为 NOT NULL 你必需经过以下步骤
1 确认要改变的列中有没有 NULL 值
2 删掉你所发现的任何 NULL 值 删除该记录 更新这一记录等等
3 使用 ALTER TABLE 命令
注 在一些数据库管理系统中允许使用 MODIFY 子句 另外一些则不可以 而又有
一些在 ALTER TABLE 中加入了其它的子句 在 ORACLE 中 你甚至可以修
改表的存储参数 请检查你的解释器以找出它对 ALTER TABLE 的确实用法
DROP TABLE 语句
SQL 提供了一个可以从数据库去彻底地移去某个表的命令 DROP TABLE 可以从数据
库中删除一个指定的表以及与之相关联的索引和视图 在第 10 天会进行更详细的讨论
一旦这个命令发出以后 就没有办法可以彻消它 它最常用在你创建一个临时表 并且已
经进行完毕了你的全部计划工作的时候 DROP TABLE 语句的语法格式如下
SYNTAX
DROP TABLE table_name
下边是如何删掉一个叫 NEW_BILLS 表的实例
188
…………………………………………………………Page 189……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
INPUT/OUTPUT
SQL》DROP TABLE NE