在介绍使用insert插入数据之前,我们先来回忆一下表的创建
01表的创建
格式:
CREAT TALE 表名
(列名1, 数据类型,约束,
。
。
。
表的约束1,表的约束2.。。)
注意:这里表的约束一般指主键 PRIMARY KEY(设为主键的列名)
例一商品列表
CREATE TABLE product3
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
product_type VARCHAR(100) NOT NULL,
sale_price INT,
purcase_price INT,
regist_date DATE,
PRIMARY KEY (product_id))
02使用insert插入数据
格式:
INSERT INTO 表名 (列名1,列名2.。。。。。)
VALUES (值1,值2,值3.。。)
例二向表中插入数据
INSERT INTO product3(product_id,product_name,product_type,sale_price,purcase_price,regist_date)VALUES('0001','篮球鞋','运动鞋',1000,500,'2019-09-20')
--注意:除int类型的,其余在书写时要加‘’表示字符串
INSERT INTO product3(product_id,product_name,product_type,sale_price,purcase_price,regist_date)VALUES('0002','跑鞋','运动鞋',800,300,'2019-10-20')
--一般来说每插入一行数据就要书写一个insert into
是不是觉得特别麻烦,要不停的书写列名,如果不书写列名该有多好
INSERT INTO product3 VALUES('0003','哑铃','运动器材',500,null,'2019-09-20')
通过这个例子可以发现,如果没有列名会按照列名从左往右依次插入数据。
同时插入null时要确保该列的约束不是not null
03插入默认值
我们还可以向表中插入初始值
在表中插入默认值前要先设置DEFAULT<默认值>约束
格式:
DEFAULT
例三向sale_price列中插入默认值
CREATE TABLE basketball
(product_id CHAR(4) NOT NULL,
sale_price INT DEFAULT 0,
PRIMARY KEY (product_id))
INSERT INTO basketball VALUES ('0001',DEFAULT)
以上为显式插入法,还有一种插入方法,就是在要插入的地方什么也不写,前后用,,隔开。也就是省略列名,如果是没有设置默认值的列名,就会出现null。这样会使sql语言表意不明,故不在此详细介绍。
04从其他表中复制数据
格式:
INSERT INTO 目标表名(列名1,列名2,。。。)
SELECT 原列名1,原列名2,原列名3.。。。。
FROM 原表名
例四向product3表中插入product3copy数据
product3copy数据
INSERT INTO product3(product_id,product_name,product_type,purcase_price,sale_price,regist_date)
SELECT product_id,product_name,product_type,purcase_price,sale_price,regist_date
FROM product3copy
注意:插入时两表列的数据类型应该相同,同时select语句的where子句,group by子句等