ITやプログラミングの勉強を始めるとSQLなんて単語が出てきます。
SQL??何か難しそうだな…
なんて最初は思うかもしれませんが、基本をしっかり押さえればそこまで難しいものではありません!
今回は「SQLって何だ?」という方や「SQLの超基本を勉強したい」という初心者の方に向けて解説していきます!
特に、SQLを使う上で欠かせない4つの命令文について学習していきましょう。
そもそもSQLって何だ?
SQL=データベースを操作できるコンピュータ言語
そもそもSQLとは何でしょうか?ITやコンピュータの単語でしょうか?
実はSQLはコンピュータ言語の1種です。正確には異なりますが、JavaやPythonなどのプログラミング言語と同じようなものですね。
コンピュータ言語はコンピュータとやり取りするために使う言語ですが、SQLはデータベース操作専用の言語だと考えて下さい!
もちろんSQLを使わずに人の手でデータベースを直接操作することは可能ですが、システム上ではSQLを使うのが一般的なんですね。
データベースって何だろうという方は以下のページを参考にしてみて下さい。
☞データベース記事
SQLの超基本ルール
当然ですがデータベースを操作するにはデータベースが無いと実行できませんよね。
今回は以下のような例を使って考えていきましょう!
これは「テスト結果」と言う名前のテーブルで、「出席番号、名前、国語の点数、数学の点数」という4つの列(項目)があります。
最初は上のような4人分のデータが登録されているものとして、SQLを実行した場合にどんな結果になるのかを見てみましょう。
「いやそもそもデータベースの作り方が知りたい」という場合にはCREATEという命令を使う必要がありますが、これはまた別の機会に。
SQLの4大命令とは
SQLは4大命令と言われる文法を使うだけで、基本的なことはできるようになります。その4大命令は以下のものです。
- SELECT – 検索
- UPDATE – 更新
- DELETE – 削除
- INSERT – 追加
順番に見ていきましょう。
SELECT – 検索
SELECT 列名 FROM テーブル名 (WEHRE …)
SELECTはテーブルに登録されているデータを検索する命令です。例えば、テスト結果のテーブルを例にすると
SELECT * FROM テスト結果
という結果が帰ってきます。ここで「*」は「全ての列」という意味があり、テーブルに登録されている全部の列の結果を見たいときに使えます。
では全ての列ではなく、「出席番号と国語の点数だけを見たい」という場合はどうなるでしょうか。実行するコマンドは以下です。
SELECT 出席番号, 国語の点数 FROM テスト結果
このような形で、取り出したい列だけを指定することができるんですね。
WHEREは条件を指定!
さて、SQLでは条件を指定したいときに「WHERE」という文法を使うことができます。WHEREの後ろに条件を書くことで指定できます。上の例で見ていきましょう。
出席番号と国語の点数を検索してきましたが、国語の点数が80点以上だった人の情報だけを知りたい場合には以下のようなコマンドを打ってあげます。
SELECT 出席番号, 国語の点数 FROM テスト結果 WHERE 国語の点数 >= 80
WHEREは知りたい情報に条件を付ける必須の知識なので覚えておきましょう!
UPDATE – 更新
UPDATE テーブル名 SET 列名1 = 値, 列名2 = 値, … (WHERE…)
UPDATEは既にデータベースに登録されているデータを更新する命令です。例えば今までのテーブルで、佐藤さんの数学の点数が本当は70点だったとします。このテーブルを修正したいときには以下のコマンドを打ちます。
UPDATE 数学の点数 FROM テスト結果 WHERE 出席番号 = 002
さて、ここでもWHEREを使いましたが、WHEREを使わなかった場合にテーブルがどうなるか想像つくでしょうか。
条件を全く指定しないということなので、今回の場合は全員の数学の点数が70点になってしまいます。全員の点数を同じにすることってあまり無いですよね。UPDATE文は基本的にWHEREと一緒に使うものだと思っておきましょう。
UPDATE 数学の点数 FROM テスト結果
DELETE – 削除
DELETE FROM テーブル名 (WHERE …)
DELETEはデータベースに登録されているデータを削除する命令です。WHEREの後ろに条件を加えることもできますし、「DELETE FROM テーブル名」だけならテーブルごと削除を行います。
例を見てみましょう。
DELETE FROM テスト結果 WHERE 名前 = 佐藤
こんな感じで、名前が佐藤の行が削除できましたね。
でも「名前=佐藤」で削除はホントに大丈夫?
上のやり方では「WHERE 名前 = 佐藤」で条件を指定しましたね。けれど、本当にこのやり方でいいのでしょうか。
今回のテーブルでは佐藤さんが1人しかいなかったので特に困ることはありませんが、もし同じ「佐藤」の苗字の人が2人、3人といたらどうでしょう。1人分の結果を削除したかったとしても、全員分の結果を削除してしまうことになります。
そのため、WHEREの後ろには「他の行とは重複しない項目 (=一意の項目)」を指定してあげることが多いです。今回は「出席番号」が一意の項目となるわけです。佐藤さんが何人いても、それぞれのに別の出席番号が与えられるので区別できますよね。
これを「主キー」と呼んだりするので、覚えておくようにしましょう。
INSERT – 追加
INSERT INTO テーブル名 (列名1, 列名2, …) VAULES (値1, 値2, …)
INSERTはデータベースにデータを追加する命令です。今までの命令とは違ってWHEREは使えません。
では、テスト結果の表に坂本さんの結果を加えてみましょう。
INSERT INTO テスト結果 (出席番号, 名前, 国語の点数, 数学の点数) VALUES (005, '坂本', 60, 90)
列名(…)の順番にVALUE(…)の値を追加していくことになります。
他にも、もし坂本さんが国語のテストを受けていないので何も記録しないという場合には以下のようにコマンドを打つこともできます。
INSERT INTO テスト結果 (出席番号, 名前, 数学の点数) VALUES (005, '坂本', 90)
コメント