T-SQL查詢語(yǔ)句大總結(jié)
創(chuàng)新互聯(lián)公司專注于城子河網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供城子河營(yíng)銷型網(wǎng)站建設(shè),城子河網(wǎng)站制作、城子河網(wǎng)頁(yè)設(shè)計(jì)、城子河網(wǎng)站官網(wǎng)定制、小程序定制開(kāi)發(fā)服務(wù),打造城子河網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供城子河網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
防偽碼:有志者事竟成,破釜沉舟,百二秦關(guān)終屬楚
注:表格及語(yǔ)法眾多,因此總結(jié)為sql server 語(yǔ)句,各位朋友如有需要可參考,謝謝!
案例一:表如下圖所示
實(shí)驗(yàn)需求:
1. 在products表中查詢出廠日期晚于2014年4月的水果信息
語(yǔ)句:select * from products
where 出廠日期>'2014-04-30'
and 種類='水果'
2. 在products表中分組查詢所有水果、蔬菜、堅(jiān)果的總成本
語(yǔ)句:select 種類,SUM(成本)
as 總成本 from products
group by 種類
3. 在products表中查詢所有水果的信息,并按照成本從高到低的順序顯示結(jié)果
語(yǔ)句:select * from products
where 種類='水果'
order by 成本 desc
4. 在products表中查詢成本在1—5元之間的蔬菜信息
語(yǔ)句:select * from products
where 種類='蔬菜'
and 成本 between 1 and 5
5. 將products表中所有水果的名稱、種類和出廠日期信息插入到新表products_new中
語(yǔ)句:select 名稱,種類,出廠日期
into products_new
from products where 種類='水果'
案例二:表如下圖所示
實(shí)驗(yàn)需求:
1、 在products表和sales表中查詢產(chǎn)品的名稱、種類、成本、銷售地點(diǎn)和銷售價(jià)格。
語(yǔ)句:select products.名稱,products.種類,products.成本,sales.銷售地點(diǎn),sales.銷售價(jià)格
From products,sales
Where products.名稱=sales.名稱
或者:select a.名稱,a.種類,a.成本,b.銷售地點(diǎn),b.銷售價(jià)格
From products as a inner join sales as b on a.名稱=b.名稱
2、 在products表和sales表中查詢銷往海南的產(chǎn)品名稱、種類、成本和銷售價(jià)格。
語(yǔ)句:select products.名稱,products.種類,products.成本,sales.銷售價(jià)格
From products,sales
Where products.名稱=sales.名稱 and 銷售地點(diǎn)=’海南’
案例三:表如下圖所示
實(shí)驗(yàn)需求:
1、查詢王明的成績(jī)?結(jié)果:王明 90
Select 姓名,成績(jī)
from student where 姓名=’王明’
2、 給王明加2分?
Update student set 成績(jī)=成績(jī)+2
where 姓名=’王明’
3、 查詢備注不為空的學(xué)生?
Select * from student
where 備注 is not null
4、 查詢成績(jī)大于95分以上的學(xué)生?
Select * from student
where 成績(jī)>95
5、 王明轉(zhuǎn)學(xué),把王明刪掉?
Delete from student
where 姓名=‘王明’
6、 來(lái)了一位新同學(xué),名字叫于美麗?
Insert into student
values(20,’于美麗’,’110110110’,3,100,’勤奮好學(xué)’)
7、 查詢成績(jī)大于95分,并且班級(jí)是2班的都有誰(shuí)?
Select * from student
where 成績(jī)>95 and 所在班級(jí)=2
8、 查詢成績(jī)大于95分,并且班級(jí)是1、2班的都有誰(shuí)?
Select * from student
where 成績(jī)>95
and 所在班級(jí) between 1 and 2
9、 查詢平均成績(jī)?
Select avg(成績(jī)) as 平均成績(jī) from student
10、使用truncate刪除所有的數(shù)據(jù)
Truncate table student
實(shí)驗(yàn)案例四:表如下圖所示
實(shí)驗(yàn)需求:
1、顯示表中全部?jī)?nèi)容
select * from 員工信息表
2、顯示工資大于5000員工的所有信息
select * from 員工信息表
where 工資>=5000
3、顯示所有在1950到1988年之間出生員工的所有信息
select * from 員工信息表
where 出生日期>='1950' and 出生日期<='1988'
4、查詢出所有住在昌平的員工
select * from 員工信息表
where 家庭住址 like '%昌平%'
5、所有銷售員的工資漲幅1000
update 員工信息表
set 工資=工資+1000
where 職位='銷售員'
6、刪除工資小于3000員工的記錄
delete from 員工信息表
where 工資<=3000
7、所有經(jīng)理的工資下調(diào)10%
update 員工信息表
set 工資=工資*0.9
where 職位 like '%經(jīng)理'
案例五:表如下圖所示
1、查詢年齡大于35,小于 50,并且職位是員工?
語(yǔ)句:select * from 員工信息表
where 年齡>35 and 年齡<50
and 職位='員工'
2、查詢員工的平均年齡?
語(yǔ)句:select AVG(年齡) as 平均年齡 from 員工信息表
3、查詢各種職位的平均年齡,并且按照每種職位的平均年齡降序排序?
語(yǔ)句:select 職位,AVG(年齡) as 平均年齡 from 員工信息表
group by 職位
order by AVG(年齡) desc
4、查詢年齡最大和最小的人是誰(shuí)?
語(yǔ)句:select 員工姓名,年齡 from 員工信息表
where 年齡=(select MAX(年齡)
from 員工信息表) or
年齡=(select MIN(年齡)
from 員工信息表)
5、查詢每種職位有多少人?并且按每種職位的人數(shù)升序排序?
語(yǔ)句:select 職位,COUNT(員工id) as 人數(shù)
from 員工信息表
group by 職位
order by COUNT(員工id)
6、查詢年齡大于等于50歲和小于30歲的都有哪些人?
語(yǔ)句:select * from 員工信息表
where 年齡>=50 or 年齡<30
案例六:表如下圖所示
實(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
案例七:
事務(wù),完成轉(zhuǎn)賬
注意:編輯事務(wù),如果轉(zhuǎn)賬1000會(huì)回滾,提示失敗,如果轉(zhuǎn)賬800,提示成功。
創(chuàng)建bank表,設(shè)置約束currentMoney>=1,執(zhí)行以下語(yǔ)句:
print '查看轉(zhuǎn)賬事務(wù)前的余額'
select * from bank
go
begin transaction
declare @errorsum int
set @errorsum =0
update bank set customermoney =customermoney -1000
where customername ='張三'
set @errorsum =@errorsum +@@ERROR
update bank set customermoney =customermoney +1000
where customername ='李四'
set @errorsum =@errorsum +@@ERROR
print '查看轉(zhuǎn)賬事務(wù)過(guò)程中的余額'
select * from bank
if @errorsum <>0
begin
print '交易失敗,回滾事物'
rollback transaction
end
else
begin
print '交易成功,提交事務(wù),寫(xiě)入鍵盤(pán),永久保存'
commit transaction
end
go
print '查看轉(zhuǎn)賬事務(wù)后的余額'
select * from bank
go
交易失?。?/p>
交易成功:
分享名稱:T-SQL查詢語(yǔ)句大總結(jié)
文章來(lái)源:http://jinyejixie.com/article14/ijjsge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、ChatGPT、建站公司、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)