表的删除和更新

1 增加字段

1.1 增加字段不同的语法

-- DB2 PostgreSQL MySQL
ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);
-- Oracle
ALTER TABLE Product ADD (product_name_pinyin VARCHAR2(100));
-- SQL Server
ALTER TABLE Product ADD product_name_pinyin VARCHAR(100);

1.2 Oracle 增加多个字段

另外,在Oracle中同时添加多列的时候,可以像下面这样使用括号。
ALTER TABLE <表名> ADD (<列名>,<列名>,……);

2 删除字段

2.1 删除字段不同的语法

--SQL Server DB2 PostgreSQL MySQL
ALTER TABLE Product DROP COLUMN product_name_pinyin;
--Oracle
ALTER TABLE Product DROP (product_name_pinyin);

2.2 Oracle 删除多列

Oracle 中不用写COLUMN。
ALTER TABLE <表名> DROP <列名>;
另外,在Oracle中同时删除多列的时候,可以像下面这样使用括号来实现。
ALTER TABLE <表名> DROP (<列名>,<列名>,……);
Warning

注意:所有数据库表定义更改后无法恢复,所以在执行 ALTER TABLE 语句之前请务必仔细确认。

3 表的数据变更

-- DML :插入数据
BEGIN TRANSACTION;
INSERT INTO Product VALUES ('0001', 'T恤衫 ', ' 衣服 ',1000, 500, '2009-09-20');
INSERT INTO Product VALUES ('0002', ' 打孔器 ', ' 办公用品 ',500, 320, '2009-09-11');
INSERT INTO Product VALUES ('0003', ' 运动T恤 ', ' 衣服 ',4000, 2800, NULL);
INSERT INTO Product VALUES ('0004', ' 菜刀 ', ' 厨房用具 ',3000, 2800, '2009-09-20');
INSERT INTO Product VALUES ('0005', ' 高压锅 ', ' 厨房用具 ',6800, 5000, '2009-01-15');
INSERT INTO Product VALUES ('0006', ' 叉子 ', ' 厨房用具 ',500, NULL, '2009-09-20');
INSERT INTO Product VALUES ('0007', ' 擦菜板 ', ' 厨房用具 ',880, 790, '2008-04-28');
INSERT INTO Product VALUES ('0008', ' 圆珠笔 ', ' 办公用品 ',100, NULL,'2009-11-11');
COMMIT;

4 变更表名

--Oracle PostgreSQL
ALTER TABLE Poduct RENAME TO Product;
--DB2
RENAME TABLE Poduct TO Product;
--SQL Server
sp_rename 'Poduct', 'Product';
--MySQL
RENAME TABLE Poduct to Product;