王利的博客
          歷史在哪里扭曲,就在哪里突破
          posts - 17,  comments - 0,  trackbacks - 0
          ?

          1.關(guān)鍵字

          Top N 返回記錄的條數(shù),

          top N percent? 返回查出結(jié)果數(shù)量的百分比(四舍五入),

          with ties order by,top 一起用能夠查出和最后一條記錄相等的數(shù)據(jù),

          distinct? 消除重復(fù)記錄

          2.集合函數(shù)

          Count(字段名) 統(tǒng)計(jì)數(shù)據(jù)忽略空行

          count(*)? 統(tǒng)計(jì)不忽略空行,avg,max,min,sum

          3.分類匯總查詢

          Group by 子句按字段分類,相同字段為一組

          注意:用于分類的字段必須是查詢的字段,不要對(duì)包含多個(gè)空值的字段使用,空值也會(huì)作為一組

          Having 子句只能在group by 子句中使用作為條件判斷類似于where ,where中不能調(diào)用聚合函數(shù),having中可以.

          4.Rollup 操作符

          Cube 操作符

          Compute 子句

          Compute by 子句

          5.聯(lián)接查詢

          內(nèi)聯(lián)接查詢 : 返回滿足聯(lián)接條件的數(shù)據(jù)

          1 inner join 2 on 聯(lián)接表達(dá)式

          :select distinct (lastname+' '+firstname) as name,orderid from employees as e inner join orders as o on e.employeeid=o.employeeid

          外聯(lián)接查詢:返回滿足聯(lián)接條件的數(shù)據(jù),也返回左邊或者右邊表不符合聯(lián)接條件的記錄

          左向外聯(lián)接:返回table1所有的記錄,如果table1中的記錄在table2中沒有匹配的記錄,則結(jié)果集和table2相關(guān)的字段為空值

          Table1 left join table2 on 聯(lián)接expression

          Table1 left outer join table2 on 聯(lián)接expression

          右向外聯(lián)接:返回table2所有的記錄,如果table2中的記錄在table1中沒有匹配的記錄,則結(jié)果集和table1相關(guān)的字段為空值

          Table1 right join table2 on 聯(lián)接expression

          Table1 right outer table2 on 聯(lián)接expression

          完整外聯(lián)接查詢:返回兩個(gè)表所有的記錄,互相沒有匹配記錄時(shí)填充空值.

          Table1 full join table2 on 聯(lián)接expression

          Table1 full outer table2 on 聯(lián)接expression

          ?

          交叉聯(lián)接查詢:如果沒有where,返回table1,table2的笛卡兒乘積,既所有記錄的不同交叉組合

          Table1 cross join table2

          ?

          6.合并多個(gè)記錄集

          Union? [all]操作符

          要求引用的所有的表都有相似的數(shù)據(jù)結(jié)構(gòu),相同的字段數(shù)且每個(gè)查詢中字段的順序要相同

          如果要全部返回不刪除重復(fù)記錄就使用all

          盡量把復(fù)雜的查詢分解提高查詢效率.

          ?

          7.子查詢

          一個(gè)查詢語句嵌套在DML(select,update,delete,insert)語句中,則該語句被成為子查詢.嵌套最多32,功能類似于聯(lián)接查詢,主要用于當(dāng)查詢需要多個(gè)步驟時(shí).

          分類:

          相關(guān)子查詢子查詢重復(fù)執(zhí)行,并將結(jié)果值代入外部查詢的where子句進(jìn)行評(píng)估.

          內(nèi)層子查詢被反復(fù)執(zhí)行,對(duì)外層查詢的每行內(nèi)層子查詢都執(zhí)行一次.

          先外層查詢再內(nèi)層查詢再外層再內(nèi)層

          :select lastname,firstname from employees as e where '1998-1-1' in (select orderdate from orders as o where o.employeeid=e.employeeid)

          相關(guān)子查詢的操作符 exists(not exists)用于限制外部查詢,使其結(jié)果集符合子查詢的條件,子查詢返回true ,false

          :select lastname,firstname from employees as e where exists (select * from orders as o where o.employeeid=e.e.employeeid and o.orderdate='1998-1-1')

          嵌套子查詢? 只執(zhí)行一次子查詢并將結(jié)果值代入外部查詢的where子句進(jìn)行評(píng)估.

          內(nèi)層子查詢執(zhí)行完畢,再執(zhí)行外層查詢.

          ?:select lastname,firstname from employees where employeesid in (select employeesid from orders where orders.orderdate='1998-1-1')

          ?

          子查詢可以作為派生的表

          可以作為表達(dá)式

          Select? productname,unitprice,(unitprice-(select avg(unitprice) from products) ) as diff from products where productname='chai'

          模擬聯(lián)接子句

          模擬having子句

          posted on 2006-10-09 14:21 疾風(fēng)之狼的java之旅 閱讀(293) 評(píng)論(0)  編輯  收藏 所屬分類: 技術(shù)問題

          <2006年10月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章檔案

          相冊

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 4333
          • 排名 - 3228

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 洛扎县| 定陶县| 奈曼旗| 保德县| 石城县| 江油市| 南安市| 收藏| 清河县| 株洲市| 赤水市| 从化市| 福州市| 辽源市| 迁西县| 凤凰县| 横峰县| 龙陵县| 涟源市| 锦州市| 来宾市| 汾西县| 十堰市| 黑水县| 兴安县| 东明县| 濉溪县| 崇礼县| 和平县| 罗源县| 靖西县| 孝义市| 马龙县| 南涧| 富锦市| 兴义市| 志丹县| 夹江县| 江陵县| 乌鲁木齐市| 安溪县|