iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
1
Modern Web

淺談資料庫&ASP.net&C# 入門系列 第 15

[iT鐵人賽Day15]SQL語法-撈取資料Select

要如何搜尋資料庫內的資料? SQL語法中就是從Select開始。

Select

用於查詢表格內欄位資料的指令,可搭配條件限制的子句(如where)或排列順序的子句(如order)來取得查詢結果。

Select使用:

以這個網站 SQL Server MySQL 內的資料庫為練習範例。

SELECT CustomerName,ContactName FROM Customers where Country="UK";

SELECT[欄位名稱] (想要顯示出來的欄位內的資料結果)
FROM[資料表名稱] (資料庫.table名稱)
WHERE[搜尋的條件與範圍] (條件子句)

上述的程式碼就是要從customers資料表中(FROM Customers)收尋條件是欄位Country叫UK( Country="UK";)並只要秀出欄位CustomerName跟ContactName的結果(SELECT CustomerName,ContactName)出來就好,然後Select from where 英文大小寫是沒差的。

執行後結果:

https://ithelp.ithome.com.tw/upload/images/20190916/20119925R2uCx4uiKh.png

使用 * 顯示所有欄位

SELECT * FROM Customers where Country="UK"

如果想要顯示Country="UK"的全部欄位可以用 * 的符號SELECT *,就不用每一個欄位都打出來了。

不過若資料量大時竟量避免使用 * ,只有幾十筆資料可能沒什麼感覺但假如已經是數百萬筆資料那就會影響到速度了。

若是沒有from則是單純列印

當然也可以不打from跟where,代表直接列印出結果。

SELECT 'Alfreds Futterkiste';

記得要加上單引號'。

限制數量

SQL Server

SELECT top 2 * FROM Customers;

Customers資料表內有很多筆的資料,假如我只想要收尋前x筆資料的話,可以selcet後加上top x,就可以只顯示出想要的x筆資料數量。

MySQL

SELECT * FROM Customers limit 5;

Customers資料表內有很多筆的資料,假如我只想要收尋前x筆資料的話,可以使用limit x,就可以只顯示出想要的幾筆資料數量。

關於TOP, LIMIT W3的介紹

善用搜尋條件where

假如我想從Customers資料表中找出Country是France的資料,可以這樣下SQL語法

SELECT * FROM Customers where Country="France";

不過假如我還要再下條件,找出Country是France且City是Paris的客戶資料,那麼只需在條件是下個and就可以了。

SELECT * FROM [Customers] where Country ="France" and City ="Paris";

不過我舉例的不太好,因為條件只要直接指定wher City ="Paris"就可以收尋出一樣的結果了XD
不過記得可以使用and來增加條件式ㄏㄏ。

然後可以使用AND當然也就可以使用OR囉!就看想要怎樣的結果來運用收尋條件。

比較運算子

比較運算子包含『 =、>、<、>=、<= 』等幾種,下達條件時,可針對資料行使用比較運算子。

例如:
只想收尋Country="UK"的資料

where Country="UK"

或找出CustomerID 大於等於5但要小於10的資料。

where CustomerID >=5 and CustomerID < 10

透過運算子可以加快收尋的速度。

參考資料

hahow學校Ryan老師的資料庫設計課程


上一篇
[iT鐵人賽Day14]ASP.NET與資料庫的資料存取-DataSet你很猛
下一篇
[iT鐵人賽Day16] SQL語法-表與表之間的關係 Join 也可使用小精靈產生Join
系列文
淺談資料庫&ASP.net&C# 入門36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

2
小朱
iT邦新手 4 級 ‧ 2019-09-16 12:10:03

除非用的是ANSI-SQL標準內所定義的指令,建議標示使用的DBMS是什麼,像limit這個詞只適用於MySQL資料庫,在SQL Server/Oracle都不支援。

捲毛蔡 iT邦新手 4 級 ‧ 2019-09-16 14:20:45 檢舉

感謝小朱大大的指點,我會多加注意的,另外已補上SQL Server的使用方式,感謝提醒><

我要留言

立即登入留言