![3bcedeb7ed2474e73179fa08baa2c96c.png](https://i-blog.csdnimg.cn/blog_migrate/879cf3749f274e2ae38ab38c4fc89f9f.jpeg)
4-1 数据的插入
插入数据使用INSERT INTO语句,语法:
1、不需要指定表中列名,但是插入的值的顺序、个数要与表中列的顺序、个数相对应。
INSERT INTO <表名>
VALUES
(value1,value2,value3,...),
(valuea1,valuea2,valuea3,...),
(valueb1,valueb2,valueb3,...),
……
(valuen1,valuen2,valuen3,...);
2、指定列名,可以全表插入,也可以指定列插入
INSERT INTO <表名> (<列名1>,<列名2>,<列名3>,...)
VALUES
(value1,value2,value3,...),
(valuea1,valuea2,valuea3,...),
(valueb1,valueb2,valueb3,...),
……
(valuen1,valuen2,valuen3,...);
例:
INSERT INTO Product (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
VALUES
('0001', 'T恤衫', '衣服', 1000, 500, '2009-09-20'),
('0002', '打孔器', '办公用品', 500, 320, '2009-09-11'),
('0003', '运动T恤', '衣服', 4000, 2800, NULL),
('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20'),
('0005', '高压锅', '厨房用具', 6800, 5000, '2009-01-15'),
('0006', '叉子', '厨房用具', 500, NULL, '2009-09-20'),
('0007', '擦菜板', '厨房用具', 880, 790, '2008-04-28'),
('0008', '圆珠笔', '办公用品', 100, NULL, '2009-11-11');
INSERT INTO语句中想给某列赋予NULL值时,可以在VALUES子句之中写入NULL。
但是想要插入NULL的列一定不能设置NOT NULL约束。
3、插入默认值,可以通过在创建表的语句中设置DEFAULT约束来设定默认值
例:
CREATE TABLE Product
(
product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL DEFAULT 0
);
通过插入语句设置默认值:
INSERT INTO Product (product_name) VALUES (DEFAULT);
插入默认值时也可以不使用DEFAULT关键字,只要在列清单和VALUES中省略设定了默认值的列就可以。如果省略了没有默认值的列,该列的值会被设定为NULL;如果设置了NOT NULL约束的列,会报错。
4、从其他表中复制数据
创建 ProductCopy 表
-- 用来插入数据的商品复制表
CREATE TABLE ProductCopy
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
product_type VARCHAR(32) NOT NULL,
sale_price INTEGER ,
purchase_price INTEGER ,
regist_date DATE ,
PRIMARY KEY (product_id));
将 Product 表中的数据插入到ProductCopy 表中,使用 INSERT ... SELECT 语句
-- 将商品表中的数据复制到商品复制表中
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;
4-2 数据的删除
4-3 数据的更新
4-4 事务