前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据库 SQL 高级用法(四)

数据库 SQL 高级用法(四)

作者头像
程序媛淼淼
发布2022-07-01 14:55:00
发布2022-07-01 14:55:00
71300
代码可运行
举报
文章被收录于专栏:程序员阿常程序员阿常
运行总次数:0
代码可运行

今天是日更的 45/365 天

大家好,我是阿常,今天我和大家分享《数据库SQL高级用法》的第四个章节。

  • SQL UNION 用法
  • SQL UNION ALL 用法
  • SQL INTO SELECT 用法

一、SQL UNION 用法

SQL UNION 用于合并两个或多个 SELECT 语句的结果集。

UNION 内部的每个 SELECT 语句必须要拥有相同数量的列。

列也必须拥有相似的数据类型。

同时,每个 SELECT 语句中的列的顺序必须相同。

UNION 用法

代码语言:javascript
代码运行次数:0
运行
复制
SELECT 列名1,列名2 FROM 表名1
UNION 
SELECT 列名1,列名2 FROM 表名2;

实例

代码语言:javascript
代码运行次数:0
运行
复制
SELECT country FROM student
UNION
SELECT country FROM score
ORDER BY country;

以上 SQL 语句从 " student "" score " 表中选取所有不同的 country只有不同的值)。

请注意,UNION 操作符选取不同的值,如果允许重复的值,请使用 UNION ALL。

二、SQL UNION ALL 用法

UNION 操作符选取不同的值,如果允许重复的值,请使用 UNION ALL。

1、UNION ALL 用法

代码语言:javascript
代码运行次数:0
运行
复制
SELECT 列名1,列名2 FROM 表名1
UNION ALL
SELECT 列名1,列名2 FROM 表名2;

实例

代码语言:javascript
代码运行次数:0
运行
复制
SELECT country FROM student
UNION ALL
SELECT country FROM score
ORDER BY country;

以上 SQL 语句从 " student " " score " 表中选取所有的 country允许重复的值)。

请注意,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

2、带有 WHERE 的 UNION ALL 用法

实例

代码语言:javascript
代码运行次数:0
运行
复制
SELECT country FROM student
WHERE country='CN'
UNION ALL
SELECT country FROM score
WHERE country='CN'
ORDER BY country;

以上 SQL 语句从 " student " " score " 表中选取所有的 country 为 " 中国 " 的数据(允许重复的值)。

三、INSERT INTO SELECT 用法

INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中

1、从一个表中复制所有的列插入到另一个已存在的表中

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO 表2
SELECT * FROM 表1;

实例

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO student2
SELECT * FROM student;

以上 SQL 语句复制 " student " 表中数据插入到 " student2 " 中。

2、从一个表中只复制希望的列插入到另一个已存在的表中

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO 表2
(列名1,列名2)
SELECT 列名1,列名2 
FROM 表1;

实例

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO student2
(ID,name)
SELECT ID,name 
FROM student;

以上 SQL 语句只复制 " student " 中的 " ID "" name " 列 到 " student2 " 中。

3、复制表结构和数据

用法

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE 新表
AS
SELECT * FROM 旧表;

实例

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE student3
AS
SELECT * FROM student;

4、只复制表结构

用法

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE 新表 
AS 
SELECT * 
FROM 旧表 where 1=2;

CREATE TABLE 新表 
LIKE 旧表;

实例

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE student4 
AS 
SELECT * 
FROM student where 1=2;

CREATE TABLE student5 
LIKE student;

5、只复制表数据

1)两个表结构一样

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO 新表
SELECT * FROM 旧表;

实例

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO student5
SELECT * FROM student;

2)两个表结构不一样

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO 新表
(列名1,列名2) 
SELECT 列名1,列名2
FROM 旧表;

实例

代码语言:javascript
代码运行次数:0
运行
复制
INSERT INTO student5
(ID,country) 
SELECT studentID,country
FROM score;

至此,数据库SQL高级用法的第四章节就讲完啦,接下来让我们继续期待第五章节的内容吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员阿常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档