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
データベースで沼った話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
K1mu21
March 12, 2024
Programming
84
0
Share
データベースで沼った話
めぐろLT#8の資料です
K1mu21
March 12, 2024
More Decks by K1mu21
See All by K1mu21
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
61
dependabotを導入して失敗した話
k1mu21
0
160
Rust勉強会1回目の資料
k1mu21
0
80
ギャレトレ勉強会
k1mu21
0
81
リプレイスでやったこと
k1mu21
1
90
Cloudflareいいぞ
k1mu21
1
140
静的解析ツールを導入した話
k1mu21
1
240
WebGLを触ってみよう
k1mu21
1
63
GoのAirを使ってみた話
k1mu21
0
160
Other Decks in Programming
See All in Programming
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
7
1.3k
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
550
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
2
400
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
210
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
340
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
160
CSC307 Lecture 17
javiergs
PRO
0
310
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
130
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
670
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
700
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
210
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
A better future with KSS
kneath
240
18k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Designing Powerful Visuals for Engaging Learning
tmiket
1
390
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
550
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
Crafting Experiences
bethany
1
160
For a Future-Friendly Web
brad_frost
183
10k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
The SEO identity crisis: Don't let AI make you average
varn
0
480
We Have a Design System, Now What?
morganepeng
55
8.2k
Transcript
データベースで 沼った話
自己紹介
• 木村 宗吾(k1mu) • 所属 ◦ 株式会社ラクーンホールディングス技 術戦略部 • 領域
◦ バックエンド(+フロントエンド) • 言語 ◦ 業務 ▪ Java PHP ◦ 業務外 ▪ Go C(++) • X ◦ @detunote
なぜこの話をするのか • テーマが初めてのLTとの事で、せっかくなら1年目として印象に残ったことを話す と面白いのでは • DBを触る方は多いと思うので、知らなかったのであればこれからの知見として ほしい
DBに関して
皆さんDBは何を使った事があります?
今回の説明で使うDB
沼った問題
前提 (テーブル)
前提 (データ)
テーブルをUPDATE UPDATE users SET name = '木村' WHERE id =
3; ID3の名前を木村に変更するUPDATEを実行する
結果 ID3の名前が変わっている MySQL ORACLE
別のSQLエディター 等で確認 Oracleの方ではID3の Nameが変わっていない ORACLE MySQL
内容が反映されていな い...!?
最後にCommitした?
解決方法 UPDATE users SET name = '木村' WHERE id =
3; commit;
結果 別のエディターで見ても データが入っていて UPDATEもされている。
DBに反映された!
原因 • コミットしていなかったため、利用中のトランザクションでしかUPDATEが反映さ れていなかった。 • 正直MySQL = ORACLE のように考えていた。 ◦
MySQLなどにはAuto Commitがあり、標準ではONになっているので最後に自分で Commitを 明示的に宣言する必要がない。 ◦ OracleにもAuto Commitがあるが標準ではOFFになっている。
他にも • バージョンによってOracleにはオートインクリメントがない ◦ シーケンスを利用して連番を生成する必要がある。 • LimitがないのでRowNumを利用して行数を制限 • SELECT句にGROUP BY句にない列を含めることができるが、その列は集約関
数の中で使用される必要がある。 • Oracleでは空文字はNullと同等に扱える
仕様はちゃんと 調べてから使おう
宣伝 弊社のconnpassページ https://raccoon-holdings.connp ass.com