1、将列名和值用逗号隔开,分别括在()内,这种形式称为清单(列清单和值清单),表名后面的列清单和values 子句中的值清单的列数必须保持一致。
insert into <表名> (列1, 列2, 列3, ……) values (值1, 值2, 值3, ……);
insert into productIns (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
VALUES ('0001', 'T恤衫', '衣服', 1000, 500, '2009-09-20');
2、对表进行全列inset 时,可以省略表名后的列清单。这时values子句的值会默认按照从左到右的顺序赋给每一列。
insert into productIns values ('0002', '打孔器', '办公用品', 500, 320, '2009-09-11');
3、原则上,执行一次insert语句会插入一行数据,但是很多RDBMS 都支持一次插入多行数据,这样的功能称为多行insert。
insert into productIns values ('0002', '打孔器', '办公用品', 500, 320, '2009-09-11'),
('0003', '运动T恤', '衣服', 4000, 2800, null),
('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20');
4、insert 语句中想给某一列赋予null 值时,可以直接在values子句的值清单中写入null,但是,想要插入null 的列一定不能设置not null 约束
insert into productIns values ('0002', '打孔器', '办公用品', null, 320, '2009-09-11'),
('0003', '运动T恤', '衣服', 4000, 2800, null);
5、 向表中插入默认值(初始值)。可以通过在创建表的create table 语句中设置default约束来设定默认值,插入值时,默认值的插入法分为显式方法和隐式方法。显式方法时在values子句中指定default关键字;隐式方法是在列清单和values中省略设定了默认值的列。
create table productIns
(sale_price integer default 0, -- 默认值设定为0);
--显式的插入默认值:
insert into productIns (product_id, product_name, product_type,sale_price, purchase_price, regist_date)
values ('0007','擦菜板', '厨房用具', default, 790, '2009-04-28');
--隐式的插入默认值:
insert into productIns (product_id, product_name, product_type,purchase_price, regist_date) values ('0007', '擦菜板', '厨房用具',790, '2009-04-28');
--其中sale_price列省略了,值也省略了
6、要插入数据,除了使用values 子句指定具体的数据之外,还可以从其他表中复制数据。
insert into productCopy (product_id, product_name, product_type, sale_price,purchase_price, regist_date)
select product_id, product_name, product_type, sale_price, purchase_price, regist_date
from product;
--将表product中的选择的字段的数据,插入到productCopy表中
该insert 语句中的select语句,也可以使用where 子句或者group by子句等,但使用order by子句并不会产生任何效果。