正所謂萬事起頭難,新手惡夢第一關就是從0到1如何安全上壘,
當我們燃起雄心壯志,大喊資料庫我要創10個! 我是自由的!
卻被官方網站語法嚇得魂不守舍,哭阿! 上個壘難道這麼難嗎?
我的建議是先不要看官網 (謎之聲 : 學資料庫不要看官網? 鬼話仔!
我知道這也許會有點爭議,不過我要特別強調這個建議是指
從0到1這個階段,這是因為官網會是以文件型的方式條列內容,
既然是文件就必須把使用者”可能用的到”的資訊通通都給寫進去,
問題就出在這個"可能用的到",怎麼說呢?
打個比喻,當你是第一天玩棒球,還在思考棒子怎麼握的階段,
一開始就遇到老投手,丟給你"可能是好球的壞球",
沒經驗的你,根本無法消化這個局面,只能被電到懷疑人生,
然後放棄下一次體驗棒球的機會。
這或許也是為什麼彷間會有許多 Tutorial 的原因哩,先透過主題簡單化,
等到具備一定的理解或經驗之後,官網就轉變成最強悍的寶典!
有的時候只是在不對的時間,遇上對的官網。
上述是SQL指令的定義,實際走個例子會更容易理解一些,我們要建立一個資料庫,這個資料庫要給它名稱,由你決定叫它 ithome、seafood、hinnamnor 都可以。
// 建立一個資料庫,名稱要叫做ithome。
CREATE DATABASE ithome;
在資料庫世界中,Identifiers 其實系統大小寫都可以接受,
但是工程師們約定成俗只使用全小寫來命名,使其更容易辨別,
另外若資料庫名稱需要組合不同單字則是可以使用底線來區隔。
// 大小寫區分
CREATE DATABASE ithome;
// 底線區分
CREATE DATABASE ithome_db;
想創建 create 這個名稱的資料庫,但是這與系統 Key Words 產生衝突,
預設會產生錯誤訊息,可以使用雙引號("")來明確告訴資料庫,要命名這個名稱,
但是強烈不建議使用這種方式來混亂自己!
另外網路上可能會很常看到使用反引號(``)的範例,這邊注意,
反引號是只能特定於MySQL所使用,PostgreSQL並沒有辦法使用。
-- 雙引號 (PostgreSQL)
CREATE DATABASE "create";
-- 反引號 (MySQL)
CREATE DATABASE `create`;
通常資料庫名稱以系統功能進行命名,例如產出管理系統(production_db)、設備維護系統(equipment_db)、產品監控系統(product_db)。