SQL SERVER教學第三天筆記

SQL SERVER教學
SQL SERVER教學第三天筆記

上一堂課複習

TOP語法 – 把前幾筆資料抓出來(可用括弧指定要抓幾筆)
Distinct語法 – 把重複的值刪除
Order by語法 – 排序資料 —- 搭配兩種排序方式
(1)、ASC – 由小到大
(2)、DESC – 由大到小
Ps.SQL的中文排序邏輯,不管是用微軟還是、EXCLE,都是依照筆畫的多寡進行排序

SQL SERVER教學第三天筆記

有條件的篩選資料

Where語法 – 我要根據什麼條件
EX. 在 imdb 資料庫中找出 1994 年上映的經典電影

SELECT [id]
    ,[title]
    ,[release_year]
    ,[rating]
    ,[director]
    ,[runtime]
 FROM [imdb].[dbo].[movies]
where release_year = 1994;

如果今天是針對”字串”做比較,記得加上”(單引號)

Ex.
找出導演是Christopher Nolan的資料
SELECT [id]
    ,[title]
    ,[release_year]
    ,[rating]
    ,[director]
    ,[runtime]
  FROM [imdb].[dbo].[movies]
where director = ‘Christopher Nolan’;

比較運算子

比較運算子作用描述
=相等
!=不相等
>大於
<小於
>=大於等於
<=小於等於

實際案例注意事項

1、如果今天要同時想要篩選指定兩個目標,記得要用邏輯運算子
Ex. where Date = ‘2020-08-15’ and Name = ‘吳小亮’ ;(使用and來連接Date、Name的篩選資料)

2、如果今天同時要用where篩選一筆資料,並和order並用,中間不用加上逗號或分號
Ex. where Name = ‘江小花’ order by Amount DESC

**SQL的世界中 – 逗號會用到的時機 – 欄位跟欄位之間就要加上,或是很多資料之間要隔開

邏輯運算子

AND – 且

1、把一個範圍裡面的資料抓出來
EX. 搜尋評等介於 8.5 與 9.0 之間的電影(同時要符合兩個條件 1、>=8.5、2、<=9.5)
where rating >= 8.5 and rating <= 9.0;

2、接(1) – 有另外一種寫法更推薦 – Between…and….
where rating between 8.5 and 9.0;

3、小練習 – 搜尋吳小亮所有在 2020 年八月的銷售記錄
where Date between ‘2020-08-01’ and ‘2020-08-31’ and
Name = ‘吳小亮’;

SQL SERVER教學第三天筆記 1
SQL SERVER教學第三天筆記

OR – 或許

1、假設我們希望能夠把所有西瓜或蘋果的銷售數據,要表達或許的概念,可以使用 OR:
where Product = ‘西瓜’ or Product = ‘蘋果’;

2、結合多個 or 的時候,有兩種方式。

第一種 – OR 一直寫下去
WHERE Product = ‘西瓜’ OR Product = ‘蘋果’ OR Product = ‘芒果’;

第二種 – 使用IN
WHERE Product IN (‘西瓜’, ‘蘋果’, ‘芒果’);


NOT – 不要這個

1、假設我們希望能夠把除了西瓜或蘋果的銷售數據,可以使用 NOT
where NOT ( Product = ‘西瓜’ or Product = ‘蘋果’) ;

2、NOT也很常和IN一起使用 – NOT IN
WHERE Product NOT IN (‘西瓜’, ‘蘋果’);

文字特徵比對

今天想要把資料庫裡面,包含”商”的字詞,就可以使用”LIKE”把有關字詞抓出來

1、假設我們希望把名字内第二個字為 “果” 的商品查找出來
where CustomerName like ‘%商%’;

2、假設我們希望把名字内第二個字為 “果” 的商品查找出來

% – 只要有一個字詞符合,就會抓出來
_ – 把該空字串前後指定字詞的文字抓出來

PS.% 表示任意文字,包含空字串_ 表示剛好一個文字

下集待續 – JOIN功能 – SSMS的超強功能,不用自己寫JOIN,用模組化工具來完成JOIN語法