日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

项目中常用的sql整理和详细01

發(fā)布時間:2024/10/8 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目中常用的sql整理和详细01 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

--有四張表
--1.學(xué)生表
Student(S#,Sname,Sage,Ssex) --S# 學(xué)生編號,Sname 學(xué)生姓名,Sage 出生年月,Ssex 學(xué)生性別
--2.課程表
Course(C#,Cname,T#) --C# --課程編號,Cname 課程名稱,T# 教師編號
--3.教師表
Teacher(T#,Tname) --T# 教師編號,Tname 教師姓名
--4.成績表
SC(S#,C#,score) --S# 學(xué)生編號,C# 課程編號,score 分?jǐn)?shù)

-----------------------------------------------------------------------------------------

--查詢"01"課程比"02"課程成績高的學(xué)生的信息及課程分?jǐn)?shù)
--isnull(check_expression,replacement_value)的使用,如果check_expression不為NULL,那么返回該表達式的值;否則返回replacement_value
--leftjoin就是以左表為主返回左表中連接的所有值,沒有值則以NULL代替,右連接返之
01.select a.*,b.score as [語文分?jǐn)?shù)],c.score as [數(shù)學(xué)分?jǐn)?shù)]? from
?? Student as a,SC as b ,SC as c where a.S#=b.S# and a.S#=c.S# and b.C#='01' and c.C#='02' and b.score>c.score
02.select a.* , b.score [課程"01"的分?jǐn)?shù)],isnull(c.score,60) [課程"02"的分?jǐn)?shù)] from Student a
?? left join SC b on a.S# = b.S# and b.C# = '01'
?? left join SC c on a.S# = c.S# and c.C# = '02'
?? where b.score > isnull(c.score,0)
--查找數(shù)學(xué)成績比語文成績好的學(xué)生信息
?? select a.*,b.score [語文],c.score [數(shù)學(xué)] from Student a
?? left join SC b on a.S#=b.S# and b.C#='01'
?? left join SC c on a.S#=c.S# and c.C#='02'
?? where c.score>ISNULL(b.score,0)

-----------------------------------------------------------------------------------------

?--查找平均成績大于60分的學(xué)生編號姓名平均成績
?--group by 有一個原則,就是 select 后面的所有列中,沒有使用聚合函數(shù)的列,必須出現(xiàn)在 group by 后面(重要)
?--where 子句的作用是在對查詢結(jié)果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數(shù)據(jù),條件中不能包含聚組函數(shù),使用where條件顯示特定的行。
?--having 子句的作用是篩選滿足條件的組,即在分組之后過濾數(shù)據(jù),條件中經(jīng)常包含聚組函數(shù),使用having 條件顯示特定的組,也可以使用多個分組標(biāo)準(zhǔn)進行分組。
?--CAST類型轉(zhuǎn)換;具有ANSI標(biāo)準(zhǔn)的功能(比如,使用CAST的函數(shù)能更容易的被其它數(shù)據(jù)庫軟件使用),但比CONVERT功能相對弱一些。不過,當(dāng)小數(shù)轉(zhuǎn)化為數(shù)值,并保留原始表達式中的小數(shù)數(shù)值時,仍然需要使用CAST。因此,我建議首先使用CAST,如果遇到必須使用CONVERT的情況時再使用CONVERT。
??? select a.S#,a.Sname,CAST(avg(b.score)as decimal)[平均分]? from Student a ,SC b
??? where? a.S#=b.S#
??? group by a.S#,a.Sname
??? having ISNULL(CAST(AVG(b.score)as decimal),0)>60
??? order by a.S#

------------------------------------------------------------------------------------------

??? --查詢所有同學(xué)的學(xué)生編號、學(xué)生姓名、選課總數(shù)、所有課程的總成績
??? select a.S#[編號],a.Sname, cast(sum(b.score)as decimal)[總分],COUNT(b.C#)[課程數(shù)] from Student a
??? left join SC b on a.S#=b.S#
??? group by a.S#,a.Sname
??? having COUNT(b.C#)>0
??? order by a.S#


?

轉(zhuǎn)載于:https://www.cnblogs.com/zhaolee/archive/2011/07/15/2107860.html

總結(jié)

以上是生活随笔為你收集整理的项目中常用的sql整理和详细01的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。