站長資訊網
        最全最豐富的資訊網站

        SQL入門學習之淺析UNION關鍵字的用法

        我們開發過程中經常會使用到將多個查詢結果都直接顯示出來,那么應該怎么查詢呢?本篇文章進行學習SQL,來一起看看SQL中的UNION關鍵字,看看它要怎么使用,希望對大家有所幫助!

        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查詢出了所有的值,沒有去除重復數據。

        結語

        ??好了,

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 欧美日韩精品系列一区二区三区 | 国产成人精品AA毛片| 国产精品偷伦视频免费观看了| 97久久综合精品久久久综合| 中文字幕日韩精品有码视频| 惠民福利中文字幕人妻无码乱精品 | 国产一区二区精品久久| 久久精品亚洲精品国产色婷| 午夜精品久久久内射近拍高清| 国产精品手机在线观看你懂的| 久久精品国产只有精品2020| 国产成人精品一区二区秒拍| 久久久国产乱子伦精品作者| 亚洲欧美日韩国产一区二区三区精品 | 成人无码精品1区2区3区免费看| 永久无码精品三区在线4| 欧美亚洲综合免费精品高清在线观看 | 亚洲精品自在在线观看| 欧美成人精品欧美一级乱黄一区二区精品在线 | 狠狠精品干练久久久无码中文字幕 | 日韩精品一区二区午夜成人版| 国内精品久久久久久久亚洲| 国产高清在线精品一区小说| 久久精品草草草| 久久精品国产半推半就| 欧美亚洲国产成人精品| 国产精品毛片VA一区二区三区| 无码国产精品一区二区免费式芒果| 人妻无码精品久久亚瑟影视| 久久精品无码一区二区app| 国产欧美日韩综合精品二区| 精品久久人人爽天天玩人人妻| 国内精品视频在线观看| 精品久久综合1区2区3区激情| 国产麻豆精品入口在线观看| 国产精品成人无码久久久久久| 国产高清日韩精品欧美激情| 国产综合免费精品久久久| 麻豆精品视频在线观看91| 亚洲欧美日韩国产一区二区三区精品| 亚洲av无码成人精品区|