プログラミングでシステムを作成する際、「Java」や「PHP」といったプログラミング言語以外に、「SQL」と呼ばれる言語が使用されます。
本記事では、プログラミング初心者の方向けに、SQLとは何なのかといった根本的な疑問から、基本的な情報と使い方についてご紹介していきます。
目次
SQLって何?プログラミング言語との違いとは?
SQLは、データベースを操作するための専用言語です。
データベースは、様々なデータを保存して管理・検索しやすくするための技術で、「データの集まり」「データの保管場所」と考えてください。
このデータベースに、データを格納したり、必要なデータを取り出したりするための操作に使う言語がSQLです。
SQLとプログラミング言語の違いとは?
SQLとプログラミング言語の違いとしては、上述したようにSQLは「データベースを専門に操作する言語」です。
システムを開発するために利用される「Java」や「PHP」といったプログラミング言語は「コンピューターを操作する」ための言語です。
広義の意味では、どちらもプログラミング言語と呼ばれることがありますが、厳密にはSQLを「データベース言語」、JavaやPHPを「プログラミング言語」として区別されることが多いようです。
SQLの種類
SQLには大きく3種類の操作方法が存在します。
データ操作言語
データ操作言語は「Data Manipulation Language(DML)」と呼ばれ、データの検索・追加・更新・削除などを行うためのSQL文です。
- データの検索: SELECT
- データの追加: INSERT
- データの更新: UPDATE
- データの削除: DELETE
データ定義言語
データ定義言語は「Data Definition Language(DDL)」と呼ばれ、データを格納するためのテーブルの作成・変更・削除などで利用されます。
- テーブルの作成: CREATE
- テーブルの変更: ALTER
- テーブルの削除: DROP
データ制御言語
データ制御言語は「Data Control Language(DCL)」と呼ばれ、データベースを操作するユーザーに対して、権限の追加・削除などで利用されます。
- 権限の追加: GRANT
- 権限の削除: REVOKE
- トランザクションの確定: COMMIT
- トランザクジョンの取り消し: ROLLBACK
プログラミング開発で利用されるSQLコマンドを試してみよう
では実際に上述したSQLの種類から、プログラミング開発でエンジニアが頻繁に利用することになる「データ操作言語」と「データ定義言語」をサンプルとして実行してみましょう。
今回のサンプルではMySQLというデータベースを利用していますが、SQL文自体は基本的にどのデータベースを利用しても同じコマンドを使用可能です。
テーブルに定義する「型」の種類がデータベースにより若干異なるため、利用するデータベース毎に読み替えが必要となります。
テーブル作成
まずはデータを格納するための「CREATE文」を利用してみましょう。
書式は下記の通りです。
CREATE TABLE テーブル名(カラム名 データの型[, カラム名 データの型, ...]);
今回は「fruits」というテーブルに「id」「name」「price」という3つのカラムを作成してみましょう。
CREATE TABLE fruits(id int, name varchar(30), price double);
データ追加
作成したテーブルにデータを格納するためには「INSERT文」を利用することが可能です。
書式は下記の通りです。
INSERT INTO テーブル名[カラム名, ...] VALUES(値, ...)[,(値, ...)];
上記で作成したテーブルに「apple」と「orange」「grape」の3つのデータを追加してみましょう。
サンプルのように、テーブルのカラム全てに値を設定する場合は、カラム名を入力する必要はありません。
INSERT INTO fruits VALUES(1, 'apple', 150), (2, 'orange', 100), (3, 'grape', 250);
データ変更
追加したデータの値を修正したい場合には「UPDATE文」を利用しましょう。
書式は下記の通りです。
UPDATE テーブル名 SET カラム名 = '値' [WHERE 条件式];
今回は「orange」の値段を「200」に変更してみます。
UPDATE fruits SET price = 200 WHERE id = 2;
データ削除
テーブルに格納されたデータを削除したい場合「DELETE文」が利用可能です。
書式は下記の通りです。
DELETE FROM テーブル名 [WHERE 条件式];
今回はgrapeのデータを削除してみましょう。
DELETE FROM fruits WHERE id = 3;
データ検索
テーブルのデータを確認するためには「SELECT文」を利用することが可能です。
書式は下記の通りです。
SELECT カラム名[, カラム名, ...] FROM テーブル名 [WHERE 条件式];
今回はfruitsテーブルに格納されているデータを全て抽出してみます。
テーブルのカラム全てを抽出する場合「*」が利用可能です。
SELECT * FROM fruits;
実行した結果が下記の通りです。
+------+--------+-------+ | id | name | price | +------+--------+-------+ | 1 | apple | 150 | | 2 | orange | 200 | +------+--------+-------+
テーブル作成からデータの追加・変更・削除が全て反映されていることをご確認頂けます。
SQLには様々なコマンドが存在しますが、上記で紹介したコマンドの利用頻度が高いので、初心者の方は今回ご紹介したコマンドを最初に覚えるようにしてみましょう。
プログラミング学習にSQL知識が必要な理由とメリット
ではプログラミングを学ぶ上で、SQLの知識が必要な理由は何故なのでしょうか?
学習することによるメリットと合わせて解説していきます。
プログラミング学習にSQL知識が必要な理由
プログラミングでシステムを作成する上で、Webアプリ・業務システム問わず、データベースを利用していないシステムはほとんど無いと考えて良いほど、データベースはシステム開発に欠かせません。
フロントエンドと呼ばれるユーザーに見える画面作成を担当するエンジニアであれば、データベースの知識は不要と考えている方もいらっしゃいますが、実際にはデータベースから受け取ったデータを画面に表示する処理など、最低限の知識は必要になることが多くなります。
何年も前の静的サイトと呼ばれるHTMLとCSSだけで作成されたようなWebサイトであれば、データベースの知識がなくても問題ありませんでしたが、近年の複雑化しているシステムでは、プログラミング学習においてデータベース及びSQL知識は必須と考えておいた方が良いでしょう。
SQLを学ぶメリット
SQLを学ぶメリットは、エンジニアの幅を広げる意味でも大きなメリットとなります。
上述したようにフロントエンドエンジニアでもデータベース(SQL)の最低限の知識が求められることはもちろん、アプリ開発時に自分自身でデータベースを操作出来るようになるため、開発効率も上がります。
また、SQLが扱えればバックエンドエンジニア・フルスタックエンジニア、データベースを専門に扱うデータベースエンジニアまで、キャリアプランが広がります。
さいごに:プログラミングを仕事にするならSQLの理解は必須!
本記事では、データベースを扱う際に必須の知識SQLについて、基本的な情報から操作方法までご紹介してきました。
プログラミングを仕事にする以上、ほぼ全ての分野においてSQLの知識は必須となりつつあります。
SQLコマンドは一度覚えてしまえば、各種データベースで利用可能ですので、しっかりと基礎知識として身につけておきましょう。
上記はSQLで頻繁に利用されるコマンドを抜粋したもので、他にもいくつもデータベース操作のコマンドが存在します。