iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0

Day5 Table

介紹一下,我們最常使用 SQL 來操作的基本單位:表

以下是一個表的建立

CREATE TABLE user(
    user_id     serial,
    email       varchar(255) not null,
    password    varchar(255) not null,
    created_at  timestamp default current_timestamp,
    updated_at  timestamp default current_timestamp,
    primary key(id)
);
  1. serial 是自動增加的數字,在此設為主鍵,此時資料庫會用 id 這個欄位當作叢集索引,建立一棵B+Tree
  2. 確定不能為空的欄位盡量設定 not null
  3. default 是將欄位設預設值,也可以不設 default,在程式內做。
  4. user table 在設計的時候須注意,如果將email當作 unique index,那未來做郵件以外的登入的時候,程式會不好修改。
  5. 密碼一定要處理過再進資料庫,不能存明碼,為了方便這邊先不處理。
CREATE TABLE user_profile(
    user_id         int not null,
    username        varchar(255) not null,
    picture         varchar(255),
    introduction    varchar(255),
    updated_at      timestamp
)

資料庫新手觀念

資料庫內會有很多資料表,資料表互相會有關連性
上面的例子中,user表存註冊資訊,user_profile存介紹頁面的詳細資料

這邊先來看個簡單情境:

  1. /api/login
    使用者傳來 email, password,我們後端資料庫接到會需要去資料庫做個搜尋比對
SELECT user_id, password 
FROM user
where email = 'user@email' --- 這邊就是使用者帶進來的 email 資料 

然後還會做 token 處理(假設是用 jwt 驗證),最後回傳 user_id 以及 token 回去給前端

這邊就是一個最簡單的例子,一張表要怎麼使用

以下有幾個快速學習了解資料庫表,然後可以上手 SQL 的觀念

  1. 表:每次要查詢想像畫面對應哪張表
  2. 欄位:明確要查詢出的欄位,避免 select *
  3. 列:下 where 條件就是在過濾列
  4. 先用表單類型的應用去讓一個表單頁面,對應資料庫的一張表,練習 sql query 會滿有效率的

為了篇幅不要太長,今天先到這樣囉

在廣告一下,Side Project Taiwan 小夥伴招生中,每天都要人一起寫 code 聊天,職場甘苦談或是各種職缺介紹/內推,歡迎一起來同樂!

DC連結 https://sideproj.tw/dc


上一篇
Day4 準備資料
下一篇
Day6 單表 SELECT
系列文
我獨自升級之資料庫從入門到中階20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言