SQL Server 2005中的外聯(lián)結用法一:
有兩個表:學生表,學生選課表,表中數(shù)據(jù)為:
學生表:
學生選課表:
要查看所有學生的選課信息,
標準的SQL語句,外聯(lián)結語句為
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L,sc
where L.sno=sc.sno(*)
理論上的結果為:
但是,在SQLServer2005中運行會出現(xiàn)錯誤,錯誤提示為:
消息 102,級別 15,狀態(tài) 1,第 4 行
'*' 附近有語法錯誤。
在SQLServer2005中,相應的T-SQL語句應該為:
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno
運行結果為:
同時,還可以在on后面再加上where限定條件:
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno
where L.sno in(95001,95002,95003,95004)
這時,運行結果為:
以上這個例子是左外聯(lián)結查詢,即:結果表中包含第一個表中所有滿足條件的
記錄,如果在第二個表中有滿足聯(lián)結條件的記錄,則返回相應的值,否則返回NULL
SQLServer2005中的外聯(lián)結查詢用法(續(xù)):
有三個表:學生表,學生選課表,課程表,表中數(shù)據(jù)為:
學生表:
學生選課表:
課程表:
左聯(lián)結查詢舉例:
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno
結果為:
右聯(lián)結查詢舉例:
use stu_course
select sno,course.cno,course.cname
from sc right join course
on sc.cno=course.cno
結果為:
全外聯(lián)結查詢舉例:
use stu_course
select sno,course.cno,course.cname
from sc full join course
on sc.cno=course.cno
結果為:
如果將這個全外聯(lián)中的左右兩個表交換順序:
use stu_course
select sno,course.cno,course.cname
from course full join sc
on sc.cno=course.cno
結果仍為:
由以上例子可以看出:
對于左外聯(lián)結,結果表中包含第一個表中所有滿足條件的記錄,如果在第二個表中有滿足聯(lián)結條件的記錄,則返回相應的值,否則返回NULL;
對于右外聯(lián)結,結果表中包含第二個表中所有滿足條件的記錄,如果在第一個表中有滿足聯(lián)結條件的記錄,則返回相應的值,否則返回NULL;
對于全外聯(lián)結,結果表中包含兩個表中所有滿足條件的記錄,如果在其中一個表中有滿足聯(lián)結條件的記錄,則返回相應的值,否則返回NULL;
您可能感興趣的文章:- PHP連接sql server 2005環(huán)境配置及問題解決
- PHP連接SQLServer2005方法及代碼
- SQLServer2005安裝提示服務無法啟動原因分析及解決
- SqlServer2005 數(shù)據(jù)庫同步配置圖文詳解
- sqlserver2005使用row_number() over分頁的實現(xiàn)方法
- SQL Server 2005/2008 用戶數(shù)據(jù)庫文件默認路徑和默認備份路徑修改方法
- sqlserver2005 安裝圖解教程以及SQL 2005 SP3補丁安裝圖文教程
- Sql Server 2005 默認端口修改方法
- SQL Server 2005 還原數(shù)據(jù)庫錯誤解決方法
- SQL Server 2005 企業(yè)版沒有 Management Studio管理工具的解決方法
- 零基礎學SQL Server 2005 電子教程/隨書光盤迅雷下載地址
- Sql Server 2005的1433端口打開局域網(wǎng)訪問和進行遠程連接