SQL必知必会 第17课 创建和操纵表
17.1 创建表
一般有两种创建表的方法:
- 多数DBMS都具有交互式创建和管理数据库表的工具;
- 表也可以直接用SQL语句操纵。
用程序创建表,可以使用SQL的create table 语句。不同的SQL实现中,create table 语句的语法可能有所不同。
表创建基础
利用create table创建表,必须给出如下信息:
- 新表的名字,在关键字create table之后给出
- 表列的名字和定义,用逗号分隔
有的DBMS还要求指定表的位置
创建products表
create table products
(prod_id CHAR(10) NOT NULL,
vend_id CHAR(10) NOT NULL,
prod_name CHAR(254) NOT NULL,
prod_price DECIMAL(8,2) NOT NULL,
prod_desc VARCHAR(1000) NULL
);
使用NULL值
每个表列要么是NULL列,要么是NOT NULL列,这种状态在创建时由表的定义规定。如果不指定NOT NULL,就认为指定的是NULL。
NULL为默认设置,如果不指定NOT NULL,则认为指定的是NULL。
主键不允许有NULL。
指定默认值
SQL允许指定默认值。在插入行时如果不给出值,则自动采用默认值。
# 指定默认值
create table orderItems
(
order_num INTEGER NOT NULL,
order_item INTEGER NOT NULL,
prod_id CHAR(10) NOT NULL,
quantity INTEGER NOT NULL DEFAULT 1,
item_price DECIMAL(8,2) NOT NULL
);
17.2 更新表
更新表定义,可以使用ALTER TABLE语句。
- 理想情况下,不要在表中包含数据时对其进行更新。
- 所有的DBMS都允许现有的表增加列,不过对所增加列的数据类型有所限制。
- 许多DBMS不允许删除或更改表中的列。
- 多数DBMS允许重新命名表中的列。
- 许多DBMS限制对已经填有数据的列进行更改,对未填有数据的列几乎没有限制。
使用ALTER TABLE更改表结构,需要给出如下信息:
17.3 删除表
使用DROP TABLE语句即可。
# 删除表
DROP TABLE custCopy;
17.4 重命名表
每个DBMS对表重命名的支持有所不同SQLServer使用sp_rename,SQLite使用ALTER TABLE语句,其他DBMS一般使用RENAME语句。
还没有评论,来说两句吧...