第17课 创建和操纵表
这一课讲授创建、更改和删除表的基本知识。
17.1 创建表
17.1.1 表创建基础
利用
CREATE TABLE创建表,必须给出下列信息:
1)新表的名字,在关键字CREATE TABLE之后给出;
2)表列的名字和定义,用逗号分隔;
3)有的DBMS还要求指定表的位置。
CREATE TABLE
Products
(prod_id CHAR(10) NOT NULL,
vend_id CHAR(10) NOT NULL,
prod_price DECIMAL(8,2 NOT NULL, prod_desc VARCHAR(1000) NULL
);
|
每个表列要么是NULL列,要么是NOT NULL列,这种状态在创建时由表的定义规定。NULL为默认设置,如果不指定NOT NULL,就认为指定的是NULL。
17.1.3 指定默认值
SQL允许指定默认值,在插入行时如果不给出值,DBMS将自动采用默认值。默认值在CREATE TABLE语句的列定义中用
关键字DEFAULT指定。
CREATE TABLE OrderItems
(order_num INTEGER NOT NULL,
order_item INTEGER NOT NULL,
quantity INTEGER NOT NULL DEFAULT 1
,
item_price DECIMAL(8,2) NOT NULL
);
|
quantity列为订单中每个物品的数量。在这个例子中,这一列的描述增加了DEFAULT 1,指示DBMS,如果不给出数量则使用数量1。
17.2 更新表
更新表定义,可以使用
ALTER TABLE语句。虽然所有的DBMS都支持ALTER TABLE,但它们所允许更新的内容差别很大。
使用ALTER TABLE更改表结构,必须给出下面的信息:
1)在ALTER TABLE之后给出要更改的表名(该表必须存在,否则将出错);
2)列出要做哪些更改
ALTER TABLE
Vendors
ADD
vend_phone CHAR(20);
|
分析▼
这条语句给Vendors表增加一个名为vend_phone的列,其数据类型为CHAR。
警告:小心使用ALTER TABLE
使用ALTER TABLE要极为小心,应该在进行改动前做完整的备份(模式和数据的备份)。数据库表的更改不能撤销,如果增加了不需要的列,也许无法删除它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据。
17.3 删除表
删除表(删除整个表而不是其内容)非常简单,使用
DROP TABLE语句即可:
DROP TABLE
CustCopy;
|
小结
这一课介绍了几条新的SQL语句。CREATE TABLE用来创建新表,ALTER TABLE用来更改表列(或其他诸如约束或索引等对象),而DROP TABLE用来完整地删除一个表。这些语句必须小心使用,并且应该在备份后使用。由于这些语句的语法在不同的DBMS中有所不同,所以更详细的信息请参阅相应的DBMS文档。