SqlServer2012 多表連線查詢

2022-09-17 07:18:10 字數 2590 閱讀 3476

1、基本連線

select

a.姓名,a.性別,b.班級名,b.家庭住址

from 學生資訊 a,班級資訊 b

where a.所屬班級=b.班級編號

--把a表與b表連線起來

2、內連線

--內連線語法格式

select

select_list

from table1 inner join table2 [on join_conditions]

where

search_conditions

order by order_expression

--inner可以省略,使用join就把兩個表連線起來

例子:select

a。班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a inner join 輔導員資訊 b

on a.輔導員=b.輔導員編號

select

a。班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a inner join 輔導員資訊 b

on a.輔導員=b.輔導員編號 and b.性別='女'

--注意:b.性別='女'

為限制條件,等價於下例

select

a。班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a inner join 輔導員資訊 b

on a.輔導員=b.輔導員編號

where b.性別='

女'

3、外連線包含(左外連線,右外連線,全連線)

外連線有主從表之分。以主表的每行資料匹配i從表中的資料,如果符合條件則直接而返回到查詢結果中,如果主表的行在從表中沒有找到匹配的行,則主表資料仍保留,並返回到查詢結果中,相應的從表中的行被填上空值後也返回到查詢結果中。

左外連線(左表時主表)

select

a.班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a left outer join 輔導員資訊 b

on a.輔導員=b.輔導員編號

--outer可以省略,但是查詢條件放到on中跟放到where中相差比較大

例子:select

a.班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a left outer join 輔導員資訊 b

on a.輔導員=b.輔導員編號 and a.班級人數》20

select

a.班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a left outer join 輔導員資訊 b

on a.輔導員=b.輔導員編號

where a.班級人數》20

右外連線(右表是主表)

select

a.班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a right outer join 輔導員資訊 b

on a.輔導員=b.輔導員編號

全連線(會顯示兩個表資訊,不匹配的填空值)

select

a.班級名,a.班級人數,b.姓名,b.****

from 班級資訊 a full outer join 輔導員資訊 b

on a.輔導員=b.輔導員編號

4、交叉連線

他返回被連線的兩個表所有資料的笛卡爾積,返回到結果集合中的資料行數等於第乙個表中符合查詢條件的資料行乘以第二個表中符合查詢條件的資料行數。

--語法格式

select

select_list

from table1 cross join table2

where

search_conditions

order by conditions

例子:select

a.班級名稱,a.班級人數,b.姓名

from 班級資訊 a cross join 輔導員資訊 b

5、自連線

select

a.班級名,a。班級人數,b.班級名

from 班級資訊 a,班級資訊 b

where a.班級人數=b.班級人數

--注意a和b是同乙個表

select

a.班級名,a。班級人數,b.班級名

from 班級資訊 a,班級資訊 b

where a.班級人數=b.班級人數 and a.班級編號<>b.班級編號

--注意a和b是同乙個表

上個例子中會有重複的資料

解除安裝sql server 2012

好不容易裝上了sql server2012資料庫,可是卻不能連線本地的資料庫,後來發現缺少一些服務,於是決定重新安裝,但是解除安裝卻很麻煩,如果解除安裝不乾淨的話,重新安裝會出問題,所以下面就總結一些方法 在解除安裝sql server 2012後,大家都希望能夠將登錄檔資訊完全刪乾淨,下面就將教您...

SQLServer 2012 高效分頁

sql code 功能 生成測試資料.create table test paging id int identity 1,1 not null primary key,testnumber int not null,testname varchar 20 not null,testdept var...

SQL Server2012中的Throw語句

簡 介sql server2012實現了 類似c 丟擲異常的 throw 語句。相比較於 sqlserver2005 之前使用 error,和sqlserver2005 之後使用 raiserror 引發 異常都是乙個不小的 進步,下面來看一下 throw 的用法。raiserror 和throw ...