ー 今回はSQLという言語について聞きたいなと思っていて、例えばJavaを勉強してたのにまた言語が出てきたみたいな。なんだこのSQLっていうのはっていうのをお伺いできればなと思います。

Javaをやっていたら話が早くて、Javaはプログラミング言語じゃないですか。

SQLもプログラミング言語の一つです。ただJavaと違うのは、Javaはなんでもできるプログラミング言語なんですけど、SQLっていうのはデータベースの扱いに特化しているんですね。SQLを使って何か画面に表示するっていうようなことはできない。

ー データベースを扱うっていうのはどういう事ですか?

例えばなんですけど、自分がショッピングサイトを作っていたとして、在庫情報を10000件持っているっていうのを考えてみてください。

こういう場合にどこかのテキストファイルにデータを入れておいて、Javaで一文字ずつどうのこうのっていうのはとっても難しいんですね。これをデータベースに全部データを入れておいて、そこからSQLというプログラム言語でとってきて、それをJavaに渡すとか。

ー じゃあプログラミング言語とデータベースの橋渡しみたいなイメージですかね。

SQLを使ってデータベースを直接操作する事もできるんですけど、それだけじゃなくて今まさに言ったように、他のプログラム言語からSQLを使うっていう使い方のほうが一般的かもしれません。

なんでSQLをわざわざ使うのかっていう事なんですけど、これはデータベースの扱いに特化している分、ものすごく簡単に書けるんですよ。

Javaではif文とかfor文っていう物を使って、どうやってデータをとってくるのかっていうのを自分で考えなきゃいけない。

でもSQLっていうのはどこにあるテーブルからこの情報をとってきてくれって書けば、それだけでデータがとってこれるんですね。専門的な言い方になっちゃうんですけど、手続きを書く必要がない。

このようにデータを集めるって事を書かずに、欲しいデータはこれですっていうだけでデータをとってこれます。

ー じゃあだいぶ楽になるんですね。

だいぶ楽になりますね。実際僕もこれ聞いた話なんですけど、プログラマーじゃない人でもSQLを使ってデータベース操作をして、ビジネス上の必要な数字とるとか、分析するみたいな話もあるみたいです。

ー どういう時にそのSQLって使われてるんですか?

一番身近な例で言ったらショッピングサイトですね。Amazonとかイメージしてもらうと分かるんですけど、あれとんでもない在庫を抱えてますよね。

ってなった時にこれをデータベースの中に入れておく。それを取り出すためにSQLを書く。SQLを使って取り出したものを別のプログラムに渡す。それで最終的に画面表示する。こういう時に使いますね。

ー 例えばSQLが出来る事をシンプルにまとめるとどんな事ができるんですかね。

データを管理っていう事なんですけど、専門用語でCRUDって言っていて、Create。データを作る。Read、データを読み込む。Update、データを更新する。Delete、データを削除する。この4つがSQLで主に出来る事ですね。

ー じゃあ例えばそのショッピングサイトだったらユーザーがまず新規登録しましたっていう所で一旦SQLが書かれて、後程メールアドレスが変わったってなった時に、変更するとそれが更新になって。

もしユーザーがいなくなっちゃったら削除になったり。

追加と新規の登録の違いなんですけど、例えば今まではユーザーは普通のユーザーしかいなかった。しかしこの度特別なユーザーと普通なユーザーを区別したいから、ユーザー種別っていう物が欲しくなった。

ユーザー種別を管理する用のデータベース。テーブルっていうんですけどテーブルを新たに作りたい。こういう時に追加とは別にCreate。新規に作るっていう物になります。

ー じゃあWebアプリって言われてる物では必ず必要なんですね。

本当にシンプルな自分の所の商品が5個ぐらいしかなくて、それを画面に出してるだけっていったらいらないんですけど、そうじゃなくてある程度在庫を抱えていたりとか、情報がいっぱいあってってなったらそれは使ってると思ってください。

例えば僕達が普通に使ってるようなブログサービスとかでも、あれは内部では自分達の書いた記事とか、タイトルとかっていうものがデータベースに入っていて、それをSQLで読み込んで最終的には画面に出してるっていう事になりますね。

ー プログラミング学ぶ時には必ず学ぶような。

ほぼほぼ必須と言っていいですね。うちのキャンプのカリキュラムでも大体中盤にデータベース専用のカリキュラムがまずあって、そしてそれからSQLをJavaとかPHPとかRubyとか、そういう別のプログラム言語から操作するっていうのも勉強します。

ー なるほど、分かりました。ありがとうございます。

この記事に関するキーワード

この記事の内容について報告する