SQLはデーターベース言語の1つです。SQLはデータベースの基本になりますので、これを1つ覚えることで他のデータベースにも活用することができます。
本記事ではそんなデータベースの基本から特徴や具体的活用の仕方について解説していきます。
SQLとは?

SQL(Structured Query Language)とは、データベースを操作するための言語で、データベースにデータを登録したり検索したりする必要のあるアプリ開発には必ず必要になってきます。
皆さんが利用しているオンライン上のサービスの多くには、型の異なるデータが集められたデータベースに保存されています。データベースに格納されているデータは、RDMS(Relational Database Management System)を利用して、管理されます。
データベース内のデータを操作する代表的なSQLとして、MySQL、PostgreSQL、Oracle、そして、SQLiteが挙げられます。
SQLでできること
- データベースやテーブルの作成・変更・削除
データベースはデータベースの中に複数のテーブルがあり、そのテーブルの中にさらに複数のレコードがあるようにイメージしてください。 - データの取得・登録・更新・削除・検索
テーブルの作成後は基本的にデータ操作になります。
SQLとNoSQLの違い
昨今では、NoSQLという単語を耳にする機会も増えてきています。名前が似ているので、SQLとNoSQLは、同じものと考えている人もいるかもしれません。しかし、ドキュメントタイプのMongoDBなどといったNoSQLとSQLは、異なります。SQLは、構造化されたリレーショナルデータベース、一方で、NoSQLは、ノンリレーショナルデータベースと言われる構造化されていないデータベース管理システムだからです。
SQLとNoSQLは、別物であると留意しておきましょう。
データベース言語とプログラミング言語

SQLは、データを操作できるデータベース言語です。データベース言語は、JavaやPHP、Pythonなどといったプログラミング言語とは異なります。
プログラミング言語は、コンピュータを動かすための言語です。繰り返し、分岐といったシンプルな命令から繰り返しや分岐等を組み合わせた複雑な処理を命令できます。
一方で、データベース言語は、データベース内の操作を命令する言語です。データベース言語は、1970年代に開発され、開発者だけでなく、データベースの管理者やデータアナリストが使う言語で、世界標準の言語となります。
SQLの種類

SQLの種類は、3種類に分けられます。
DML(データ操作言語)
データを操作する言語は、DML(Data Multiple Language)と言われ、日本語では、データ操作言語と言われています。
SQLの操作には、検索、追加、更新、削除と、一般的なWEBアプリケーションの機能として、備わっているCRUD(Create/Read/Update/Delete)に対応しています。
代表的な命令文には、以下の4つがあります。
・SELECT(データを検索する)
・INSERT(データを追加する)
・UPDATE(データを更新する)
・DELETE(データを削除する)
エンジニアとして、働く時にも、SQLを使う機会もよくあります。その時に、DMLは、最も使用する頻度が高いので、覚えておきましょう。
DDL(データ定義言語)
データを定義する言語は、DDL(Data Definition Language)で、データ定義言語とも言われています。
SQLには、データベースのテーブルを作成、設定変更、そして、削除などがあります。DDLは、これら命令に対応しています。
定義の命令文には、以下の4つがあります。
・CREATE(データベースやテーブルの作成)
・ALTER(データベースやテーブルの設定変更)
・DROP(データベースやテーブルの削除)
通常の開発エンジニアの業務では、あまり使うことはありません。しかし、データベースを管理する業務に携わるエンジニアにとっては、必須です。データベースエンジニア志望の方は、覚えておきましょう。
DCL(データ制御言語)
データを操作と定義するだけでなく、制御する必要があります。データを制御する言語は、DCL(Data Control Language)で、データ制御言語と言われています。
操作と定義を誰もが利用できるとなると、誰でもデータを変更することができます。そこで、DCLは、制御するためのSQL命令文となります。
制御で利用できる命令文には、主に以下の2つがあります。
・GRANT(権限付与)
・REVOKE(権限剥奪)
開発エンジニアでは、使うことがありませんが、データベースを管理する業務に携わりたいエンジニアは、必須の命令文です。テーブル単位、ユーザー単位で、DMLやDDLの利用を制限できます。
SQLの具体例

SQLの使い方について、ご紹介します。
エンジニア業務でよく利用するSQLであるDMLの中から、検索の命令文(SELECT)の使い方について、以下のデータベースの一例を用いて、使い方をご紹介します。
例)Book
id | ISBN | title | Price |
1 | 4295005096 | スッキリわかるSQL入門 第2版 | 3,080 |
2 | 4798144452 | SQL 第2版 ゼロからはじめるデータベース操作 | 2,068 |
3 | 4798128023 | プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに | 5,060 |
4 | 4774173010 | SQL実践入門─高速でわかりやすいクエリの書き方 | 2,838 |
5 | 4839961263 | ビッグデータ分析・活用のためのSQLレシピ | 4,180 |
Bookテーブル内に格納されているデータは、id、本のタイトル、ISBN番号、価格のデータとなります。
基本的なSELECTの構文は、以下の通りです。
SELECT 列名1,列名2,列名3(どの列を検索・表示させるか)
FROM 表名(どの表から検索するか)
WHERE 抽出条件
抽出条件は、自由に設定することができます。
まず最初に、データベース上にある全てのデータを検索します。
以下のSQLの命令文を使って、実行します。
SELECT * FROM Book
id | ISBN | title | Price |
1 | 4295005096 | スッキリわかるSQL入門 第2版 | 3,080 |
2 | 4798144452 | SQL 第2版 ゼロからはじめるデータベース操作 | 2,068 |
3 | 4798128023 | プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに | 5,060 |
4 | 4774173010 | SQL実践入門─高速でわかりやすいクエリの書き方 | 2,838 |
5 | 4839961263 | ビッグデータ分析・活用のためのSQLレシピ | 4,180 |
特定のデータが存在するか検索することもできます。次に、3,000円以上の本を対象に情報をSQLを用いて、検索します。
SELECT * FROM Book WHERE price =>3,000
id | ISBN | title | Price |
1 | 4295005096 | スッキリわかるSQL入門 第2版 | 3,080 |
3 | 4798128023 | プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに | 5,060 |
5 | 4839961263 | ビッグデータ分析・活用のためのSQLレシピ | 4,180 |
以上のように、抽出条件を変更すると、簡単に必要なデータを検索することができます。SQLをマスターするコツは、実際に書いてみることです。書籍やインターネット上の記事を読むだけでなく、実際にSQLを書いてみることをおすすめします。
おすすめのサイト
さらにSQLを勉強したいという人へ、無料で手軽に勉強できるオンラインサイトを2つご紹介します。
オンライン上にて、SQLを日本語で学習できるサービスです。SQLの基本を無料で学習できます。ITパスポートや基本情報技術者試験を受験しようと考えている人は、試験対策としても使えます。
SQLについて、基本を学べます。英語となりますが、DeepLなどを使いながら、英語の勉強も兼ねて、取り組むのも良いでしょう。
SQLの実際の業務でも使うSQLの基礎、そして、最後に、ちょっとした練習をできるので、おすすめです。
最後に
SQLは、データの集合体であるデータベースをコントロールするための言語です。データベース言語であるSQLは、エンジニアとして働く場合、使用する場面がよくあります。また、世界的にも標準言語であり、一度覚えると、とても便利です。
SQLは、プログラミング言語と異なります。しかし、プログラミング言語の記述のなかでSQLの埋め込み、操作することができます。
具体的にSQLの種類として、DMLは最も利用される場面が多いため、最初に、DMLの使い方から身に付けることをおすすめします。