今天是日更的 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高级用法的第四章节就讲完啦,接下来让我们继续期待第五章节的内容吧。