「SQLって何なの?」「SQLはプログラミング言語とは違うの?」
このような疑問に応えるべく、SQLの基礎知識について解説します。SQLについては何もわからない、どういうときに使用するものなのかを知りたいという方にも理解して頂ける記事です。
SQLとは?
SQLはデータベース言語
SQLはデータベースを操作するための言語です。データベースにデータを挿入したり、検索したりする際に利用します。データベースのなかには、数万・数百万件ものデータが保存されていますが、SQLを使うことで効率的に操作をすることが可能なのです。
SQLは国際標準化されているため、さまざまなデータベースで利用できます。有名なデータベースとしては、Oracle、MySQL、PostgreSQL、SQLiteなどがありますが、いずれもSQLで操作可能です。
SQLでデータベースに対して行える操作として、主に次のようなものがあります。データベースに関わるあらゆる操作をSQLで行います。
- データの検索
- データの追加
- データの更新
- データの削除
- テーブルの作成
- テーブルの削除
- テーブルの主キーの設定
- ユーザー権限の付与
そもそもデータベースとは?
データベースとは、検索や蓄積が容易にできるよう整理された情報の集まりのこと(Wikipediaより引用)です。
Amazonを例に挙げると、商品情報のデータベース、注文情報のデータベース、利用者のデータベース、取引先のデータベース、物流業者のデータベースなどの多くのデータベースが存在しているはずです。
具体的なイメージを持って頂くために、あるサービス利用者のデータベースのイメージを以下に掲載しますね。
このように情報活用の要となるデータベースを操作する言語として、SQLは欠かせない存在なのです。
データベース言語(SQL)とプログラミング言語との違い
SQLは厳密にはプログラミング言語ではありません。あくまでもデータベースを操作するための言語(データベース言語)です。
プログラミング言語
プログラミング言語には、C言語やJava、PHP、Pythonなどの言語がありますが、いずれもコンピュータを操作するための言語です。C言語やJavaなどは、コンピュータ上で動作するアプリケーションを作成することができます。PHPやPythonなどは、Web上で動作するWebアプリケーション・Webサービスを開発する際に利用することが多いです。
プログラミング言語は、与えられたデータに対して、どのように反応するか、コンピュータにどのように命令するかを記述していきます。そのため、プログラミング言語ではループや条件分岐など、さまざまな命令を駆使して繰り返し処理、複雑な処理などを定義できます。
データベース言語(SQL)
一方、SQLはデータベースに対してしか命令することができません。また命令の方法もとてもシンプルです。
基本的にSQLでは、一文ごとに結果を求めます。「データベースに対して、こんなことがしたい」という一行程度の文をコマンドへ打ち込むと、命令が実行されるという方式です。これを『対話型』と呼びます。
データベースに対して、連続した操作や複雑な操作を行いたい場合はどうするかというと、他のプログラミング言語の記述の中に、SQLの文を埋め込むことで命令を実行できます。こちらは『埋め込み型』といいます。
以上のように、データベース言語(SQL)は、用途の限られた簡潔な言語であるといえます。SQLとプログラミング言語は似ていますが、それぞれが持つ役割は大きく異なることを覚えておきましょう。
覚えるべきSQLの種類
SQLを使ってデータベースを操作する際、覚えておきたい3つの種類について紹介します。
データ操作言語(Data Manipulation Language)
データ操作言語はDMLと省略して呼ばれ、データベースに対してデータを追加・更新・削除などを行うためのSQL命令文の種類です。
DMLで利用される命令文としては、次のようなものがあります。
- SELECT(データの検索)
- INSERT(データの追加)
- UPDATE(データの更新)
- DELETE(データの削除)
SQL命令文のなかでも、特に利用頻度が高いものであるため、必ず覚えておきましょう。
データ定義言語(Data Definition Language)
データ定義言語はDDLと省略して呼ばれ、テーブルなどを作成・削除したり、設定を変更したりするためのSQL命令文の種類です。
DDLで利用される命令文としては、次のようなものがあります。
- CREATE(テーブルの作成)
- ALTER(テーブルの設定変更)
- DROP(テーブルの削除)
- TRUNCATE(テーブルデータの削除)
データベースの管理者として、テーブルを管理する場合は必ず覚えなければなりません。TRUNCATEは、DMLのDELETE文と同じくデータを削除する命令ですが、テーブル内のすべてのデータを削除するものです。
DELETE文とあわせて利用することが多いため、覚えておくとよいでしょう。
データ制御言語(Data Control Language)
データ制御言語は省略してDCLと呼ばれます。DMLやDDLの利用を制御するためのSQL命令文の種類です。DCLで利用される命令文としては、次のようなものがあります。
- GRANT(権限付与)
- REVOKE(権限剥奪)
こちらもデータベースの管理者は、必ず覚えておくべきものです。DCLを使うことで、ユーザー単位・テーブル単位にDMLやDDLの使用を制限できます。たとえば、AさんはテーブルBへのデータ追加を許可する、といったようなことです。
SQLの具体例「SELECT文」
SQL文の具体例を少しだけご紹介します!感触をつかんでみてください。
SELECT文はデータの検索をする文で、基本的な構文は以下の通りです。
SELECT 列名1,列名2,列名3(どの列を検索・表示させるか)
FROM 表名(どの表から検索するか)
WHERE 抽出条件
例題:EMPLOYEE表はNAME(氏名)、AGE(年齢)、JOB(仕事)、SAL(月給)から構成されています。以下の各条件に当てはまるデータを選択(SELECT)してみましょう!
Q. 表の中から、月給が50万円以上の人を探すためのSELECT文は?
(入力)
SELECT * FROM EMPLOYEE (Enterボタン)
WHERE SAL >= 500,000 (Enterボタン)
(出力)
NAME | AGE | JOB | SAL |
松田 | 65 | 社長 | 950,000 |
山田 | 43 | 部長 | 680,000 |
羽生 | 42 | 営業マネージャ | 600,000 |
まとめ
SQLはデータベースを操作するためのデータベース言語です。SQLは国際標準化されているため、一度覚えてしまえば、さまざまなデータベースで利用できます。
プログラミング言語とは異なるものであることも覚えておきましょう。ただし、プログラミング言語のなかで、データベースを操作するためにSQLを利用すること(SQLの埋め込み)が可能です。
具体的にSQLの種類として、次の3つの種類をご紹介しました。
- データ操作言語(DML)
- データ定義言語(DDL)
- データ制御言語(DCL)
これらの中で、DMLは一般的によく利用されるため、まずはDMLの使い方から身に付けてみてはいかがでしょうか。
- カテゴリ:
- SQL