T-SQL查詢語(yǔ)句大總結(jié)
防偽碼:有志者事竟成,破釜沉舟,百二秦關(guān)終屬楚
案例六:表如下圖所示
在數(shù)據(jù)庫(kù)中顯示為:
實(shí)驗(yàn)需求:
1、兩個(gè)表查詢
select 學(xué)生表.姓名,學(xué)生表1.電話,學(xué)生表1.家庭住址
from 學(xué)生表,學(xué)生表1
where 學(xué)生表.學(xué)生id=學(xué)生表1.學(xué)生id
2、三個(gè)表的查詢
select 學(xué)生表.姓名,課程表.課程名,成績(jī)表.分?jǐn)?shù)
from 學(xué)生表,課程表,成績(jī)表
where 學(xué)生表.學(xué)生id=成績(jī)表.學(xué)生id AND 成績(jī)表.課程ID=課程表.課程ID
3、合并兩個(gè)結(jié)果集
SELECT 姓名,學(xué)號(hào),班級(jí),國(guó)籍
FROM 二班
UNION
select 姓+' '+名,學(xué)號(hào),班級(jí),國(guó)籍
from 一班
order by 班級(jí) desc,學(xué)號(hào) asc
4、內(nèi)聯(lián)接(查找參加考試的學(xué)生的姓名和CNT成績(jī),電話)
select s.姓名,s.電話,c.CNT
FROM 學(xué)生基本信息表 AS S INNER JOIN 學(xué)生成績(jī)表 AS C
ON S.姓名=C.姓名
5、左外連接(查找本班學(xué)生的姓名和CNT才成績(jī),電話)
select s.姓名,s.電話,c.CNT
FROM 學(xué)生基本信息表 AS S LEFT OUTER JOIN 學(xué)生成績(jī)表 AS C
ON S.姓名=C.姓名
6、右外連接(查找參加本次考試的學(xué)生的姓名和CNT才成績(jī),電話)
select s.姓名,s.電話,c.CNT
FROM 學(xué)生基本信息表 AS S RIGHT OUTER JOIN 學(xué)生成績(jī)表 AS C
ON S.姓名=C.姓名
7、完全連接(查找所有學(xué)生的考試情況)
select s.姓名,s.電話,c.CNT
FROM 學(xué)生基本信息表 AS S FULL OUTER JOIN 學(xué)生成績(jī)表 AS C
ON S.姓名=C.姓名
8、自連接(查找每個(gè)員工的上司姓名)
SELECT Y.員工姓名,s.員工姓名 AS 上司姓名
from 員工信息表 as y inner join 員工信息表 as s
on y.上司ID=S.員工ID
9、子查詢(查找每個(gè)季度的生產(chǎn)數(shù)量,百分比)
select 季度,sum(生產(chǎn)數(shù)量) AS 每個(gè)季度的生產(chǎn)數(shù)量,
str((sum(生產(chǎn)數(shù)量)/(select sum(生產(chǎn)數(shù)量) from 生產(chǎn)表))*100)+'%' AS 百分比
from 生產(chǎn)表
group by 季度
order by 季度
10、在where子句中使用SELECT ,查找課程ID=1并且成績(jī)〉80的學(xué)生
select 學(xué)生表.姓名
from 學(xué)生表
where 80<(select 分?jǐn)?shù) from 成績(jī)表
where 學(xué)生表.學(xué)生ID=成績(jī)表.學(xué)生ID AND 成績(jī)表.課程ID=1)
11、 交叉連接
SELECT T.教師姓名,c.課程名
from 教員基本信息表 AS t cross join 課程表 AS C
本文出自 “一盞燭光” 博客,請(qǐng)務(wù)必保留此出處http://yw666.blog.51cto.com/11977292/1840977
更多建議: