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
Cloudflare製品を活用した AIガバナンス実践入門 / AI governance with Cloudflare Service
delta_tech
1
120
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
270
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
180
500名弱規模の組織のPythonプロジェクト(dbt) をどう管理するか?
hiracky16
0
360
Introduction to Bill One Development Engineer
sansan33
PRO
0
480
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
960
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
カーネルまで探検して理解するふたつの自動計装
sumiyae
0
330
AI駆動開発を組織で促すために
lycorptech_jp
PRO
7
8.6k
GopherCon @シアトル に行ってきました
logica0419
0
330
信頼性はSREだけのものじゃない
hkawaras
0
290
Digital Credentials API × OpenID4VP ブラウザ完結型本人確認の実装知見(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
330
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
450
The browser strikes back
jonoalderson
0
1.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
630
A Tale of Four Properties
chriscoyier
163
24k
Statistics for Hackers
jakevdp
799
230k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
480
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
220
Balancing Empowerment & Direction
lara
6
1.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
A Soul's Torment
seathinner
6
3.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 ͷಓ ~ߋ৽ฤ~ मྃͰ͢ɻ ͪΖΜόοΫΞοϓͯ͠·͕͢ɺσʔλҰ มߋͯ͠͠·͏ͱר͖͢·Ͱʹ͕͔͔࣌ؒͬͯ ͠·͏ͷͰ৻ॏʹ࣮ߦ͠·͠ΐ͏ʂ