SQLとは?データベースと会話する言語の基本を解説

システム開発・テクノロジー
SQLとは?ざっくりと3行で
  • Structured Query Languageの略(読み:エスキューエル)。リレーショナルデータベースを操作するための標準言語で、データの検索・追加・更新・削除を記述する
  • SELECT(検索)・INSERT(追加)・UPDATE(更新)・DELETE(削除)の基本4命令を覚えるだけで実務の大半のDB操作をカバーできる
  • 1970年代に登場した古くからある言語だが、今もMySQLやPostgreSQLからBigQueryまで幅広くSQLが使われており、データを扱う職種なら必須の基礎知識だ

【深掘り】これだけ知ってればOK!

SQLの読み方は「エスキューエル」が標準だが、「シーケル」と読む人もいる。歴史的に「SEQUEL(Structured English Query Language)」という名称だったことの名残だ。どちらで読んでも通じるが、日本のIT業界ではエスキューエルが多数派だ。

SQLの基本4命令を整理しよう。SELECTはデータを検索して取り出す命令で最も頻繁に使う。WHERE句で条件を絞り、ORDER BYで並び替え、GROUP BYで集計する。INSERTは新しいデータを追加、UPDATEは既存データを変更、DELETEは削除する命令だ。

SQLにはDDL・DML・DCLという区分がある。DDL(データ定義言語)はテーブルを作成・変更・削除するCREATE・ALTER・DROP。DML(データ操作言語)はSELECT・INSERT・UPDATE・DELETE。DCL(データ制御言語)はGRANT・REVOKEでアクセス権を制御する。DMLが実務で最も頻繁に使う区分だ。

SQLのJOINは複数のテーブルを結合する命令で、理解できると一気にSQLの力が増す。INNER JOIN(両方にマッチするデータのみ)・LEFT JOIN(左テーブルの全データ+マッチ分)が最も使われる。「顧客テーブル」と「注文テーブル」をJOINして「誰が何を注文したか」を取得するのが典型的な使い方だ。

SQLのスキルはデータベースの種類を超えて使えるポータビリティが高い。MySQLで学んだSQLの基礎はPostgreSQL・Oracle・BigQueryでもほぼそのまま使える。細かい関数名や構文は異なるが、基礎的なSELECT文の構造は全DB共通だ。一つのDBでSQLを習得すれば他のDBへの対応もスムーズになる。

よくある誤解

SQLは難しいプログラミング言語という誤解

SQLは宣言的な言語で「何を取得したいか」を記述するだけでよい。ループや条件分岐を自分で書く必要がなく、SELECTの基礎構文は数時間で習得できる。プログラミング経験がなくても実務レベルのSQLは短期間で身につく。

SQLは古い技術という誤解

1970年代に登場したにもかかわらず、クラウドDWH(BigQuery・Snowflake)でもSQLが採用されている。データエンジニア・データアナリスト・バックエンドエンジニアにとって引き続き必須スキルとして価値は高まっている。

会話での使われ方

ITKAGYO運営者のアイコン画像

BigQueryのSELECTってMySQLとほぼ同じですね。GROUP BYとHAVINGもそのまま使えました。

データエンジニアがSQLの移植性の高さを同僚に伝えている場面。

ITKAGYO運営者のアイコン画像

WHERE句なしにDELETEを実行したら全件消えてしまいました。開発環境だったので実害はないですが…。

SQLミスの経験を共有してチームの注意を促している場面。

ITKAGYO運営者のアイコン画像

非エンジニアでも基本的なSQLを書けると、データ分析で毎回エンジニアに頼まなくて済むので覚えておいて損はないですよ。

SQLの学習を勧めるシーンで先輩が後輩にアドバイスしている場面。

SQLの歴史

SQLの歴史を振り返ると、半世紀以上現役であり続けてきた希少なコンピュータ技術だということが分かる。

出来事
1970年IBM研究員のコッドがリレーショナルデータベースの理論を論文発表。
1974年SEQUELという名称でIBMが最初の実装。後にSQLと改名。
1986年ANSIがSQLを標準化。多くのDBベンダーが準拠。
1992年SQL-92としてJOIN構文など大幅拡張。今も主流の構文体系が確立。
2003年以降SQL:2003でウィンドウ関数等が追加。BigQuery・Snowflakeなど現代のDWHでも採用が継続。
現在データエンジニア・アナリストの必須スキルとして需要は増大。NoSQLの普及後も地位は揺るがない。

【まとめ】3つのポイント

  • 「RDBMSを操作する標準言語で半世紀以上現役の汎用スキル」:MySQLからBigQueryまでDBの種類を超えてSQLの基礎は使える高い汎用性を持つ
  • SELECT・INSERT・UPDATE・DELETEの基本4命令から始める:この4命令を覚えるだけで実務の大半のDB操作はカバーできる
  • JOINをマスターするとSQLの表現力が一気に広がる:複数テーブルを結合することで実務で必要な複雑な集計・分析クエリが書けるようになる

よくある質問

Q
SQLはどう勉強すればいいですか?
A

SELECT・FROM・WHERE・GROUP BY・JOINの基本5構文をまず習得し、実際のDBに接続して手を動かすのが最短ルートです。SQLZoo・Progate・LeetCodeのSQLセクションなどで無料で練習できます。

Q
SQLとNoSQLどちらを学ぶべきですか?
A

まずSQLを学ぶことを推奨します。RDBMSは業務システムの主流であり、SQLの知識はDWHや分析業務でも使えます。NoSQLは特定の用途に特化した技術なので、基礎としてSQLを習得してから用途に応じて学ぶのが合理的です。

Q
BIツール(Tableau・Power BI)を使うのにSQLは必要ですか?
A

BIツール単体での分析ならSQL不要ですが、DBから直接データを取得・加工するにはSQLが必要です。SQLが書けるとBIツールでは対応できない複雑な集計もできるようになり、データ活用の幅が大きく広がります。

Q
SQLとプログラミング言語は何が違いますか?
A

プログラミング言語は手続き的に「どのように処理するか」を記述します。SQLは宣言的に「何を取得したいか」を記述します。ループや分岐を自分で書く必要がなく、DBエンジンが最適な処理方法を選択します。

この用語と一緒に知っておきたい用語

用語この記事との関連
データ本記事のテーマと実務上セットで使われることが多い用語です。コンピュータが処理する数値や文字、画像といった事実や資料そのもの、それがデータだ
BigQuery次のステップとしてBigQueryを学ぶと知識が広がります。Googleが提供するサーバーレス型のクラウドデータウェアハウス。ペタバイト規模のデータを標準SQLで分析でき、インフラの準備なしに即時利用できる
データベースデータベースは関連分野でよく登場する重要キーワードです。データを効率よく蓄積・検索・更新・削除できるよう構造化して管理する仕組みの総称。専用エンジンを持ち大量データを高速操作できる
アイコンアイコンを押さえると本記事の理解がさらに深まります。アプリやファイル、操作ボタンなどをひと目でわかる小さな絵で表したもの、それがアイコンだ
DML本記事のテーマと実務上セットで使われることが多い用語です。DMLっていうのは、データベースに入っているデータを読んだり、書いたり、変えたり、消したりするSQL命令群のことだよ。

【出典】参考URL

https://it-araiguma.com/database-types/ :SQLとRDBMSの関係
https://www.geekly.co.jp/column/cat-technology/1904_005/ :SQLとNoSQLの比較

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!