練習(xí)1 eg:
有一張表T_Scores,記錄比賽成績(jī)
Date Name Score
2008-8-8 拜仁 勝
2008-8-9 奇才 勝
2008-8-9 湖人 勝
2008-8-10 拜仁 負(fù)
2008-8-8 拜仁 負(fù)
2008-8-12 奇才 勝
要求輸出下面的格式 <注:在中文字符串前面加N,比如N‘勝’>
Name 勝 負(fù)
拜仁 1 2
湖人 1 0
奇才 2 0
代碼:1:
<一步一步慢慢實(shí)現(xiàn)>
select Name,
(
case Score
when N'勝' then 1
else 0
end
)as 勝,
(
case Score
when N'負(fù)' then 1
else 0
end
) as 負(fù)
from Scores
代碼:2
select Name,
SUM(
case Score
when N'勝' then 1
else 0
end
)as 勝,
SUM(
case Score
when N'負(fù)'then 1
else 0
end
)as 負(fù)
from Scores
group by Name
<實(shí)現(xiàn)要求的輸出,如上面的代碼2所示。>
全表掃描:對(duì)數(shù)據(jù)進(jìn)行檢索(select)效率最差的是全表掃描,一條條的找。
**目錄就是索引。
**創(chuàng)建索引的方式
----表—右鍵--創(chuàng)建索引---添加--在列中選擇索引包含的列--確定。
**使用索引能提高查詢效率但是其占空間,而且添加,更新,刪除數(shù)據(jù)時(shí)需要同步索引,因此
會(huì)降低速度。只在經(jīng)常檢索的字段上面創(chuàng)建索引。
(*)即使創(chuàng)建了索引,有時(shí)也需要全表掃描,比如like,函數(shù),類型轉(zhuǎn)換等。
表連接 <join>
Join用法:
主要有Inner Join 及 Outer Join:
最常用的(默認(rèn)是Inner):
Select <要選擇的字段> From <主要資料表>
<Join 方式> <次要資料表> [On <Join 規(guī)則>]
Inner Join 的主要精神就是 exclusive , 叫它做排他性吧! 就是講 Join 規(guī)則不相符的資料就會(huì)被排除掉, 譬如講在 PRoduct 中有一項(xiàng)產(chǎn)品的供貨商代碼 (SupplierId), 沒有出現(xiàn)在 Suppliers 資料表中, 那么這筆記錄便會(huì)被排除掉
Outer Join:
Select <要查詢的字段> From <Left 資料表>
<Left | Right> [Outer] Join <Right 資料表> On <Join 規(guī)則>
語(yǔ)法中的 Outer 是可以省略的, 例如你可以用 Left Join 或是 Right Join, 在本質(zhì)上, Outer Join 是 inclusive, 叫它做包容性吧! 不同于 Inner Join 的排他性, 因此在 Left Outer Join 的查詢結(jié)果會(huì)包含所有 Left 資料表的資料, 顛倒過來講, Right Outer Join 的查詢就會(huì)包含所有 Right 資料表的資料
子查詢
將一個(gè)查詢語(yǔ)句作為一個(gè)結(jié)果集供其他SQL語(yǔ)句使用,就像使用普通的表一樣,被當(dāng)作結(jié)果集的查詢語(yǔ)句被稱為子查詢. <可以使用表的地方都可以使用子查詢來代替>
select * from
(select * from Student where Age>20)
as 姓名
<只有返回且僅返回一行,一列數(shù)據(jù)的子查詢才能當(dāng)成單值子查詢>
select rom_number() over( order by Age DESC) as romnum
Name,Age,Chinese,Math from Student
<rom_number>不能應(yīng)用在Where語(yǔ)句的查詢中。
********這一階段的數(shù)據(jù)庫(kù)看完了,自己也掌握了很多的數(shù)據(jù)庫(kù)的查詢,建表,更新,刪除等語(yǔ)句,下面應(yīng)該就是ADO.NET的學(xué)習(xí),這個(gè)就是要把vs和數(shù)據(jù)庫(kù)連接起來,實(shí)現(xiàn)二者的互動(dòng)。自己對(duì)于數(shù)據(jù)庫(kù)的理解還只是處于初級(jí)階段,還有更多的知識(shí)等著我去學(xué)習(xí),不敢在放肆的玩了,要加油,為了我更早的成為大神。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注