iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Software Development

新手小白的每天一點SQL系列 第 11

Day 11 建立資料表 - 修改 & 回傳資料

  • 分享至 

  • xImage
  •  

Day 10 我們把資料儲存進 breeder & racehorse 這兩張資料表了,不過好像有哪裡不太對?

對照資料表,原來是 racehorse 有個欄位的資料填錯了呀!

來看我們要的資料:

昨天存的資料:

今天我們就要來嘗試修改資料,把該欄位的日期從 1995-02-08 修改成 1995-02-18

前言

  • 資料表(Table):每一行為唯一資料,每一列為不同屬性。
  • 主鍵(Primary Key):是一個列或列組的組合,其值能唯一標識表格中的每一行(唯一資料)。
  • 外鍵(foreign key):是指向其他表的主鍵的欄位,用於確定兩張表的關聯性及資料完整性,以避免部分資料匹配不上的問題。

使用 UPDATE 修改資料

語法結構主要由三個獨立子句組成:

UPDATE table_name
SET
    column1 = value1,
    column2 = value2
WHERE
    id = 1;

SETWHERE 都可以設定多個, 中間使用 , 隔開:

  • 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;

這樣確認資料有沒有修改正確就方便多啦!

參考資料:


上一篇
Day 10 建立資料表 - 儲存資料
下一篇
Day 12 選取資料 - SELECT
系列文
新手小白的每天一點SQL31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言