「データベースって聞いたことあるけど、SQLって何?」って思ったことない?プログラミングを勉強し始めると絶対に出てくるこの単語、なんとなく難しそうで避けてきた人も多いよね。でもこの記事を読めば、SQLが何者なのか、どんなときに使うのか、ちゃんとわかるようになるよ。
- SQLはデータベースに命令するための言語で、「Structured Query Language」の略だよ
- 検索・追加・更新・削除などデータの操作全般をシンプルな英語に近い文法でできるよ
- ネットショッピングやSNSなど身の回りのあらゆるサービスの裏側で活躍してるよ
もうちょっと詳しく
SQLが登場したのは1970年代で、IBMという会社の研究者が考えたものがもとになってるんだ。今ではMySQL・PostgreSQL・SQLiteなどいろんな種類のデータベースがあるけど、基本的なSQLの書き方はどれもほぼ同じ。つまり一度SQLを覚えると、いろんなデータベースでつぶしが利くってこと。しかも文法が「SELECT(選ぶ)・FROM(〜から)・WHERE(〜という条件で)」みたいに英語の文章に近いから、プログラミング未経験でも読んでいるうちになんとなく意味がわかってくるのが嬉しいポイントだよ。エンジニアだけでなく、マーケターやビジネスアナリストなど、データを扱う仕事をする人なら知っておくと絶対に役立つスキルなんだ。
SQLは英語っぽい文法だから、読めば意味がなんとなくわかる!
⚠️ よくある勘違い
→ 文法がシンプルで英語に近いため、プログラミング未経験でも比較的短期間で基礎を習得できる。マーケターやデータ分析担当者など非エンジニアも日常的に使っている。
→ 英語の文章に近い文法で書けるため、コードが苦手な人でも慣れれば読み書きできるようになる。データに関わる仕事をするなら、職種を問わず役立つスキルだよ。
[toc]
SQLって結局なんのためにあるの?
データが増えすぎた世界の救世主
たとえば、あなたがオンラインゲームをやってるとしよう。ユーザーのプロフィール、アイテムの所持数、プレイ履歴、課金情報…こんなデータが何百万人分もあったとしたら、どうやって管理する?メモ帳にまとめる?Excelで一覧にする?それじゃ絶対に追いつかないよね。
だからデータベースが必要なんだ。データベースとは、つまり「大量のデータを整理して保存しておくための仕組み」のこと。そしてそのデータベースに「○○のデータを取ってきて」「このデータを変更して」と命令する言葉がSQLなんだよ。
世の中のほとんどのWebサービスやアプリは、このデータベース+SQLの組み合わせで動いてる。SNSに投稿するとき、ネットで商品を検索するとき、銀行のATMで残高確認するとき…全部裏でSQLが走ってるんだよ。
リレーショナルデータベースとの関係
SQLが使われるのは主に「リレーショナルデータベース」という種類のデータベース。リレーショナルとは、つまり「表(テーブル)の形でデータを管理して、表どうしを関連づける」という意味だよ。Excelのシートが何枚もあって、それぞれが繋がってるイメージに近い。
代表的なものはMySQL・PostgreSQL・Oracle・SQLiteなどで、どれもSQLという共通言語で操作できる。だから「MySQLを使っているシステム」から「PostgreSQLを使っているシステム」に移っても、SQLの知識は無駄にならないんだ。
SQLの基本的な命令を知ろう
4つの基本操作「CRUD」
SQLで行う操作は大きく分けて4種類あって、英語の頭文字を取って「CRUD(クラッド)」と呼ばれてるよ。つまりCreate(作る)・Read(読む)・Update(更新する)・Delete(消す)の4つのこと。
- SELECT(読む):データを取り出す命令。一番よく使う。
- INSERT(作る):新しいデータを追加する命令。
- UPDATE(更新する):既にあるデータを書き換える命令。
- DELETE(消す):データを削除する命令。
これだけ知っておけば、基本的なことはだいたいできるよ。
一番よく使う「SELECT文」を見てみよう
SQLで最もよく書くのが「SELECT文」。たとえば「usersというテーブルから全員のデータを取り出したい」ときはこう書く:
SELECT * FROM users;
これを日本語に訳すと「usersから、全部のデータを選んでね」って感じ。英語そのままだよね。さらに「20歳以上の人だけほしい」なら:
SELECT * FROM users WHERE age >= 20;
「WHERE(〜という条件で)」をつけるだけ。英語の文章みたいに読めるでしょ?こういうわかりやすさがSQLの強みなんだよ。
「テーブル」って何?
SQLで操作するデータは「テーブル」という表の形で管理されてるよ。テーブルとは、つまりExcelのシートみたいなもの。縦に「行(レコード)」、横に「列(カラム)」が並んでいて、1行が1件のデータに対応してる。
たとえばユーザーテーブルなら、こんな感じ:
- id(番号)・name(名前)・age(年齢)・email(メールアドレス)という列がある
- 1行目:1・田中太郎・25・tanaka@example.com
- 2行目:2・鈴木花子・19・suzuki@example.com
このように整理されたデータをSQLで自由自在に操作できるんだよ。
SQLはどんな場面で使われてるの?
身の回りのサービスの裏側
「自分にはSQLは関係ない」と思ってるかもしれないけど、実は毎日SQLのお世話になってるんだよ。
- Amazonで商品を検索する:あなたのキーワードを受け取って、商品データベースからSQLで一致するものを探してる
- Twitterでツイートする:書いた内容をデータベースにSQLで保存してる
- 銀行で残高確認:あなたの口座情報をデータベースからSQLで引っ張り出してる
- Netflixでおすすめを表示:視聴履歴データをSQLで分析して、あなたに合いそうな作品を探してる
こうやって見ると、SQLがない世界ではインターネットのほとんどのサービスが動かないってことがわかるよね。
ビジネスでの活用場面
エンジニアじゃなくてもSQLを使う仕事はたくさんある。たとえば:
- マーケター:「先月の購入者のうち30代女性だけのデータを出して」という分析
- データアナリスト:売上データを集計して傾向を調べる
- 経営者・管理職:「今月のユーザー登録数を日ごとに集計して」というレポート作成
昔はエンジニアに頼まないとできなかったこういう作業が、SQLを覚えると自分でできるようになるんだよ。データを扱う仕事の効率が爆上がりするよ。
SQLを学ぶとどんないいことがある?
転職・就職でめちゃくちゃ強い
IT業界はもちろん、最近は非IT企業でもデータを扱える人材の需要がすごく高まってる。「SQLが書ける」というだけで、求人の選択肢がグッと広がるんだよ。実際、データアナリストやビジネスアナリストの求人では「SQL必須」「SQL歓迎」と書かれていることがとても多い。
プログラミングを全部マスターするのは大変だけど、SQLは文法がシンプルだから、1〜2ヶ月本気で勉強すれば実務で使えるレベルになれる人も多いんだ。コスパ抜群のスキルだよ。
自分でデータを分析できる楽しさ
たとえば個人でブログやネットショップをやってる人なら、「どのページが一番見られてる?」「どの商品が売れてる?」というデータを自分で引き出して分析できるようになる。今までなんとなく感覚でやってたことが、データで裏付けられるようになるんだよ。
「データドリブン」という言葉がある。つまりデータをもとに意思決定をするという考え方のこと。SQLを使えるようになると、このデータドリブンな考え方が自然と身につくから、仕事だけじゃなく日常生活の判断にも役立つよ。
他のプログラミングとの組み合わせが強い
SQLはPythonやRuby・PHPなどのプログラミング言語と組み合わせて使うことがほとんど。PythonでSQLを使えば、データ収集→データベース保存→分析→グラフ化という一連の作業を自動化できる。つまりSQLを覚えると、他のプログラミングスキルとの相乗効果が生まれるんだ。
最初はSQLだけ勉強して、慣れてきたらPythonと組み合わせてみる、というステップを踏む人も多いよ。
SQLを学ぶにはどうすればいい?
無料で始められる学習環境
SQLを学ぶのに、最初からお金をかける必要はないよ。無料で使える学習環境がたくさんあるんだ。
- SQLite:パソコンにインストールするだけで使える。ファイル1つがデータベースになる超お手軽なもの
- DB Fiddle・SQL Fiddle:ブラウザ上でそのままSQLを書いて試せるサービス
- Progate・ドットインストール:日本語で丁寧に教えてくれる学習サービス
「まず動かしてみる」が一番の近道だよ。頭で理解しようとするより、手を動かしてデータを取り出せたときの「動いた!」という体験が一番の学習になるんだ。
最初に覚えるべきコマンド5選
SQLを始めるなら、まずこの5つのキーワードを覚えるだけで十分だよ:
- SELECT:データを選んで取り出す
- FROM:どのテーブルから取り出すかを指定する
- WHERE:条件を指定して絞り込む
- ORDER BY:並べ替えの基準を決める
- LIMIT:取り出す件数を制限する
たとえばこれを組み合わせると:
SELECT name, age FROM users WHERE age >= 18 ORDER BY age DESC LIMIT 10;
「usersテーブルから、18歳以上の人の名前と年齢を、年齢が高い順に10件だけ取り出して」という命令になる。最初はこれだけで全然OK。実際に手を動かしながら少しずつ覚えていこう。
学習を続けるコツ
SQLの勉強で挫折しやすいのは「覚えることがたくさんある」と思い込んでしまうとき。でも実際には、基本の命令文を10個ぐらい覚えれば、日常的な分析はほとんどできるようになるよ。
おすすめは「自分が気になるデータで練習する」こと。野球が好きなら選手の成績データ、音楽が好きならSpotifyの公開データセットをダウンロードして、「この選手の打率は?」「再生数が多い曲は?」みたいな問いを自分で立てて解くようにすると、勉強が楽しくなるよ。目的があると続くんだよね。
