代碼和筆記資源共享論壇提供收集第4天_第1頁
代碼和筆記資源共享論壇提供收集第4天_第2頁
代碼和筆記資源共享論壇提供收集第4天_第3頁
代碼和筆記資源共享論壇提供收集第4天_第4頁
代碼和筆記資源共享論壇提供收集第4天_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Order by2013 年 4 月 19 日09:39五校對(duì)規(guī)則,決定排序關(guān)系。按照字進(jìn)行排序Order by 字段 升序|降序(asc|desc)默認(rèn) 升序,asc。允許多字段排序,指的是,先按照第一個(gè)字段排序,如果說,不能區(qū)分,才使用第二個(gè)字段。以此類推。注意,如果是分組,則應(yīng)該使用對(duì)分組字段進(jìn)行排序的groupby 語法。limit2013 年 4 月 19 日09:50五限制獲得的數(shù)量:limit 的語法:Limit offset,row_countOffset 偏移量,從 0 開始。可以省略,默認(rèn)為 0.Row_count錄數(shù),如果數(shù)量大于,余下的數(shù),則獲取所有余下的即可:sele

2、ct * from teacher_class limit 3, 4;select * from teacher_class limit 5; select * from teacher_class limit 5, 100;distinct2013 年 4 月 19 日10:17五去除重復(fù):重復(fù)的,指的是,字,都相同的,而不是部分字段相同的select days from teacher_class ;select distinct days from teacher_class ;select days, begin_date from teacher_class ;select dist

3、inct days, begin_date from teacher_class ;相對(duì)的是 all,表示 所有。默認(rèn)就是 all 行為。Union2013 年 4 月 19 日10:26五聯(lián)合查詢:將多條 select 語句的結(jié)果,合并到一起。稱之為聯(lián)合操作。獲得 2 個(gè)班代課最多的老師:select t_name, days from teacher_class where c_name= 1;0115 order by days desc limitselect t_name, days from teacher_class where c_name=1;0228 order by da

4、ys desc limitunion 聯(lián)合使用 union 關(guān)鍵字 聯(lián)合 兩個(gè) select 語句即可: (select t_name, days from teacher_class where c_name= 1)union(select t_name, days from teacher_class where c_name= 1)0115 order by days desc limit0228 order by days desc limit場(chǎng)景:獲得數(shù)據(jù)的條件,出現(xiàn)邏輯,或者很難在一個(gè)邏輯內(nèi)表示,就可以拆分成 多個(gè)邏輯,分別實(shí)現(xiàn)最后將結(jié)果合并到一起。Union all:環(huán)境:1,獲

5、得 0115 班所有代課教師,結(jié)果按照代課天數(shù)升序排序,同時(shí)需要獲得 0228 班,結(jié)果按照降序排序注意,如果 union 的結(jié)果存在重復(fù)的可以通過 union 選項(xiàng) all 達(dá)到目的。,那么會(huì)消除重復(fù).子查詢2013 年 4 月 19 日11:25五場(chǎng)景:查詢代課天數(shù)最多的哪個(gè)老師的信息。select t_name, male from teacher_class order by days limit 1;邏輯沒有問題:但是出現(xiàn)了 代課天數(shù)一致的最多的如何處理?不能是否有重復(fù)的,或者幾個(gè)重復(fù)的。換個(gè)思路:先獲得最多的代課天數(shù)是多少天,Select max(days) from teache

6、r_class;再 判讀哪個(gè)老師的代課天數(shù)和最大值是一樣的。允許將上面的查詢結(jié)果,作為一個(gè)值來使用。Var1 = Select max(days) from teacher_class;保存起來Select t_name, gender from teacher_class where days = var1;Select t_name, gender from teacher_class where days = (Selectmax(days) from teacher_class);定義:語句的查詢語句,就是子查詢語句。子查詢分類,不同的分類,會(huì)有不同的使用方式:分類標(biāo)準(zhǔn):子查詢出現(xiàn)的位

