[Day6] SQL server資料表建立 - SQL Server資料庫入門

在上回 [Day5] 規劃資料表,透過資料庫正規化 - SQL Server資料庫入門 中,我們經由資料庫正規化1NF->2NF->3NF將訂單表單正規化,再來我們就要使用SSMS(Microsoft SQL Server Management Studio)協助我們在資料庫中建立資料表。

在這篇中,主要涵蓋內容為:
1.如何在SQL server中建立資料表
2.如何設定自動遞增
3.欄位型別選擇

訂單示意圖:

3NF正規化後:

建立資料表orders

1.對table點右鍵>new table

2.接著會出現設計的框框

3.填入欄位與型別
在此,補充一點,金額使用decimal,不要使用float,因為以下原因:
因為float表示近似數值,存在精度損失,存有小數的值可能會造成誤差,因此使用decimal。
decimal(p,s) 需要分別指定小數的最大位數(p)和小數位的數量(s)。
p (precision) :指定小數的最大位數,小數點的左側和右側的數字的總數量不能超過p,p的取值範圍是從1到38,默認值爲18。
s (scale):指定在小數點右側的小數位數,p-s是小數點左邊的最大位數。s必須是從0到p的值,只有在指定了精度的情況下才能指定s,s的默認值是0,因此,0 <= s <= p。

延伸閱讀: [Day3] SQL Server資料型態 - SQL Server資料庫入門 可以多加參考。

4.設定主鍵(PK)

5.儲存Ctrl+S,並命名為orders

6.重新整理,左方會出現orders資料表,代表成功建立

建立資料表customers

基本上可以照前面做法建立即可。

建立資料表products

基本上可以照前面做法建立即可。

建立資料表order_details

1.建構表
這邊我把amount數量設為整數。

2.這邊注意,要把id設定為主鍵,之後設定「自動遞增」,作法是identify設定成YES

3.刷新出現order_details

資料表視圖,總覽資料表

1.建立資料表視圖

2.選取要呈現的表

3.顯示我們剛剛建立的4張表

在跟我們在先前規劃的對照

總結

如果在先前正規化好的話,那建表時真的會很輕鬆XD,就只要考慮型別即可。

欄位命名規則上,我使用「全小寫,搭配底線」的規則(參考Laravel&MySQL),如果專案有統一就用專案內的,重點是整份是一樣規則就好。ps.此外,我發現用google翻譯翻出來的英文都怪怪的,有些是形容詞、名詞等等,可能要找天弄清楚。

欄位型態上,可參考先前寫的 [Day3] SQL Server資料型態 - SQL Server資料庫入門
在這回中發現了float與decimal的差別,因此在存有小數的金額請使用decimal,避免造成誤差、不準確。

特殊規則上,如某些欄位是流水號id需要「自動遞增」,作法是identify設定成YES。

在下回,我們將開始關聯這些表。

參考資料:
https://ithelp.ithome.com.tw/articles/10214381
https://ithelp.ithome.com.tw/articles/10214308