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填補。
