#1 SQLってなんぞや
2026-10-20 17:05

#1 SQLってなんぞや

ITエンジニアの雑談駆動開発部は、同い年の若手エンジニア2人が、技術やキャリアについて等身大で語り合う番組です。仕様書なし、テストなし、雑談だけで駆動していきます。

番組への感想・質問・お便り募集中!

⁠zddengineering@gmail.com⁠


「こんなテーマを話してほしい」「エピソードの感想」「キャリアの悩み」など、なんでもお気軽にどうぞ。

お便りにはラジオネームを添えて送ってください。番組内で読ませていただくことがあります!


Xアカウント

カノウ

⁠ヒロキ


BGM:https://youtu.be/MXyspoCaQls




感想

まだ感想はありません。最初の1件を書きましょう!

00:12
はい、ITエンジニアの雑談駆動開発部、始まりました。
はい、始まりました。
この番組なんですけど、同い年の若手エンジニア2人が、技術のこと、キャリアのこと、等身大のまま語っていく番組です。
成長中の2人が、笑うことをリアルタイムでお届けいたします。
そして、使用書なし、テストなし、雑談だけで駆動していきます。
ITエンジニアの雑談駆動開発部、始まります。
イエーイ!
はい。
で、今回。
始まりましたね。
始まりましたね。
で、1回目ということで、まずね、すごい基本的な、みんな親しみのあることから入ろうと思って。
はい。
今回話す内容なんですけど、SQLについて。
SQL。
SQLについてね、今回話をしていこうと思います。
SQL、セレクトですか?
そうです。そういうやつですね。セレクトとかウェアとかアップデートのやつです。
はい。
まず最初になんですけど、そもそもSQLって何なの?っていうところからお話できたらと思うんですけど、
簡単に言うと、データを取得したり、登録したり、更新したりするための言語で。
そうですね。
正式名称はクエリ言語って呼ばれてるらしいです。
クエリ言語。
はい。で、そのクエリ言語と呼ばれる種類の言語の中でも特に有名なやつがSQLっていうらしいですね。
あ、SQLっていろんな種類があるんですか?
なんかあれですね、クエリ言語の中に、クエリ言語ってカテゴリーの中にSQLってやつがいるらしい。
そうなの?
例えばなんですけど、プログラミング言語っていう大きい括りの中に、JavaとかPythonとかGoとかいろんな言語がありますよね。
プログラミング言語って大きなカテゴリーの中に。
そのイメージで、データに問い合わせたり操作したりするための言語の1つ、クエリ言語っていうカテゴリーの1つでSQLっていうのがあるらしいです。
なるほど。
なんとなく風に落ちますね。
完全に理解しました。
ありがとうございます。
ちなみになんですけど、じゃあSQL以外にクエリ言語ってあるのって思いませんか?
そう、それさっき思ったんですよ。
自分もそれを思ってちょっと調べてみたんですけど、有名なやつでもしかしたらちょっと聞いたことあるかもって思ったのが、メタ社、Facebookです。
それがFacebookのデータの取得方法を効率化するために開発したグラフQLっていうのが。
03:06
聞いたことあるかも。
それもクエリ言語の一種らしいっていうのをちょっと調べて出てきましたね。
気になる人はぜひグラフQLの方も調べてもらえたらなって思います。
調べます。
ありがとうございます。
自分もちょっと勉強してみますね。
ありがとうございます。
今回自分がちょっと勉強というか調べてみたことで、そもそもSQLとプログラムって何が違うの?っていうところで。
SQLとプログラムの違い。
そうそうそう。
さっきはSQLはデータを取ってくる、にアクセスしたり、データをいじるみたいなイメージ。
そうそうそう、そうっすね。
データいじるみたいな。
プログラミングはそれ以外。
データとそれ以外みたいな感じなのかなって思ってて。
自分もSQLと普通のプログラムって何が違うんだろうって思ったときに、
当時こういうこと調べるまで自分は、中野さんと同じようにSQLはデータを扱うやつ。
で、プログラムっていうのはロジックを書くやつ。
それが言いたかった、あんたは。
いや、自分はそのくらいの解像度で。
ロジックを書くやつ。
みたいな隅分けじゃないけど、かなりざっくりそういうもんだろうなって覚えてたんですけど。
でもね、結局実際にプログラミングとかSQLを書いて開発をしていくと、
いや、バックエンドのプログラムだってめちゃくちゃデータ扱うよなみたいな。
しかもSQLも書いてみると、意外と条件分岐っぽいものとか、
こうしたらこうみたいなのって出てくるな。
結構ロジックって言えそうなものあるよなみたいな疑問が自分は出てきたんですよね。
ウェア文とかそういうことですか?条件か?
そうですね。
ウェンみたいな。
こういう時はこうとか。
それとかロジックって言えるものって意外とSQLの中にも業務しててだいぶあるなって思ったんですよ。
なので、今回はSQLとプログラムは実際どういう役割分担をしているのかっていうところを、
そこを改めて深掘っていこうと思っています。
ありがとうございます。
自分も調べてめっちゃよかったなと思って楽しみにしていてください。
はい。
今回例として、ECサイト、お買い物するサイトですね、通販とかの検索機能を例に出して考えてみようと思うんですけど、
06:01
例えば、自分とかお買い物するときにネットでですね、検索欄にスニーカ欲しいなみたいな。
スニーカって入力するじゃないですか。スニーカ買おうと思って。
さらに今回ちょっと予算は5000円以下ぐらいで、
価格もなるだけデザインよりも安い方がいいなって思ったら、検索欄にスニーカ5000円以下価格が安い順みたいな検索をすると思うんですよ。
はい。
この時SQLが担当するのは、どんなデータをデータベースから検索結果として取得するかですっていうことで、
ちょっと言葉だけじゃ分かりづらいと思うので、具体的に説明すると、
データベースっていう中にいろんな商品のデータが入ってるじゃないですか。
はい。
で、入ってるものを取ってこなきゃいけないから、データベースさんにちょっとこういうの欲しいんでお願いしますみたいな依頼をしなきゃいけないじゃないですか。
で、その依頼書のことをSQLなの。
依頼書のことやろ。確かに分かりやすいかも。
なんか自分が腑に落ちたのはそういうことなのかなと思いました。
なので今回だったら繰り返しになっちゃうんですけど、スニーカー5000円以下、価格安い順でそのデータだけくださいみたいな依頼書を出してるイメージですね。
なんか倉庫みたいだと分かりやすいよね。
データベースが倉庫だとして、倉庫の人にこの本社の人が行って、手札買われて行って、じゃあこれくださいで渡す作業ってことですよね。
あ、ですですです。
これ合ってんのかな?
そうなの?
でもそうだと思う。
倉庫みたいなものがあって、そこに実際に。
伝票か伝票。
そうそう。欲しい人がこういうのくださいみたいに出す。
その依頼文のことをSQLって思ってもらうと分かりやすいかなって。
依頼書伝票イコールSQLだ。
まあざっくりのそう。
そうかも。
そんな感じで覚えるとなんか結構進みやすくして。
イメージできたかもしれない。
イメージしやすいかなって思って。
で、当時多分システムとか開発してないときにこれを伝えられたら、多分自分は検索機能ってそれができたら完成じゃないって思ったんですよ。
はいはい、それができたら完成。
なんていうんだろうな。検索って機能ってざっくりとらえると条件に合うデータが取得できたらそれで検索機能完成じゃないみたいな。
完成でしょ。
それ以外何もしてなくないみたいな思うで。
で、自分もそう思ってて。
でも今回調べてみて実際には。
違うんですか。
違うんです。
検索機能を作るためにSQL以外にもいろんな処理が必要っていうのをちゃんと深掘っていったらいろいろ出てきて。
09:08
例えば今データ取ってきてください。はい、あげるだけあるじゃないですか。SQLだけどって。
それ以外検索機能って考えると、例えばなんですけど検索欄に入力された情報に問題がないかチェックする処理いるような。
例えばなんですけど、今だとスニーカーの4文字くらいなんですけど、例えば変な人が1億文字とか入れれたら問題ないですよ。
なるほど。
じゃああれですね、倉庫の人が使用書渡されたときにチェックしてるってことですか。
みたいな感じです。
あれこれ、これダメだよ。
何て書いてあるのかスニーカーこれ手書きじゃんみたいな。
そうそう。
読めないんだけど。
チェックしてるみたいな感じ。
分かりやすいやつだと、金額5000円以下って入れるところにIEOとか入れられたらまずいんですよ。
値段見て、スニーカー1、金額あ、みたいな。
そう、だったらこれ何ですかってなって突き返されるじゃないですか。
なるほど。
突き返す処理がいるなみたいな。
確かに。
まず1個ですね。
こういった入力チェック必要だと思うんですけど、次にユーザーが入力した検索条件を受け取って、その値をSQLの検索条件として使えるようにする必要があるってことで、ちょっとややこしいですね。
ちょっと具体例で言うと分かりやすいかなと思うんですけど、入力条件って毎回変わるじゃないですか。
今だとスニーカーだけど、カバンが欲しいときはカバンになるし、本が欲しいときは本になるじゃないですか。
だからそのスニーカーが送られてきたときはSQLっていう書かれている依頼書の中にスニーカーっていうのを埋め込まなきゃいけない。
し、カバンが欲しいときはカバンっていう依頼が来たときはカバンっていうのを埋め込まなきゃいけない。
なるほど。
なので毎回同じ依頼が来るわけじゃないから、そのテンプレはあるけど、テンプレじゃない部分は動的に入れていかなきゃいけない。
その入力された文字を紐付けて、入力されたカバンって入る。
スニーカーっていう依頼が来たらスニーカーっていうのをそのテンプレートにはめ込むみたいな処理が必要だと思うんですよ。
自分はそういうのもいるなーって思いましたね。
あともう一個思ったのが、SQL書いただけじゃ、依頼書書いただけじゃ何も起きないと思うんですよ。
間違いない。
依頼書あるわけだから。
間違いない。
依頼書なので、そのSQLをデータベースに渡して実際に実行してもらう必要がある。
本当ですよ。
使用書書いても持っていかなかったらね、倉庫に。
12:00
そうそうそう。
書けましたって紙でここにあるだけだったら意味ないじゃないか。
みたいな感じで、さっきの例えで言うと、依頼書作っただけじゃ何も起きなくて、
ちゃんと倉庫担当に渡さなきゃいけないんですよ。
間違いない。
なのでその渡すっていう処理をしなきゃいけないみたいな。
そういうこともいるなと思いましたね。
意外とSQLっていう依頼書だけじゃ検索機能って成り立ってないなっていうのがここで分かって。
ここまで考えるとプログラム側の役割見えてきたなって思って。
プログラム側が担当するのはこの機能はどんな動きをするのかを定義すること。
例えば検索機能だったらまずユーザーから検索キーワードを受け取る。
入力された値に問題がないかを確認する。
問題がなかったらその条件をSQLに渡す。
SQLをデータベースに実行してもらう。
そういうことだ。
データは、プログラミング言語の方は小売店のことですか?
自分が分かってないかもしれない。
データベースの人は倉庫の人で。
小売店の人。
そうかも。
そうですね。
実際に手を動かしてくれる人って思うと分かりやすいかもしれないですね。
こういった、今自分が実装している機能って
こういうことをして、こういうことをして、こういう順番で動きますよねっていう
機能全体の処理の流れを作るのがプログラム側の仕事です。
なるほど。
ここでSQLの話をしたら全部繋がると思うんですけど
今回の検索機能で考えると
プログラム側は検索機能全体の動きを定義する役割です。
その中でSQLはこの条件に合うデータをくださいというように
必要なデータに対してこんな操作をしてくださいって
データベースに依頼する部分、依頼書の部分を担当しています。
なので、機能全体をどう動かすかはプログラムが決めます。
その機能の中で必要になるデータに対する操作を
データベースに依頼するのがSQLという役割もあるんですね。
ちょっと改めてになるんですけど
やっぱりデータベースに渡す依頼書というイメージが
一番しっくりくるなと思ってますね。
分かりやすい。
ありがとうございます。
自分もこれは合ってるんじゃないかなって。
データベースに渡す使用書って言われたら。
15:01
言うとすごいSQLのイメージが
これをおまじないみたいに唱えてもらうと
実装もしやすくなると思います。
プログラムとSQLはどういう役割分担してるのか
みたいなことを話したんですけど
次回はもう少し具体的に
もっと続きがあるんですね。
そうです。今回は触りです。
いきなりシリーズモノ
そもそも本当は
セレクトとかアップデートとか
ウェアとか色々あると思うんで
その説明を一回バーッとしようかなと
最初考えたんですけど
そもそもなところが分かってない
その文法の説明しても分かんないなってことに
最終的にたどり着いた。
ありがたいです。
まずSQLってこういうもんだよなって
概念的な部分を説明させてもらったんですけど
次回はもう少し具体的に
今ちょっと話になるような
データ試作した時どうやって書くのか
登録した時どういうSQLの文法を書けばいいのか
実際のSQL文を出しながら
説明していこうと思います。
よろしくお願いします。
はい。楽しみだな。
うれしい。
聞けたらいいなと思いますので
よろしくお願いします。
ありがとうございました。
第1回ありがとうございます。
ありがとうございました。
17:05

コメント

スクロール