7、置:子查詢的返回值形式:返回值分類:?jiǎn)我恢担涣校?多列,表(多行,多列)出現(xiàn)位置: where 型,where 后 from 型,from 后。 exists 型。返回一行在參與比較時(shí),使用括號(hào)可以構(gòu)建一行:(filed1, field2)select t_name, gender, c_name from teacher_class where (gender, c_name) = (select distinct gender,c_name from teacher_class where t_name= and c_name=0115 limit 1);ExistsExistbquer

8、y)判斷依據(jù):如果子查詢的 可以返回?cái)?shù)據(jù),則認(rèn)為 exists 表達(dá)式 返回真。否者,返回假。下面的兩個(gè)語句完成的是同樣的事情:select * from teacher_class where exists (select * from teacher whereteacher_cla=t_id);select * from teacher_class where id in (select t_id from teacher);解決思路是不一樣的:exists: 先獲得每一條 teacher_class 的數(shù)據(jù),然后獲得 id 字段,去 teacher 表內(nèi)查找對(duì)應(yīng)值,找到,說明符合條件。

9、in:先獲得所有的 id 的可能性。再在檢索teacher_class 數(shù)據(jù)時(shí),判斷當(dāng)前的 id 是否在 id 集合內(nèi)。join2013 年 4 月 19 日15:07每個(gè)實(shí)體,一個(gè)表五一個(gè)業(yè)務(wù)邏輯,使用多個(gè)實(shí)體的數(shù)據(jù),多應(yīng)該在一起使用,將多個(gè)表的連接起來??傮w思路:將所有的數(shù)據(jù),按照某種條件,連接起來,再進(jìn)行篩選處理。連接的分類:根據(jù)連接的條件不同,分類入如下:內(nèi)連接外連接自然連接外連接:如果負(fù)責(zé)連接的一個(gè)或多個(gè)數(shù)據(jù)不真實(shí)存在,則稱之為外連接內(nèi)的處理:內(nèi)連接,在連接時(shí),是可以省略連接條件的。意味著,所有的左表的數(shù)據(jù),都要與右表的共存在 MXN 個(gè)連接做接。這種連接,就稱之為,交叉連接,或者積

10、。此時(shí)可以使用 cross join 代替 innerjoin??梢酝ㄟ^多表查詢,不使用 where,做到積。注意:中 crossjoin 與 innerjoin 相同,但在數(shù)據(jù)庫的定義上,交叉連接就是積。是沒有條件的 innerjoin。inner join 是默認(rèn)的連接方案,可以省略 inner。有條件的內(nèi)連接:會(huì)在連接時(shí)過濾的連接。where 的寫法:數(shù)據(jù)過濾,理解上,數(shù)據(jù)安裝交叉連接連接完成后,再做數(shù)據(jù)過濾。on 的寫法:在連接時(shí),就對(duì)數(shù)據(jù)進(jìn)行判斷。Using 的寫法。Using 要求,負(fù)責(zé)連接的兩個(gè)實(shí)體之間的字段名稱,一致。建議是,在有同名字段時(shí),使用 using ,而在通用條件時(shí),

11、使用 on。在數(shù)據(jù)過濾時(shí)(不是指的連接過濾) 使用 where。注意,查詢條件,與外連接通用(外連接,不能使用where 作為連接條件);Using:會(huì)去掉結(jié)果中的 重復(fù)字段,并放在列前。自然連接:通過自己的判斷完成連接過程!不需要指定 連接條件。會(huì)使用多表內(nèi)的,相同的字段,作為連接條件。自然連接分成 內(nèi)外之分:內(nèi),natural join外,左外,右外。Natrual left join Natrual right joinselect * from one natural jowo;select * from one inner jowo using (public_field);sele

12、ct * from one natural left jowo;select * from one left jowo using (public_field);select * from one natural right jowo;elect * from one right jowo using (public_field);Join = inner joinCross join (交叉連接,體現(xiàn)上insert join)連接時(shí),支持多表連接:select s.*, si.* from info_class as c left join info_student as s on c.id=s.class_id left joininfo_student_info ass.id=si.id where c.class_name=0331;Match left join class on match.host_id=claOn match.guest_id=claleft join class作業(yè)Select h.class_name, g.class_name, m.matchFrom match as m left join

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論