《SQL必知必会》--创建和操纵表

第17课 创建和操纵表

在此说明:本节课将是该课程系列的最后一节课。本书后面还有几节课,但是由于此后内容在各DBMS中具体实现有所差异,因此书中并未深入讲解各知识的灵活应用。

敬请期待下一系列《MySQL必知必会》。

创建表

一般说来,创建表有两种形式:

  1. 多数DBNS都具有交互式创建和管理数据库表的工具;
  2. 表也可以直接用SQL语句操纵。

表创建基础:

  • 新表的名字,在关键字CREATE TABLE之后给出;
  • 表列的名字和定义之间用空格隔开,不同表列和定义之间用逗号隔开;
  • 有的DBMS还要求指定表的位置。

举例:

1
2
3
4
5
6
7
CREATE TABLE Products
(
prod_id char(10) not null,
prod_name char(254) not null,
prod_price decimal(8,2) not null default 10,
prod_desc text(1000) null default(current_date())
);

第一列为列名;
第二列为数据类型;
第三列为是否允许有空值;
第四列为是否设置默认值,不写则默认没有默认值;
因各系统差异,上述代码可能在某些DBMS中无法运行。

更新表

更新表ALTER TABLE在各个DBMS中的规定与应用更是有着显著差异。
以下是使用ALTER TABLE时需要考虑的事情:

  • 理想情况下,不要在表中包含数据时对其进行更新。
  • 所有DBMS都允许给现有的表增加列,不过对所增加的列的数据类型有所限制;
  • 许多DBMS不允许删除可更改表中已有的列;
  • 多数DBMS允许重新命名表中的列;
  • 许多DBMS限制对已经填有数据的列进行更改,对未填写数据的列几乎没有限制。

删除表

删除整个表非常简单,使用DROP TABLE语句即可:

DROP table class;

重命名表

各有不同!!!

小结

在本课可以很明显的感觉由于各个DBMS规定不同导致的无法深入学习的无奈。
剩下的几章会看完,会做笔记,但是不会再更新到博客上,请见谅。