總結一下sql中的連線運算子!union和union all都是用來連線sql 查詢語句的!
要點一:union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同,就比如,第一條語句查詢的是姓名和年齡分別是nvarchar和int型別的,那麼聯合的語句查詢的字段也應該是同樣的型別,和順序。
要點二:預設地,union 操作符選取不同的值(就是載入的都不一樣,不會有重複的資料,如果有兩條資料一模一樣,就只會出現一條資料)。如果想得到所有資料,請使用 union all(all不就是所有的意思嘛!)
要點三:union 查詢結果集中的列名總是等於 union 中第乙個 select 語句中的列名,意思就是兩條語句查詢的總資料的列名按照第一條查詢語句走,比如兩條查詢的字段都一樣,但是第一條查詢語句把字段重新命名了(select name as 姓名 from 表),這時第一列的名字就不是name了,而是被重新命名的:「姓名」。
**例項:
這裡用兩張表,一張學生表 一張教師表!字段分別是:主鍵 姓名(老師或學生)年齡 生日。
**語法:
select sname,age from db_students --執行結果:第一條語句查詢學生的姓名和年齡
union
select tname,age from db_teachers --
第二條語句查詢老師的姓名和年齡
查詢到結果是:學生所有資料和老師所有資料,可以看出,老師學生總資料的一列的列名為sname,因為第一條查詢語句用的sname。下邊將資料修改一下,讓有重複的資料,再用上邊**執行看結果
將兩張表都修改一條資料為:姓名為:小明,年齡為:15,但結果只出現一條小明的資料。
結果為:
聯合的兩個語句,型別要相同,順序要相同,如果不相同,就無法執行,看**:
select sname,age,bitthday from db_students --報錯:第一條語句查詢學生的姓名和年齡和生日
union
select tname,age from db_teachers --
第二條語句查詢老師的姓名和年齡
union會去重,union all不會,看**:
兩條同樣的語句,查詢全表,但是如果用union連線,就會只出現三條資料:
而如果用union all的話就還會出現六條資料,在效率上union all肯定要比union高的,因為少了去重這一步!
資料分析之sql UNION與UNION ALL
union操作符用於合併兩個或多個select語句的結果集。注意 union內部的select語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條select語句中的列的順序必須相同。sql union語法 select column name s from table name1 un...
SQL Union和Union All的使用方法
union指令的目的是將兩個sql語句的結果合併起來。從這個角度來看,我們會產生這樣的感覺,union跟join似乎有些許類似,因為這兩個指令都可以由多個 中擷取資料。union的乙個限制是兩個 sql 語句所產生的字段需要是同樣的資料種類。另外,當我們用 union這個指令時,我們只會看到不同的資...
sql union和union all的用法及效率
union指令的目的是將兩個sql語句的結果合併起來。從這個角度來看,我們會產生這樣的感覺,union跟join似乎有些許類似,因為這兩個指令都可以由多個 中擷取資料。union的乙個限制是兩個sql語句所產生的字段需要是同樣的資料種類。另外,當我們用 union這個指令時,我們只會看到不同的資料值...