SQL研习录(16)——INSERT INTO SELECT语句(复制数据到现有的表)

SQL研习录(16)——INSERT INTO SELECT语句


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、INSERT INTO SELECT语句

  如果需要将一个表中的数据复制到另一个现有的表中,则可以使用INSERT INTO SELECT语句,它可以在一个表中复制数据,然后将数据插入到一个现有的表中,且这个表中任何现有的数据都不会受影响

1、基本语法

  如果需要将一个表中的所有列的数据复制到另一个已存在的表中,则可以使用以下语法:

INSERT INTO _table2_  
SELECT * FROM _table1;_

  如果需要将一部分列的数据插入到现有的表中,则可以使用以下语法:

INSERT INTO _table2_  
 _(column_name(s))_  
SELECT _column_name(s)_  
FROM _table1;_
2、示例

  首先,让我们来创建一组测试数据:一个学生表(student)和一个空表(student1),代码如下:

-- 创建表
CREATE TABLE student(
	s_id varchar(50) NOT NULL PRIMARY KEY,
	s_name varchar(50),
	s_gender varchar(50)
)
-- 插入数据
INSERT INTO student (s_id,s_name,s_gender) VALUES ('S101','Lucy','female');
INSERT INTO student (s_id,s_name,s_gender) VALUES ('S102','Jack','male');
INSERT INTO student (s_id,s_name,s_gender) VALUES ('S103','Bruce','male');
INSERT INTO student (s_id,s_name,s_gender) VALUES ('S104','Tom','male');
INSERT INTO student (s_id,s_name,s_gender) VALUES ('S105','Jayce','male');

-- 创建表
CREATE TABLE student1(
	s_id varchar(50) NOT NULL PRIMARY KEY,
	s_name varchar(50),
	s_gender varchar(50)
)

  1、我们将student中的所有列的数据复制到student1中,代码如下:

INSERT INTO student1 SELECT * FROM student;

  查询student1中的数据,显示执行结果如下:
在这里插入图片描述
  2、清空student1中的数据后,我们将student中的期望复制列的数据复制到student1中,代码如下:

-- 清空数据
DELETE FROM student1;
-- 复制s_id,s_name的数据到student1中
INSERT INTO student1 (s_id,s_name)
SELECT s_id,s_name FROM student

  查询student1中的数据,显示执行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值