SQL(エスキューエル)とは?データベース操作の基本と使われ続ける理由を徹底解説!
生徒
「SQLってよく聞くんですけど、そもそも何をするものなんですか?」
先生
「SQLは、データベースに保存されているデータを、取り出したり、追加したり、変更したりするための言葉です。名簿や表を操作するための命令だと思ってください。」
生徒
「パソコンが苦手でも理解できますか?」
先生
「大丈夫です。表を見るところから順番に説明するので、紙の名簿を扱う感覚で理解できます。」
生徒
「なぜ、昔からずっとSQLが使われているんですか?もっと新しい方法はないんですか?」
先生
「それはSQLが『世界共通の標準ルール』として完成されているからです。一度覚えると、銀行のシステムからスマホのアプリまで、どこでも使える一生モノの知識になるんですよ。」
1. SQLとは何か?
SQL(エスキューエル)は、データベースと呼ばれる「大量のデータを整理して保存する箱」に対して指示を出すための言語です。例えば、会員名簿の中から特定の人を探したり、新しい人を追加したり、古い情報を書き換えたりするときに使います。
プログラミング言語と聞くと難しく感じるかもしれませんが、SQLは「英語に近い命令文」です。例えば、「選べ(SELECT)」「どこから(FROM)」「条件は(WHERE)」といった単語を組み合わせるだけで、コンピュータに命令を出すことができます。
私たちが普段使っているショッピングサイトやSNSの裏側では、膨大な数のデータがこのSQLによって管理されています。あなたが自分のプロフィールを更新したり、商品を検索したりするたびに、裏側でSQLが動いてデータベースとやり取りをしているのです。
2. なぜSQLは多くのシステムで使われ続けるのか?
技術の進化が早いIT業界において、SQLは数十年前から現代にいたるまで、主役の座を譲っていません。それには明確な理由があります。
汎用性の高さ:どんな分野でも活躍できる
SQLが使われる「リレーショナルデータベース(RDB)」は、データを「表形式」で管理します。この「表」という形式が、非常に汎用性が高いのです。銀行の口座残高、ネットショップの在庫管理、学校の成績表など、世の中にあるほとんどの情報は、縦と横の「表」で表現できます。このため、SQLはどんな業界のシステムにも柔軟に対応できるのです。
標準化の強み:世界共通のルール
SQLは「国際標準規格」として定められています。つまり、方言がほとんどない「標準語」のようなものです。データベースにはいくつかの製品(MySQL、PostgreSQL、Oracle、SQL Serverなど)がありますが、そのどれに対しても、SQLという共通の言葉で命令を送ることができます。
もし製品ごとに全く違う言葉を使わなければならなかったら、エンジニアは製品が変わるたびに一から勉強し直さなければなりません。しかし、SQLという共通ルールがあるおかげで、一度身につけたスキルを一生使い続けることができるのです。この「一度覚えたらどこでも使える」という安心感が、SQLが選ばれ続ける最大の理由です。
3. SQLの基本文法:データを取り出す(SELECT)
それでは、具体的にSQLがどのようなものか見ていきましょう。まずは「データを探して取り出す」という最も基本的な操作です。これを「SELECT(セレクト)」文と呼びます。
ここでは、あるお店の「顧客リスト(users)」という表から、20歳未満の人だけを探し出す操作を考えてみます。
実行前のテーブル:users
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 田中愛 | 18 | ai@example.com
5 | 伊藤健二 | 45 | ken@example.com
6 | 渡辺直美 | 22 | naomi@example.com
この表から「20歳未満の人」を取得するSQLは以下のようになります。
SELECT *
FROM users
WHERE age < 20;
「SELECT *」は「すべての列を表示して」という意味で、「FROM users」は「usersという表から探して」という意味です。最後の「WHERE age < 20」が条件で、「20歳より小さい(未満)の人」を指定しています。
実行結果
id | name | age | email
---+------------+-----+-------------------
2 | 佐藤花子 | 19 | hanako@example.com
4 | 田中愛 | 18 | ai@example.com
4. SQLの基本文法:データを追加する(INSERT)
次に、新しいデータをデータベースに登録する方法です。これを「INSERT(インサート)」文と呼びます。お店に新しいお客さんが来たときに、名簿の最後に名前を書き加えるイメージです。
ここでは、新しく「高橋次郎さん(21歳)」を登録してみましょう。
実行前のテーブル:users
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
INSERT INTO users (id, name, age, email)
VALUES (4, '高橋次郎', 21, 'jiro@example.com');
「INSERT INTO users」で「usersという表に新しく入れるよ」と伝え、その後ろに項目名と、実際に入れる値を書いています。
実行後のテーブル:users
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 21 | jiro@example.com
5. SQLの基本文法:データを更新する(UPDATE)
最後に、すでにある情報を書き換える方法を説明します。これを「UPDATE(アップデート)」文と呼びます。例えば、登録していた人のメールアドレスが変わった場合や、誕生日が来て年齢が増えた場合に使います。
ここでは、ID番号1番の「山田太郎さん」の年齢を「25歳から26歳」に変更してみます。
実行前のテーブル:users
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 田中愛 | 18 | ai@example.com
UPDATE users
SET age = 26
WHERE id = 1;
「UPDATE users」で表を指定し、「SET age = 26」で「年齢を26にする」と指示します。ここで非常に重要なのが「WHERE id = 1」という条件です。もしこの条件を書き忘れると、データベースの中にいる全員の年齢が26歳になってしまうので、注意が必要です。
実行後のテーブル:users
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 26 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 田中愛 | 18 | ai@example.com
6. データベースの「型」と「主キー」について
SQLを学ぶ上で避けて通れないのが、「データ型」と「主キー(プライマリキー)」という考え方です。これらは、データがぐちゃぐちゃにならないように整理整頓するための大切なルールです。
データ型とは?
パソコンは、数字と文字を区別して管理しています。例えば、年齢を入れる箱には「数字(数値型)」しか入れてはいけない、名前を入れる箱には「文字(文字列型)」を入れる、といった具合です。これを指定するのが「データ型」です。もし数字しか入らないはずの場所に文字を入れようとすると、データベースが「それはおかしいよ!」と教えてくれます。
主キー(プライマリキー)とは?
先ほどの表に出てきた「id」という項目がこれにあたります。世界には同姓同名の人がたくさんいますが、データベースの中では一人ひとりを確実に区別しなければなりません。そのため、「絶対に重複しない(一人ひとつだけの)番号」を割り振ります。これが「主キー」です。この番号があるおかげで、間違えて別人のデータを消してしまったり、上書きしてしまったりすることを防いでいます。
7. まとめではないけれど:SQLを学ぶメリット
SQLは、プログラマーだけのものではありません。最近では、営業職や企画職の人も、会社のデータを自分で分析するためにSQLを学ぶケースが増えています。Excel(エクセル)では扱いきれないような何十万、何百万という大量のデータも、SQLなら一瞬で計算したり、必要な部分だけ抜き出したりできるからです。
また、SQLの考え方は非常に論理的です。「どの箱から、どんな条件で、何を持ってくるか」を整理して考える癖がつくため、日常生活や仕事における問題解決能力も高まります。何より、多くのITシステムがSQLで動いている以上、その仕組みを知っていることは、デジタル社会を生き抜くための強力な武器になります。
最初は「SELECT」から。それだけで、あなたは世界中の膨大なデータにアクセスするための第一歩を踏み出したことになります。少しずつ慣れていけば、複雑な情報のパズルを解くような楽しさが待っていますよ。