表的删除和更新
一、重点内容总结
1、使用DROP TABLE语句来删除表
2、使用ALTER TABLE语句向表中添加列或者从表中删除列
二、表的删除(DROP TABLE语句)
删除表时使用的DROP TABLE语句
DROP TABLE <表名>;
删除Shopping表语句为
DROP TABLE Shopping;
删除的表是无法恢复,即使是被误删的表,也无法恢复,只能重新创建,然后重新插入数据
三、表定义的更新(ALTER TABLE语句)
表创建出来之后发现少了几列,无需把表删除再重新创建,只需使用变更表定义的ALTER TABLE 语句就可以
添加列的ALTER TABLE语句:
ALTER TABLE <表名> ADD COLUMN <列的定义>;
补充:
Oracle 和SQL Server 中不用写COLUMN。
ALTER TABLE <表名> ADD <列名> ;
另外,在Oracle 中同时添加多列的时候,可以像下面这样使用括号。
ALTER TABLE <表名> ADD (<列名>,<列名>,……);
添加一列可以存储100位的可变长字符串的Shopping_name_pinyin列
DB2/PostgreSQL/MySQL 使用语句:
ALTER TABLE Product ADD COLUMN Shopping_name_pinyin VARCHAR(100);
Oracle使用语句:
ALTER TABLE Product ADD (Shopping_name_pinyin VARCHAR2(100));
SQL Server使用语句:
ALTER TABLE Product ADD Shopping__name_pinyin VARCHAR(100);
删除列的ALTER TABLE语句:
ALTER TABLE <表名> DROP COLUMN <列名>;
补充:
Oracle 中不用写COLUMN。
ALTER TABLE <表名> DROP <列名> ;
另外,在Oracle 中同时删除多列的时候,可以像下面这样使用括号来实现。
ALTER TABLE <表名> DROP (<列名>,<列名>,……);
删除Shopping_name_pinyin列:
SQL Server/DB2/PostgreSQL/MySQL
ALTER TABLE Product DROP COLUMN Shopping_name_pinyin;
Oracle
ALTER TABLE Product DROP (Shopping_name_pinyin);
ALTER TABLE 语句和DROP TABLE 语句一样,执行之后无法恢复。
误添的列可以通过ALTER TABLE 语句删除,或者将表全部删除之后重新再创建
四、向Shoppoing表中插入数据
向Shopping表中插入数据的SQL语句:
SQL Server / PostgreSQL
-- DML :插入数据
BEGIN TRANSACTION;—————————①
INSERT INTO shopping VALUES ('0001', 'T恤' ,'衣服', 1000, 500, '2019-07-20');
INSERT INTO shopping VALUES ('0002', '打孔器', '办公用品', 500, 320, '2019-09-11');
INSERT INTO shopping VALUES ('0003', '运动T恤', '衣服', 4000, 2800, NULL);
INSERT INTO shopping VALUES ('0004', '菜刀', '厨房用具', 3000, 2800, '2019-09-20');
INSERT INTO shopping VALUES ('0005', '高压锅', '厨房用具', 6800, 5000, '2019-01-15');
INSERT INTO shopping VALUES ('0006', '叉子', '厨房用具', 500, NULL, '2019-9-20');
INSERT INTO shopping VALUES ('0007', '擦菜板', '厨房用具', 880, 790, '2018-04-28');
INSERT INTO shopping VALUES ('0008', '圆珠笔', '办公用品', 100, NULL, '2019-11-11');
COMMIT;
补充:
在MySQL 中运行时,需要将上述代码中的BEGIN TRANSACTION;改写成START TRANSACTION;
在Oracle 和DB2中运行时,无需使用上述代码中的BEGIN TRANSACTION;(请予以删除)
五、变更表名
将Shopping变更为Shop:
Oracle/PostgreSQL:
ALTER TABLE shopping RENAME TO shop;
DB2:
RENAME TABLE shopping TO shop;
SQL Server:
sp_rename 'shopping', 'shop';
MySQL:
RENAME TABLE shopping to shop;
通常在RENAME 之后按照< 变更前的名称>、< 变更后的名称> 的顺序来指定表的名称