sql语法基础,数据的插入

本文介绍了SQL中的数据插入操作,包括基本的INSERT语法,如何从其他表中复制数据,以及如何设置默认值。在插入数据时,可以指定列名并提供对应的值,或者使用默认值约束。在复制数据时,需确保源表和目标表的列数据类型匹配,并可选择性地应用WHERE等条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在介绍使用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子句等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值