數據庫SQL Server2012筆記(四)——多表查詢、子查詢、分頁查詢、用查詢結果創建新表和外連接


1、多表查詢
1)笛卡爾集:
  • select  *  from  表名1,表名2
  • select  *  from  表名1。表名2  where   表名1.字段名=表名2.字段名
注:
  • 若有兩張表有同樣名字的字段,則使用時需帶表名(別名)。
  • order  by  置於where 條件之后
2)自連接:同一張表的連接查詢。將一張表視為兩張表或多張表。

eg:顯示公司每一個員工名字和他的上級的名字。將emp表看做兩張表worker和boss
  • select  worker.ename  雇員,boss.ename  老板   from   emp  worker,emp  boss  where   worker.mgr=boss.empno

2、子查詢(嵌套查詢):嵌入在其他sql語句中的select語句。

1)單行子查詢:僅僅返回一行數據的子查詢語句。
2)多行子查詢:返回多行數據的子查詢。
3)在from子句中使用子查詢。
說明:
     當在from子句中使用子查詢時,該子查詢會被作為一個視圖(暫時表)來對待,因此也叫做內嵌視圖。

當在from子句中使用查詢時。必須給子查詢指定別名。


3、分頁查詢
1)top  n:前n條記錄。

  • select  top  5  *  from  emp  order  by  hiredate
  • 顯示第5個到第9個人的信息(按sal高低)
    • select  top  5   from  emp  where  empno  not  in  (select  top  4  empno  from  emp order  by  sal  desc)  order  by  sal  desc
  • identity(1,1):表示字段自增長,從“1”開始增長。每次加“1”。
    • create  table  test  (testId  int  primary  key  identity(1,1))

4、用查詢結果創建新表
  • select  *  into  還有一個表名  from  表名
  • 刪除表中的反復記錄
    • select  distinct  *  into  #temo(新表)  from  表名1
    • delete  from  表名1
    • insert  into  表名1  select  *  from  #temp
    • drop  table  #temp

5、外連接:
  • 左外連接:左邊的表的記錄所有顯示,假設沒有匹配的記錄,用Null填補。
  • 右外連接:右邊的表的記錄所有顯示。假設沒有匹配的記錄,用Null填補。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM