----start
有点SQL基础的人都会写INSERT语句,可是有很大一部分人不知道DB2的INSERT语句有三种格式,即:一次插入一行,一次插入多行和从SELECT语句中插入。考虑下面的情况:
- CREATE TABLE USER
- (
- NAME VARCHAR(20) NOT NULL,---姓名
- BIRTHDAY DATE---生日
- );
CREATE TABLE USER ( NAME VARCHAR(20) NOT NULL,---姓名 BIRTHDAY DATE---生日 );
现在要求你插入一行数据,我们这么写:
- INSERT INTO USER (NAME,BIRTHDAY) VALUES ('张三','2000-1-1');
INSERT INTO USER (NAME,BIRTHDAY) VALUES ('张三','2000-1-1');
现在要求你插入三行数据,我们这么写:
- INSERT INTO USER (NAME,BIRTHDAY) VALUES ('张三','2000-1-1');
- INSERT INTO USER (NAME,BIRTHDAY) VALUES ('李四','2000-1-1');
- INSERT INTO USER (NAME,BIRTHDAY) VALUES ('王五','2000-1-1');
INSERT INTO USER (NAME,BIRTHDAY) VALUES ('张三','2000-1-1'); INSERT INTO USER (NAME,BIRTHDAY) VALUES ('李四','2000-1-1'); INSERT INTO USER (NAME,BIRTHDAY) VALUES ('王五','2000-1-1');
除此之外,我们还可以这么写:
- INSERT INTO USER (NAME,BIRTHDAY) VALUES
- ('张三','2000-1-1'),
- ('李四','2000-1-1'),
- ('王五','2000-1-1');
INSERT INTO USER (NAME,BIRTHDAY) VALUES ('张三','2000-1-1'), ('李四','2000-1-1'), ('王五','2000-1-1');
那么后一种写法有什么好处呢?有两点好处:
1、性能更好。
2、由于一条语句,所以它们是一个处理单元,要么都插入,要么都不插入。
除此之外,我们还可以从SELECT中插入,格式如下:
- INSERT INTO USER (NAME,BIRTHDAY)
- SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME> WHERE ...
INSERT INTO USER (NAME,BIRTHDAY) SELECT <COLUMN1>,<COLUMN2> FROM <TABLE_NAME> WHERE ...
以上比较简单,我就不举例子了。
---更多参见:
----声明:转载请注明出处。
----last updated on 2009.11.5
----written by ShangBo on 2009.9.24
----end