大家好,欢迎来到IT知识分享网。
今天是日更的45/365 天
大家好,我是阿常,今天我和大家分享《数据库SQL高级用法》的第四个章节。
- SQL UNION用法
- SQL UNIONALL 用法
- 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、UNIONALL 用法
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 INTOSELECT用法
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高级用法的第四章节就讲完啦,接下来让我们继续期待第五章节的内容吧。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/48071.html