数据库 SQL 高级用法(四)

2022-07-01 14:55:00 浏览数 (1)

今天是日更的 45/365 天

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

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

一、SQL UNION 用法

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

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

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

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

UNION 用法

代码语言:javascript复制
SELECT 列名1,列名2 FROM 表名1
UNION 
SELECT 列名1,列名2 FROM 表名2;

实例

代码语言:javascript复制
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复制
SELECT 列名1,列名2 FROM 表名1
UNION ALL
SELECT 列名1,列名2 FROM 表名2;

实例

代码语言:javascript复制
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复制
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复制
INSERT INTO 表2
SELECT * FROM 表1;

实例

代码语言:javascript复制
INSERT INTO student2
SELECT * FROM student;

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

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

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

实例

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

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

3、复制表结构和数据

用法

代码语言:javascript复制
CREATE TABLE 新表
AS
SELECT * FROM 旧表;

实例

代码语言:javascript复制
CREATE TABLE student3
AS
SELECT * FROM student;

4、只复制表结构

用法

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

CREATE TABLE 新表 
LIKE 旧表;

实例

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

CREATE TABLE student5 
LIKE student;

5、只复制表数据

1)两个表结构一样

代码语言:javascript复制
INSERT INTO 新表
SELECT * FROM 旧表;

实例

代码语言:javascript复制
INSERT INTO student5
SELECT * FROM student;

2)两个表结构不一样

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

实例

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

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

0 人点赞