iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 16
1

SQL 基礎語法 - SIUD

資料庫的語言,是非常有通用性的,
基本上學會一種後,就可以遨遊各個不同千奇百怪的資料庫,
只是細部比較艱深的部分,各個資料庫會有不同的處理方式,
因此我們今天要來學最基本的資料庫語句。
為了幫助讀者更加了解,我們先假定有以下這個資料庫:

id name gender age hobby
1 John male 23 basketball
2 May female 32 baseball
3 Tom both 25 sleep

我們先建立一個基本的概念『 Primary Key 』,又叫做 PK ,
這個充滿競爭性的名詞,代表的是具有『絕對唯一性的欄位』,
像是上面的表格,PK 為 id ,id 絕對不會有重複的資料,
就像你我都有的身分證,在辦帳號時只會有一個選項,
而且不會與他人重複 (使用產生器不算OWO)。
這就是 PK 的概念。

ps1: 基於婚姻平權 brabra 的緣故,我們假定有 both 這個性別,讚讚。
ps2: SQL 執行環境為 MySQL
ps3: MySQL 安裝歡迎參考:
(mac)[https://www.zeusdesign.com.tw/article/19-Mac%20OS%20%E4%B8%8A%E5%AE%89%E8%A3%9D%20MySQL%20%E4%BB%A5%E5%8F%8A%E7%9B%B8%E9%97%9C%E8%A8%AD%E5%AE%9A%E7%AD%86%E8%A8%98.html]
(需再去官網下載 MySQL Workbench 來圖形化操作)
(window)[https://jerrynest.io/windows-mysql-installer/]

Select 讀取

讀取資料是最基本的資料庫語句,
而且幾乎每個初階後端工程師,在一家公司開始小雷人時,
最一開始會接觸到的,都是讀取資料庫裡的資料,
因此我們來看看以下的語句結構:

Select name From users

它的結構是這樣的:

Select + 要選擇的欄位 + From + 表格的名稱,

因此上面那句就是『從 users 表格中,取出所有的資料,並只顯示 name 欄位』的意思。
最後會顯示如下:

name
John
May
Tom

但大部分應用很少只取用特定欄位,
許多會一次取出所有的欄位,因此會使用『 * 』,代替所有的欄位:

Select * From users

最後會顯示所有的資料:

id name gender age hobby
1 John male 23 basketball
2 May female 32 baseball
3 Tom both 25 sleep

而在查詢時,我們一定會限定條件,
不可能一次取出所有的資料,難不成資料庫一百萬筆,
我只要找 10 筆,就要全部拉出來比嗎? 吃飽太閒。
因此我們可以使用『 where 』語句,設定條件,
文法如下:

Select + 要選擇的欄位 + From + 表格的名稱 Where 篩選的條件...

寫成程式,則為:

Select * From users Where gender = 'male'

這句話的意思就是說,『從 users 中選擇所有 gender 等於 male 的資料,並顯示所有欄位』。
因此最後會產生:

id name gender age hobby
1 John male 23 basketball

除了完全比對欄位值以外,還能設定大於小於的條件,例如:

Select * From users Where age  > 24

產生

id name gender age hobby
2 May female 32 baseball
3 Tom both 25 sleep

有沒有很好懂容易呀( 燦笑~

Insert 建立

再來你可能工作的比較屌一點,可以建資料了,
那你就會用到 Insert 語句,來建立資料。
他的語句結構如下:

Insert into + 表格名稱 ( 欄位名稱 ) + Values( 資料值 )

如果我想新增一筆 user ,那我就寫成如下:

Insert into users(id, name,gender,age,hobby)
Values (4,"Gary","male",50, "coding" )

結果,資料庫會變成:

id name gender age hobby
1 John male 23 basketball
2 May female 32 baseball
3 Tom both 25 sleep
4 Gary male 50 coding

這就是最基本的建立資料語句,

Update 更新

再來,你又更潮了些,可以來更新資料庫的資料,
那你就會需要用到 Update 語句。
Update 語句通常都要搭配 Where 語句,一定要設定條件,
因為許多資料庫系統都有設定安全模式,
避免小菜雞不小心把所有會員更新成 vip 之類的這種蠢事....
因此它的結構通常如下:

Update + 表格名稱 + Set + 欄位名稱 = 值 + Where + 條件

假定我們要更新 John 的年齡,可以這樣寫:

Update users 
Set age = 24
Where name = 'John'

最後資料庫會變成:

id name gender age hobby
1 John male 24 basketball
2 May female 32 baseball
3 Tom both 25 sleep
4 Gary male 50 coding

再來,要解說的概念是,如果『兩個以上的條件』,要怎麼顯示?
其實只要使用『 and 』語句,就可以連接不同的條件囉,
像是我們要更新所有年齡大於 30 歲,興趣是 coding 的人,
把名字改成 Terry,可以寫作:

Update users 
Set name = 'Terry'
Where age > 30 and hobby = 'coding'

最後結果為:

id name gender age hobby
1 John male 24 basketball
2 May female 32 baseball
3 Tom both 25 sleep
4 Terry male 50 coding

Delete 刪除

Delete 語句,是非常酷炫的,
大概就是你超屌,抖音紅人的程度,會有機會使用到的語句,
由於會清除資料的關係,很可怕的,要謹慎使用。
它的結構非常簡單,而且也和 Update 一樣,通常都設有安全模式。

Delete + From + 表格名 + Where + 條件

例如,我要刪除所有 age = 50 的資料,
那我就可以這樣寫:

Delete From users 
Where age = 50

最後我們就會跟 Terry 說掰掰。

id name gender age hobby
1 John male 24 basketball
2 May female 32 baseball
3 Tom both 25 sleep

如果有任何問題,或是指證文中的錯誤,歡迎寄信給我或留言在下面喔~


上一篇
[Day15] 資料庫 - 介紹與比較
下一篇
[Day17] 資料庫語言( SQL )進階語法
系列文
菜鳥後端工程師的第一門課30

尚未有邦友留言

立即登入留言