Day 10 我們把資料儲存進 breeder & racehorse 這兩張資料表了,不過好像有哪裡不太對?
對照資料表,原來是 racehorse 有個欄位的資料填錯了呀!
來看我們要的資料:
昨天存的資料:
今天我們就要來嘗試修改資料,把該欄位的日期從 1995-02-08
修改成 1995-02-18
~
UPDATE
修改資料語法結構主要由三個獨立子句組成:
UPDATE table_name
SET
column1 = value1,
column2 = value2
WHERE
id = 1;
SET
跟 WHERE
都可以設定多個, 中間使用 ,
隔開:
UPDATE
指定要操作的資料表SET
指定要修改的欄位與值WHERE
定義要修改的對象(條件)個人解讀的順序是:UPDATE → WHERE → SET
我們依照這個結構來寫看看:
UPDATE racehorse #指定修改 racehorse 這張資料表
SET birth_date = '1995-02-18' #指定修改 `birt_date` 欄位,值為 '1995-02-18'
WHERE id = 4; #修改 `id = 4` 的 record
我們再把該筆資料撈出來確認一下:
SELECT * FROM racehorse WHERE id = 4;
資料就修改好囉!
RETURNING
返回資料剛剛我們正確的修改了資料,又必須再重新使用 SELECT
把資料撈出來撿查,是不是有點麻煩呢?
其實 SQL 有提供 RETURNING
這個語法,讓我們在 UODATE
資料後,可以回傳資料表:
UPDATE my_table
SET
column1 = value1,
column2 = value2
WHERE
id = 1
RETURNING *; #使用星*號返回已修改行的所有列
讓我們來使用看看:
UPDATE racehorse
SET birth_date = '1995-02-18'
WHERE id = 4
RETURNING *;
除此之外,我們也可以指定想要顯示的欄位:
# 我只想確認 name & birth_date 兩個欄位的資料
UPDATE racehorse
SET birth_date = '1995-02-18'
WHERE id = 4
RETURNING name, birth_date;
這樣確認資料有沒有修改正確就方便多啦!
參考資料: