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中的数据,显示执行结果如下:
在这里插入图片描述

发布了81 篇原创文章 · 获赞 36 · 访问量 3349

猜你喜欢

转载自blog.csdn.net/WXKKang/article/details/103815826
今日推荐