データーベースの内容は分かったという方
Webアプリを開発するにはデータベースを操作し、中身を自分の手で作成する必要があるということは分かったと思います
データベースの操作はプログラミング言語でも可能です。Webアプリ開発の現場では、データベースの操作に適した「SQL」と呼ばれる言語が使われています
SQLはデータベース言語の一つで、データベースの定義や操作を行うことができます。
SQLはISO(国際標準化機構)で規格が標準化されており、一度学習すればほかのデータベースでもほぼ同じように操作可能です。
今回は、データベース言語であるSQLの基礎知識や言語の種類、特徴などについてご紹介します。
今回は、データベースを操作するSQLの特徴と用語についてまとめていきます
データーベースの理解がまだの方は先に以下の記事から読み進めるようお願いします

SQLとは
SQL(Structured Query Language)とは、データベースを操作するための言語のことです。
読み方は「エスキューエル」または「シーケル」で、SQLはデータベース言語の中で、最も普及している言語の一つです
SQLでは主に以下の操作ができます
- データの検索・追加・更新・削除
- テーブルの作成・削除
- データベースの権限や文字コードの設定
データベースを操作するためのSQLの習得は、開発の現場において必要になる場合が多いです
データベース言語とプログラミング言語
SQLはデータベース言語であり、データベースを管理するソフトウェアを操作・制御することが目的です。言語といっても、プログラミング言語ではないのでシステムを開発することはできません
ではデータベース言語とプログラミング言語はどう違うのか、説明していきます
データベース言語
データベースとは、集めたデータをDBMS(データを管理するプログラム)で整理し、操作できるようにしたものです
データベース言語はDBMSに求める処理を命令する制御言語で、宣言型言語(非手続き型言語)といいます。データベース言語はデータを管理して、ユーザーが指定した条件に合致するものを見つけ出すためのもので、それ以上の機能はありません。シンプルにできており、ほかの言語とは文法や仕様がまったく異なります。ユーザーやシステムの命令でデータベースにクエリを送り、返ってきた値をユーザーやシステムに返します。コンパイルは行わず、インタプリタ言語のように動作します
プログラミング言語
プログラミング言語は手続き型の言語で、プログラムの本体を作るときに使います。プログラムの行う処理手順を記述し、コンピュータに何をどう処理するのかを指示します。
プログラミング言語はデータベース言語よりも複雑で、COBOL、C言語、Javaなど、多くの種類があります。数千種類あるともいわれていて、環境やマシンによって使い分けられます
SQLの特徴
SQLは、以下の特徴があります
- 英語のように構文が決まっている
- データベース言語である
- 命令方法には対話型と埋め込み型がある
- ISO(国際標準化機構)で標準化されている
英語のように構文が決まっている
SQLは英語のように構文の型が決まっており、その型どおりに実行しないとエラーが発生します。
実際のSQLは以下のように記述します(今回はコマンドの意味は飛ばします)
- INSERT INTO test.users (id, name, age) VALUES (1, ‘佐藤’, 25);
今回は、SQLの概要の理解なんで「これがSQLなんだ」程度の理解でOKです
データベース言語である
SQLもRubyやPHPのようなプログラミング言語であると勘違いされやすいですが、厳密には両者は異なります
SQLとプログラミング言語の違いは以下になります
| SQL | プログラミング言語 | |
| 役割 | データベースに対してのみ操作命令ができる。 | ユーザー画面側やデータベースなどへ、データの表示や読込などの命令ができる(ユーザー画面とDBの橋渡し役)。 |
| 命令の実行方法 | データベースに対し、「○○というデータを追加する」という単純な命令のみできる。 | 「Aが実行されたらBを表示、そうでなければCを表示」など、複雑な命令を実行できる。 |
| 他の言語との共存 | プログラム内にSQLの命令文を記述できる。 | 異なる言語とは共存できない(例:PHPファイル内にRubyのコードは書けない)。 |
命令方法には対話型と埋め込み型がある
SQLでデータベースを操作する命令方法には、「対話型」と「埋め込み型」の2種類があります。理解しづらい話なので、まずイメージとして「対話型」はシンプルな命令、「埋め込み型」は複雑な命令と捉えてみましょう
具体的には以下のような違いです
| 命令方法 | 特徴 |
|---|---|
| 対話型 | ユーザーが直接SQLのコマンドを打ち込む方法。コマンドを打ち込むツールは、Macの場合はターミナル、Windowsの場合はコマンドプロンプトなどを利用する。会話のキャッチボールをするように、命令文を1行書いたらすぐに実行されるため、対話型と呼ばれる。 |
| 埋め込み型 | ソースコードにSQLを埋め込む方法。ソースコードはPHPやRubyなどのバックエンドのプログラミング言語で記述する。「ボタンを押したらSQL1を、押さなければSQL2を実行せよ」などの複雑な操作を行いたい場合に用いる。Webアプリ開発では基本的に埋め込み型でSQLを利用する。 |
ISOで標準化されている
ISO(国際標準化機構)で規格が標準化されており、一度学習すればどのデータベースでも同じように操作できます
SQLを一度身につければ、Webアプリ開発だけでなくデータベースを使用しているさまざまな開発分野に活用できます
SQLでよく使う用語を覚えよう
SQLとデータベースを使用するときによく使う用語は、以下のとおりです
- テーブル
- カラム
- レコード
- フィールド
データベースの学習で頻繁に出てくる用語です
分かりやすいのでExcelやGoogleスプレッドシートと対比して説明します
ExcelやGoogleスプレッドシートとは名称が違いますが、指しているものは同じです
| Excel・Googleスプレッドシート | SQL |
|---|---|
| 表、シート | テーブル |
| 列 | カラム |
| 行 | レコード |
| セル | フィールド |
SQLでよく使うコマンド
SQLでよく使われるコマンドを紹介します
| コマンド名 | 役割 |
|---|---|
| CREATE | 新しくテーブルを作成します。 |
| DROP | テーブルを削除するときに用います。 |
| INSERT | テーブル内に新しくカラムやレコードを挿入します。 |
| SELECT | テーブルから対象となるカラム、レコード、フィールドを選択し取得します。 |
| UPDATE | 特定の条件で選択した列の値を更新します。 |
| DELETE | 特定の条件で選択した行の値を削除します。 |
| WHERE | 「10より大きい数値」「東京都のユーザー」など、条件に一致するデータを取得するときに用います。 |
| ORDER BY | データを昇順、降順に入れ替えるときに用います。 |
SQLの種類
SQLは、大きく分けて3種類の言語から構成されています。データベースを制御したり操作したりする際に使い分けられ、すべて命令文で動詞と目的語を組み合わせた構文です
- データ定義言語(Data Definition Language)
- データ操作言語(Data Manipulation Language)
- DCL(データ制御言語)
データ定義言語(Data Definition Language)
データ定義言語はDDLと略され、RDBMSで扱うオブジェクト(テーブルやインデックスなど)の構造や、オブジェクト同士の関係を定義する構文です
<DDLの命令文>
- CREATE:新しくテーブルを作成する
- JOIN:テーブル同士を結合する
- DROP:テーブルを削除するときに用いる
- ALTER:定義したオブジェクトの内容を変更する
- TRUNCATE:データをすべて削除する
データ操作言語(Data Manipulation Language)
データ操作言語はDMLと略され、データベースを操作するための構文です。目的語やさまざまな条件を示すキーワードと組み合わせて使われ、多くのパターンがあります。目的語には「~以上」「~以下」などの条件をつけることもでき、SQL関数と呼ばれる関数を使用することもできます
<DMLの命令文>
- SELECT:テーブルから対象となるカラム、レコード、フィールドを選択し取得する
- INSERT:テーブル内に新しくカラムやレコードを挿入する
- DELETE:特定の条件で選択した行の値を削除する
- UPDATE:特定の条件で選択した列の値を更新する
データ制御言語(Data Control Language)
データ制御言語はDCLと略され、データへのアクセスを制御する構文です。トランザクションやシステムを管理したり、ユーザーのアクセス権を制御したりするために使われます
<DMLの命令文>
- GRANT:ユーザー権限を付与する
- REVOKE:ユーザー権限を削除する
- BEGIN:トランザクションを開始する
- COMMIT:トランザクションを確定する
- ROLLBACK:トランザクションを取り消す
SQLとMySQLの違い
「MySQL」と「SQL」は、混同されやすいため、ここで違いを確認しておきましょう
| 特性 | 解説 | |
| MySQL | データベース | MySQLは「テーブル」「カラム」「レコード」「フィールド」を含んだデータベースそのものです。「データを保管するための箱」と考えると、わかりやすいです。 |
| SQL | データベース言語 | SQLはMySQLを操作できる、データベース言語です。前節で紹介した「CREATE」「INSERT」などのコマンドが、SQLです。 |
まとめ
今回はSQLとMySQLの違いや、SQLでよく使う用語を中心に解説しました
これでSQLの概要は理解できたかと思います
コンピュータを使うときには、ほとんどの場合、何らかのデータベースへのアクセスが生じます
近年はビッグデータの活用によるマーケティングが話題になっていますが、
ビッグデータを処理するインターフェースとして、SQLが提供されていることが一般的です
今後もしっかりとデーターベースについて学習を進めていきましょう

コメント