日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

--查詢"01"課程比"02"課程成績高的學生的信息及課程分數
--isnull(check_expression,replacement_value)的使用,如果check_expression不為NULL,那么返回該表達式的值;否則返回replacement_value
--leftjoin就是以左表為主返回左表中連接的所有值,沒有值則以NULL代替,右連接返之
01.select a.*,b.score as [語文分數],c.score as [數學分數]? 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"的分數],isnull(c.score,60) [課程"02"的分數] 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)
--查找數學成績比語文成績好的學生信息
?? select a.*,b.score [語文],c.score [數學] 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分的學生編號姓名平均成績
?--group by 有一個原則,就是 select 后面的所有列中,沒有使用聚合函數的列,必須出現在 group by 后面(重要)
?--where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,條件中不能包含聚組函數,使用where條件顯示特定的行。
?--having 子句的作用是篩選滿足條件的組,即在分組之后過濾數據,條件中經常包含聚組函數,使用having 條件顯示特定的組,也可以使用多個分組標準進行分組。
?--CAST類型轉換;具有ANSI標準的功能(比如,使用CAST的函數能更容易的被其它數據庫軟件使用),但比CONVERT功能相對弱一些。不過,當小數轉化為數值,并保留原始表達式中的小數數值時,仍然需要使用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#

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

??? --查詢所有同學的學生編號、學生姓名、選課總數、所有課程的總成績
??? select a.S#[編號],a.Sname, cast(sum(b.score)as decimal)[總分],COUNT(b.C#)[課程數] 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#


?

轉載于:https://www.cnblogs.com/zhaolee/archive/2011/07/15/2107860.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。