Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SQL Meisterへの道 ~更新編~ / sql-meister-CUD
Search
machu
November 29, 2020
Technology
0
2.3k
SQL Meisterへの道 ~更新編~ / sql-meister-CUD
machu
November 29, 2020
Tweet
Share
More Decks by machu
See All by machu
NBAチームから学ぶ強いチームの作り方
machuz
0
46
Authorization to implement with Extensible Effect
machuz
0
420
アルプの 認証/認可分離戦略と手法
machuz
3
750
AuthzCtx - Alp社内共有会
machuz
0
76
アルプのEff独自エフェクト集 / Alp-original ’Eff’ pearls
machuz
1
2.1k
Scalebaseバックエンド構成について/the backend design of Scalebase
machuz
0
6.4k
SQL Meisterへの道 ~基礎〜参照編~ / sql-meister-R
machuz
0
2.6k
Authz
machuz
0
310
CQRS+ESをKinesis,Spark,RDB,S3でやってみた
machuz
0
3.4k
Other Decks in Technology
See All in Technology
Snowflake×dbtを用いたテレシーのデータ基盤のこれまでとこれから
sagara
0
130
使いやすいプラットフォームの作り方 ー LINEヤフーのKubernetes基盤に学ぶ理論と実践
lycorptech_jp
PRO
1
160
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
Modern Linux
oracle4engineer
PRO
0
160
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
RSCの時代にReactとフレームワークの境界を探る
uhyo
11
3.5k
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
460
roppongirb_20250911
igaiga
1
250
株式会社ログラス - 会社説明資料【エンジニア】/ Loglass Engineer
loglass2019
4
65k
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい勘所を集めてみました! - / How to start Scrum that is not written in the Scrum Guide 2nd
takaking22
2
210
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
260
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
3
1.1k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
113
20k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Fireside Chat
paigeccino
39
3.6k
Visualization
eitanlees
148
16k
Being A Developer After 40
akosma
90
590k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
A designer walks into a library…
pauljervisheath
207
24k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Transcript
SQL Meister ͷಓ @ma2k8 2020-10-31 ~ߋ৽ฤ~
࣍ - ߋ৽ܥͷΫΤϦΛൃߦ͢Δͦͷલʹ - ҆৺҆શͷτϥϯβΫγϣϯ - INSERTจͰσʔλΛՃͯ͠ΈΑ͏ - INSERTจͷจ๏ -
࣮ߦ - UPDATEจͰσʔλΛߋ৽ͯ͠ΈΑ͏ - UPDATEจͷจ๏ - ࣮ߦ - DELETEจͰσʔλΛফͯ͠ΈΑ͏ - DELETEจͷจ๏ - ࣮ߦ
ߋ৽ܥͷΫΤϦΛ ൃߦ͢Δͦͷલʹ
҆৺҆શͷτϥϯβΫγϣϯ τϥϯβΫγϣϯͱɺʮॲཧΛ·ͱΊΔʯ͜ͱͰ͢ɻ ઌఔୟ͍ͨSELECTจ1ͭͷΫΤϦͰ1ͭͷॲཧͰ͢ɻ τϥϯβΫγϣϯΛ͏ͱɺෳͷΫΤϦΛ1ͭͷॲཧͱͯ͠ѻ͏͜ͱ͕Ͱ͖· ͢ɻ͜ΕʹΑͬͯɺ·ͱΊͨॲཧΛ࣮ߦ͢Δ͔ר͖͔͢ΛબͰ͖ͨΓ͠·͢ɻ ݴ༿͚ͩͩͱ͍͠ͱࢥ͏ͷͰͱΓ͋͑ͣͬͯΈΑ͏ʂ
҆৺҆શͷτϥϯβΫγϣϯ ͏ίϚϯυͨͬͨͷ3ͭ - ͡·Γͷ߹ਤ begin - ྺ࢙ͷ֬ఆ commit - ࣌Λͦ͏
rollback
҆৺҆શͷτϥϯβΫγϣϯ begin -> rollbackͷ༷ࢠ ①更新前のデータを確認する ②処理の始まりを宣言! ③データを更新する ※update文はこの後出てくるので一旦無視で! ④更新内容を確認 ⑤更新内容が思ったとおりじゃない!
そんなときは時を戻せます。 ⑥最初の状態に戻った!
҆৺҆શͷτϥϯβΫγϣϯ begin -> commitͷ༷ࢠ ①更新前のデータを確認する ②処理の始まりを宣言! ③データを更新する ※update文はこの後出てくるので一旦無視で! ④更新内容を確認 ⑤更新内容完璧!
この内容で確定するぞ! ⑥変更が確定された!
҆৺҆શͷτϥϯβΫγϣϯ ʮॲཧΛ·ͱΊΔʯͱΊͬͪΌศར͡Όͳ͍Ͱ͔͢ʁʁ ΫΤϦͰߋ৽͞Εͨޙͷঢ়ଶΛ֬ೝͯ͠ɺ֬ఆ͢Δ͔ɺ͔͢ ΛܾΊΔ͜ͱ͕Ͱ͖ΔͷͰͱͯ҆৺ͳͷͰ͢ɾɾɾʂ ߋ৽ܥΫΤϦɺwhere۟ΛΕͪΌ͏ͱͯ͢ͷσʔλʹର ͯ͠ߋ৽ΛΒͤͨΓɺةͳ͍ૢ࡞͕Ͱ͖ͯ͠·͏ͷͰ͜͏͍ ͏อݥΛ͔͚͓ͯ͘ͱ҆৺҆શͰ͢ɻ ࣗ͜ΕʹՃ͑ͯɺWHERE͔۟Βઌʹॻ͍ͯࣄނΒͳ͍Α͏ ʹͯͨ͠Γ͠·͢ɻ
INSERTจͰ σʔλΛՃͯ͠ΈΑ͏
INSERTจͷจ๏ INSERT INTO ${ςʔϒϧ໊} -> σʔλΛՃ͢ΔςʔϒϧΛࢦఆ SET ${ϑΟʔϧυ໊}=“Ճ༰”,... -> Ճ͢ΔσʔλΛࢦఆ
※INSERT文だけWHERE句が要らないぞ! INSERT INTO users SET name = ‘machu’, updated_at = now(); テーブル名 フィールド名 値 フィールド名 値
࣮ߦ DBを確認して選択 テーブル一覧を確認 テーブル構造とデータの内容を確認 クエリを組み立てて実行! ※スペースの関係で省いてますが、 実際にクエリを実行する際はトランザクションを忘れずに!
UPDATEจͰ σʔλΛߋ৽ͯ͠ΈΑ͏
UPDATEจͷจ๏ UPDATE ${ςʔϒϧ໊} -> σʔλΛߋ৽͢ΔςʔϒϧΛࢦఆ SET ${ϑΟʔϧυ໊}=“ߋ৽༰”,... -> ߋ৽͢ΔσʔλΛࢦఆ WHERE
${݅} -> ݅Λࢦఆ ※WHERE句を忘れると全データを更新してしまいます!危険! UPDATE users SET name = ‘machu’, updated_at = now() WHERE id = 1; テーブル名 フィールド名 値 フィールド名 値 条件 フィールド名 値
࣮ߦ DBを確認して選択 テーブル一覧を確認 テーブル構造とデータの内容を確認 ※ここでWHERE句で引っかかるのが 意図したデータであるかも確認します クエリを組み立てて実行! ※スペースの関係で省いてますが、 実際にクエリを実行する際はトランザクションを忘れずに!
DELETEจͰ σʔλΛআͯ͠ΈΑ͏
DELETEจͷจ๏ DELETE FROM ${ςʔϒϧ໊} -> σʔλΛআ͢ΔςʔϒϧΛࢦఆ WHERE ${݅} -> আ͢Δσʔλͷ݅Λࢦఆ
※WHERE句を忘れると全データを削除してしまいます!危険!
࣮ߦ DBを確認して選択 テーブル一覧を確認 テーブル構造とデータの内容を確認 ※ここでWHERE句で引っかかるのが 意図したデータであるかも確認します クエリを組み立てて実行! ※スペースの関係で省いてますが、 実際にクエリを実行する際はトランザクションを忘れずに!
͜ΕͰSQL Meister ͷಓ ~ߋ৽ฤ~ मྃͰ͢ɻ ͪΖΜόοΫΞοϓͯ͠·͕͢ɺσʔλҰ มߋͯ͠͠·͏ͱר͖͢·Ͱʹ͕͔͔࣌ؒͬͯ ͠·͏ͷͰ৻ॏʹ࣮ߦ͠·͠ΐ͏ʂ