数据库 SQL 高级用法(四)

时间:2022-10-22
本文章向大家介绍数据库 SQL 高级用法(四),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天是日更的 45/365 天

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

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

一、SQL UNION 用法

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

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

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

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

UNION 用法

SELECT 列名1,列名2 FROM 表名1
UNION 
SELECT 列名1,列名2 FROM 表名2;

实例

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 用法

SELECT 列名1,列名2 FROM 表名1
UNION ALL
SELECT 列名1,列名2 FROM 表名2;

实例

SELECT country FROM student
UNION ALL
SELECT country FROM score
ORDER BY country;

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

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

2、带有 WHERE 的 UNION ALL 用法

实例

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、从一个表中复制所有的列插入到另一个已存在的表中

INSERT INTO 表2
SELECT * FROM 表1;

实例

INSERT INTO student2
SELECT * FROM student;

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

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

INSERT INTO 表2
(列名1,列名2)
SELECT 列名1,列名2 
FROM 表1;

实例

INSERT INTO student2
(ID,name)
SELECT ID,name 
FROM student;

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

3、复制表结构和数据

用法

CREATE TABLE 新表
AS
SELECT * FROM 旧表;

实例

CREATE TABLE student3
AS
SELECT * FROM student;

4、只复制表结构

用法

CREATE TABLE 新表 
AS 
SELECT * 
FROM 旧表 where 1=2;

CREATE TABLE 新表 
LIKE 旧表;

实例

CREATE TABLE student4 
AS 
SELECT * 
FROM student where 1=2;

CREATE TABLE student5 
LIKE student;

5、只复制表数据

1)两个表结构一样

INSERT INTO 新表
SELECT * FROM 旧表;

实例

INSERT INTO student5
SELECT * FROM student;

2)两个表结构不一样

INSERT INTO 新表
(列名1,列名2) 
SELECT 列名1,列名2
FROM 旧表;

实例

INSERT INTO student5
(ID,country) 
SELECT studentID,country
FROM score;

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