亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL中UNION關鍵字怎么用

發布時間:2022-03-03 14:32:04 來源:億速云 閱讀:231 作者:小新 欄目:數據庫

小編給大家分享一下SQL中UNION關鍵字怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

SQL中的UNION關鍵字,將實現將多個查詢條件中的結果展示出來。

UNION

??UNION的中文含義是聯合的意思,即合并兩個或多個 SELECT 語句的結果。使用技巧如下:

  • UNION 內部的每個 SELECT 語句必須擁有相同數量的列。

  • 列必須擁有相似的數據類型。

  • 每個 SELECT 語句中的列的順序必須相同。

相同數量的列

如下圖,使用上一章介紹的數據作為演示數據

SQL中UNION關鍵字怎么用

分別建立表s_user 和表s_user_1

CREATE TABLE `s_user` (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `pass_word` varchar(255) DEFAULT NULL,
  `salt` varchar(255) DEFAULT NULL,
  `state` varchar(255) DEFAULT NULL,
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

測試數據如下:

INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小米', '小米', '123123', '123', '1', '2022-02-10 19:48:43');
INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');

INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小紅', '小紅', '123123', '123', '1', '2022-02-10 19:48:43');
INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小黃', '小黃', '123123', '123', '1', '2022-02-10 19:48:43');

UNION 內部的每個 SELECT 語句必須擁有相同數量的列:先查詢具有相同列的SQL

SELECT * FROM `s_user` UNION SELECT * FROM `s_user_1`

查詢出所有的列,可以看到,執行結果如下。

SQL中UNION關鍵字怎么用

如果第一個查詢是所有列,第二個查詢是三個字段,那么查詢結果又是怎么樣呢,現在執行如下SQL:

錯誤用法

SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`

SQL中UNION關鍵字怎么用

錯誤提示:使用的SELECT語句查詢出不同的列數

正確用法

SELECT userid,name,pass_word  FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`

SQL中UNION關鍵字怎么用

數據類型

??上面看到了多個查詢的列數必須相同,那么查詢出的列數如果相同,查詢字段的數據類型不同,是否可正常處理呢?下面將s_user查詢中的pass_word換成create_time,進行查詢。通過查詢之后可以看到。在SQL查詢中,列的數據類型是無關的。當然實際業務中是不會將其設置成不同的類型的。

SELECT userid,name,create_time  FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`

SQL中UNION關鍵字怎么用

列順序

??在使用UNION關鍵字進行查詢時,是否和列的順序有關呢,上面看到可能和列的順序有關,可能也是無關的,那么進行一下測試。可以看到執行結果是和列的順序無關的。在實際業務中是合并多個查詢,因此我們在項目中定義是需要列的順序一致的。

SELECT create_time,userid,name  FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`

SQL中UNION關鍵字怎么用

UNION 和 UNION ALL區別

??為了測試UNION 和 UNION ALL區別需要在數據表s_user_1中增加【小白】,與表s_user中的【小白】都存在數據庫中,兩個會有什么不同結果呢。

INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (3, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');

SQL中UNION關鍵字怎么用

首先執行:

SELECT user_name,name,pass_word,salt
FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`

執行結果:

SQL中UNION關鍵字怎么用

再次執行

SELECT user_name,name,pass_word,salt
FROM `s_user` UNION ALL SELECT user_name,name,pass_word,salt FROM `s_user_1`

執行結果:

SQL中UNION關鍵字怎么用

??可以看到UNION關聯的去除了重復項,而UNION ALL查詢出了所有的值,沒有去除重復數據。

以上是“SQL中UNION關鍵字怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

峨眉山市| 兴义市| 绥滨县| 黄大仙区| 上高县| 祁连县| 屏东县| 东乌珠穆沁旗| 图片| 宁安市| 陈巴尔虎旗| 上高县| 阳高县| 罗田县| 股票| 翁牛特旗| 布拖县| 忻州市| 赤壁市| 镇坪县| 宁夏| 宁都县| 甘孜县| 镇安县| 通州区| 金华市| 宾阳县| 许昌市| 绥滨县| 宁河县| 神池县| 永仁县| 婺源县| 临湘市| 凌海市| 澄江县| 安庆市| 富源县| 平阳县| 呼图壁县| 扶沟县|