Slide 1

Slide 1 text

SQL Meister ΁ͷಓ @ma2k8 2020-10-31 ~ߋ৽ฤ~

Slide 2

Slide 2 text

໨࣍ - ߋ৽ܥͷΫΤϦΛൃߦ͢Δͦͷલʹ - ҆৺҆શͷτϥϯβΫγϣϯ - INSERTจͰσʔλΛ௥Ճͯ͠ΈΑ͏ - INSERTจͷจ๏ - ࣮ߦ - UPDATEจͰσʔλΛߋ৽ͯ͠ΈΑ͏ - UPDATEจͷจ๏ - ࣮ߦ - DELETEจͰσʔλΛফͯ͠ΈΑ͏ - DELETEจͷจ๏ - ࣮ߦ

Slide 3

Slide 3 text

ߋ৽ܥͷΫΤϦΛ ൃߦ͢Δͦͷલʹ

Slide 4

Slide 4 text

҆৺҆શͷτϥϯβΫγϣϯ τϥϯβΫγϣϯͱ͸ɺʮॲཧΛ·ͱΊΔʯ͜ͱͰ͢ɻ ઌఔୟ͍ͨSELECTจ͸1ͭͷΫΤϦͰ1ͭͷॲཧͰ͢ɻ τϥϯβΫγϣϯΛ࢖͏ͱɺෳ਺ͷΫΤϦΛ1ͭͷॲཧͱͯ͠ѻ͏͜ͱ͕Ͱ͖· ͢ɻ͜ΕʹΑͬͯɺ·ͱΊͨॲཧΛ࣮ߦ͢Δ͔ר͖໭͔͢Λબ୒Ͱ͖ͨΓ͠·͢ɻ ݴ༿͚ͩͩͱ೉͍͠ͱࢥ͏ͷͰͱΓ͋͑ͣ΍ͬͯΈΑ͏ʂ

Slide 5

Slide 5 text

҆৺҆શͷτϥϯβΫγϣϯ ࢖͏ίϚϯυ͸ͨͬͨͷ3ͭ - ͸͡·Γͷ߹ਤ begin - ྺ࢙ͷ֬ఆ commit - ࣌Λ໭ͦ͏ rollback

Slide 6

Slide 6 text

҆৺҆શͷτϥϯβΫγϣϯ begin -> rollbackͷ༷ࢠ ①更新前のデータを確認する ②処理の始まりを宣言! ③データを更新する ※update文はこの後出てくるので一旦無視で! ④更新内容を確認 ⑤更新内容が思ったとおりじゃない!  そんなときは時を戻せます。 ⑥最初の状態に戻った!

Slide 7

Slide 7 text

҆৺҆શͷτϥϯβΫγϣϯ begin -> commitͷ༷ࢠ ①更新前のデータを確認する ②処理の始まりを宣言! ③データを更新する ※update文はこの後出てくるので一旦無視で! ④更新内容を確認 ⑤更新内容完璧! この内容で確定するぞ! ⑥変更が確定された!

Slide 8

Slide 8 text

҆৺҆શͷτϥϯβΫγϣϯ ʮॲཧΛ·ͱΊΔʯͱΊͬͪΌศར͡Όͳ͍Ͱ͔͢ʁʁ ΫΤϦͰߋ৽͞Εͨޙͷঢ়ଶΛ֬ೝͯ͠ɺ֬ఆ͢Δ͔ɺ໭͔͢ ΛܾΊΔ͜ͱ͕Ͱ͖ΔͷͰͱͯ΋҆৺ͳͷͰ͢ɾɾɾʂ ߋ৽ܥΫΤϦ͸ɺwhere۟Λ๨ΕͪΌ͏ͱ͢΂ͯͷσʔλʹର ͯ͠ߋ৽Λ૸ΒͤͨΓɺةͳ͍ૢ࡞͕Ͱ͖ͯ͠·͏ͷͰ͜͏͍ ͏อݥΛ͔͚͓ͯ͘ͱ҆৺҆શͰ͢ɻ ࣗ෼͸͜ΕʹՃ͑ͯɺWHERE͔۟Βઌʹॻ͍ͯࣄނΒͳ͍Α͏ ʹͯͨ͠Γ͠·͢ɻ

Slide 9

Slide 9 text

INSERTจͰ σʔλΛ௥Ճͯ͠ΈΑ͏

Slide 10

Slide 10 text

INSERTจͷจ๏ INSERT INTO ${ςʔϒϧ໊} -> σʔλΛ௥Ճ͢ΔςʔϒϧΛࢦఆ SET ${ϑΟʔϧυ໊}=“௥Ճ಺༰”,... -> ௥Ճ͢ΔσʔλΛࢦఆ ※INSERT文だけWHERE句が要らないぞ! INSERT INTO users SET name = ‘machu’, updated_at = now(); テーブル名 フィールド名 値 フィールド名 値

Slide 11

Slide 11 text

࣮ߦ DBを確認して選択 テーブル一覧を確認 テーブル構造とデータの内容を確認 クエリを組み立てて実行! ※スペースの関係で省いてますが、 実際にクエリを実行する際はトランザクションを忘れずに!

Slide 12

Slide 12 text

UPDATEจͰ σʔλΛߋ৽ͯ͠ΈΑ͏

Slide 13

Slide 13 text

UPDATEจͷจ๏ UPDATE ${ςʔϒϧ໊} -> σʔλΛߋ৽͢ΔςʔϒϧΛࢦఆ SET ${ϑΟʔϧυ໊}=“ߋ৽಺༰”,... -> ߋ৽͢ΔσʔλΛࢦఆ WHERE ${৚݅} -> ৚݅Λࢦఆ ※WHERE句を忘れると全データを更新してしまいます!危険! UPDATE users SET name = ‘machu’, updated_at = now() WHERE id = 1; テーブル名 フィールド名 値 フィールド名 値 条件  フィールド名 値

Slide 14

Slide 14 text

࣮ߦ DBを確認して選択 テーブル一覧を確認 テーブル構造とデータの内容を確認 ※ここでWHERE句で引っかかるのが    意図したデータであるかも確認します クエリを組み立てて実行! ※スペースの関係で省いてますが、 実際にクエリを実行する際はトランザクションを忘れずに!

Slide 15

Slide 15 text

DELETEจͰ σʔλΛ࡟আͯ͠ΈΑ͏

Slide 16

Slide 16 text

DELETEจͷจ๏ DELETE FROM ${ςʔϒϧ໊} -> σʔλΛ࡟আ͢ΔςʔϒϧΛࢦఆ WHERE ${৚݅} -> ࡟আ͢Δσʔλͷ৚݅Λࢦఆ ※WHERE句を忘れると全データを削除してしまいます!危険!

Slide 17

Slide 17 text

࣮ߦ DBを確認して選択 テーブル一覧を確認 テーブル構造とデータの内容を確認 ※ここでWHERE句で引っかかるのが    意図したデータであるかも確認します クエリを組み立てて実行! ※スペースの関係で省いてますが、 実際にクエリを実行する際はトランザクションを忘れずに!

Slide 18

Slide 18 text

͜ΕͰSQL Meister ΁ͷಓ ~ߋ৽ฤ~ ͸मྃͰ͢ɻ ΋ͪΖΜόοΫΞοϓ͸ͯ͠·͕͢ɺσʔλ͸Ұ ౓มߋͯ͠͠·͏ͱר͖໭͢·Ͱʹ͕͔͔࣌ؒͬͯ ͠·͏ͷͰ৻ॏʹ࣮ߦ͠·͠ΐ͏ʂ