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
47
Authorization to implement with Extensible Effect
machuz
0
420
アルプの 認証/認可分離戦略と手法
machuz
3
750
AuthzCtx - Alp社内共有会
machuz
0
77
アルプのEff独自エフェクト集 / Alp-original ’Eff’ pearls
machuz
1
2.2k
Scalebaseバックエンド構成について/the backend design of Scalebase
machuz
0
6.5k
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
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
1
490
SREのキャリアから経営に近づく - Enterprise Risk Managementを基に -
shonansurvivors
1
740
窓口業務を生成AIにおまかせ!Bedrock Agent Coreで実現する自治体AIエージェント!
rayofhopejp
0
200
GTC 2025 : 가속되고 있는 미래
inureyes
PRO
0
160
ソフトウェアエンジニアとデータエンジニアの違い・キャリアチェンジ
mtpooh
1
480
サブドメインテイクオーバー事例紹介と対策について
mikit
16
7.6k
[AWS 秋のオブザーバビリティ祭り 2025 〜最新アップデートと生成 AI × オブザーバビリティ〜] Amazon Bedrock AgentCore で実現!お手軽 AI エージェントオブザーバビリティ
0nihajim
2
370
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
390
品質保証の取り組みを広げる仕組みづくり〜スキルの移譲と自律を支える実践知〜
tarappo
1
130
kotlin-lsp の開発開始に触発されて、Emacs で Kotlin 開発に挑戦した記録 / kotlin‑lsp as a Catalyst: My Journey to Kotlin Development in Emacs
nabeo
2
350
AIとの協業で実現!レガシーコードをKotlinらしく生まれ変わらせる実践ガイド
zozotech
PRO
2
340
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
1
250
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
It's Worth the Effort
3n
187
28k
Why Our Code Smells
bkeepers
PRO
340
57k
Site-Speed That Sticks
csswizardry
13
950
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
We Have a Design System, Now What?
morganepeng
54
7.9k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
A designer walks into a library…
pauljervisheath
209
24k
Making Projects Easy
brettharned
120
6.4k
Keith and Marios Guide to Fast Websites
keithpitt
412
23k
Done Done
chrislema
186
16k
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 ͷಓ ~ߋ৽ฤ~ मྃͰ͢ɻ ͪΖΜόοΫΞοϓͯ͠·͕͢ɺσʔλҰ มߋͯ͠͠·͏ͱר͖͢·Ͱʹ͕͔͔࣌ؒͬͯ ͠·͏ͷͰ৻ॏʹ࣮ߦ͠·͠ΐ͏ʂ