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
2.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SQL Meisterへの道 ~更新編~ / sql-meister-CUD
machu
November 29, 2020
More Decks by machu
See All by machu
NBAチームから学ぶ強いチームの作り方
machuz
0
74
Authorization to implement with Extensible Effect
machuz
0
470
アルプの 認証/認可分離戦略と手法
machuz
3
810
AuthzCtx - Alp社内共有会
machuz
0
100
アルプのEff独自エフェクト集 / Alp-original ’Eff’ pearls
machuz
1
2.3k
Scalebaseバックエンド構成について/the backend design of Scalebase
machuz
0
6.6k
SQL Meisterへの道 ~基礎〜参照編~ / sql-meister-R
machuz
0
2.8k
Authz
machuz
0
330
CQRS+ESをKinesis,Spark,RDB,S3でやってみた
machuz
0
3.6k
Other Decks in Technology
See All in Technology
Point Cloud as a Foreign Language for Multi-modal Large Language Model
takmin
0
340
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
480
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
2
850
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
1
540
The Django UUID Story - DjangoCon US 2026
pauloxnet
0
350
dbt と Snowflake と tag
kevinrobot34
2
310
Cloudflare製品を活用した AIガバナンス実践入門 / AI governance with Cloudflare Service
delta_tech
1
150
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
140
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
480
あなたの知らないバージョン命名規則
sat
PRO
3
870
AIエージェントのためのデータ設計
daiz21
0
570
Claude Codeの体系的な理解と知識のフック
oikon48
10
6.3k
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
260
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How to make the Groovebox
asonas
2
2.4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
We Are The Robots
honzajavorek
0
320
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
Google's AI Overviews - The New Search
badams
0
1.6k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Faster Mobile Websites
deanohume
310
32k
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 ͷಓ ~ߋ৽ฤ~ मྃͰ͢ɻ ͪΖΜόοΫΞοϓͯ͠·͕͢ɺσʔλҰ มߋͯ͠͠·͏ͱר͖͢·Ͱʹ͕͔͔࣌ؒͬͯ ͠·͏ͷͰ৻ॏʹ࣮ߦ͠·͠ΐ͏ʂ