聯合查詢
1:概述
將多次查詢(多條select語句),在記錄上進行拼接(欄位是不會增加的),只要求字段一樣,與資料型別無關
union:聯合的意思,即把兩次或多次查詢結果合併起來。
要求:兩次查詢的列數必須一致
推薦:列的型別可以不一樣,但推薦查詢的每一列,想對應的型別以一樣
可以來自多張表的資料:多次sql語句取出的列名可以不一致,此時以第乙個sql語句的列名為準。
如果不同的語句中取出的行,有完全相同(這裡表示的是每個列的值都相同),那麼union會將相同的行合併,最終只保留一行。也可以這樣理解,union會去掉重複的行。
如果不想去掉重複的行,可以使用union all。
2:基本語法(預設去重)
多條select語句構成:每一條select語句獲取的字段必須嚴格一致,但是字段型別無關
select 語句1
union(union 選項)
union 選項 與select選項一樣有兩個
all: 保留所有(不管重複),單條select,一張表是允許重複的
distinct 去重(大量表合併在一起,去除重複的)
3:案例演示
1:單張表查詢
2:聯合查詢(預設是去重的)
3:聯合查詢(不去重all)
4:聯合查詢(只要求字段,不管資料型別)
查詢出來的資料沒有意義
4:聯合查詢的意義(資料過長百億級別)
1:查詢同一張表,但是需求不同: 如查詢男生公升序,女生身高降序.
2:多表查詢:多張表的結構是完全一樣的,儲存的資料(結構)也是一樣的.
5:聯合查詢(小案例:男生公升序,女生降序)
1:在聯合查詢中:order by不能直接使用,需要對查詢語句使用括號括起來
2:若要order by 生效,必須搭配limit(使用限定最大數值即可)
3:sql語句
查詢學生表,男生年齡公升序,女生年齡降序
(select * from t_student where gender='男' order by age asc limit 99999)
union
(select * from t_student where gender='女' order by age desc limit 99999);
new的深入分析
new 是c 的乙個關鍵字,同時也是操作符。關於new的話題非常多,因為它確實比較複雜,也非常神秘,下面我將把我了解到的與new有關的內容做乙個總結。new的過程 當我們使用關鍵字new在堆上動態建立乙個物件時,它實際上做了三件事 獲得一塊記憶體空間 呼叫建構函式 返回正確的指標。當然,如果我們建立...
MySQL 深入分析MySQL索引機制的實現
資料庫是乙個只要從事後端開發,就永遠離不開的技術,大部分企業選擇的資料庫都是mysql,所以需要我們對mysql有著足夠的了解。而mysql索引,我們都知道提高效能要加索引,也知道索引的結構是b tree,也都可以說出幾條加索引的原則,但再深入一點,往往就會詞窮,這可能就是知其然而不知其所以然的結果...
Mysql的游標的定義使用及關閉深入分析
mysql從5.0開始支援儲存過程和trigger,給我們喜歡用mysql的朋友們更喜歡mysql的理由了,語法上和pl sql有差別,不過搞過程式設計的人都知道,語法不是問題,關鍵是思想,大致了解語法後,就從變數定義,迴圈,判斷,游標,異常處理這個幾個方面詳細學習了。關於游標的用法mysql現在提...