【初心者向け】SQLとは?基礎知識を学んでデータベースを操作しよう!
SQLはデータベースのアクセスや定義をおこなうための言語です。1970年代にIBMによって開発され、国際標準化機構(ISO)で規格が統一されています。
SQLを学べば、世の中にあるほぼすべてのデータベースを操作できます。今回は初心者の方向けに、SQLやデータベースについてわかりやすく解説します。
データベース言語といえば「SQL」の一択
データベースを操作するための言語はSQL以外にもいくつかありますが、SQLは圧倒的なシェアを占めています。SQLが独占しているといっても過言ではありません。
SQLが支持される理由は、なんと言ってもISO(国際標準化機構)で世界標準化されていることです。異なるデータベースであっても大抵はSQLが使えるため、IT業界全体の共通言語となっています。これからデータベース言語を学ぶのであれば、SQLのみ学習すれば間違いないでしょう。
ただしSQLは、あくまでデータベースを操作するための言語です。SQL単体ではシステムやアプリケーションの開発ができない点を留意しておきましょう。
SQLは「対話型」・「埋め込み型」で操作する
SQLでデータベースを操作するには、対話型と埋め込み型の2つの方法があります。
対話型はWindows のコマンドプロンプトなどでSQL文を入力し操作する方法です。埋め込み型は、JAVAやC言語などのソースコードにSQL文を埋め込むことで、動的に操作する方法です。SQLだけでは動的に実行できませんが、ほかのプログラミング言語に組み込むことで、条件に応じてデータベースを操作できるようになります。
データベースとは?
データベースとは、特定の情報を集め使いやすい形に整理した「情報のかたまり」のことです。一般的にはコンピュータ上で格納された「情報のかたまり」をデータベース(DBMS)と呼びますが、紙で管理された名簿や仕入管理なども立派なデータベースです。
データベースを利用してデータを管理するメリットは、主に次の3点があります。
- 膨大なデータをまとめて管理できる
- 目的に応じてかんたんにデータを探せる
- かんたんに編集して使える
コンピューター上のデータベースは、何百万件~何千万件という大量のデータも瞬時に整理できるのが最大のメリットです。大量のデータから欲しい情報だけを抽出したり編集したりできるツールが、SQLなどの「データベース言語」です。
SQLでできること
SQLでは、大きくわけると次の4つの操作ができます。
- データベース・テーブルを作成する
- データを検索する
- データを操作する
- テーブルを結合する
詳しく見ていきましょう。
データベース・テーブルを作成する
SQLでは、データベースそのものを新しく作成することができます。また、データベースに格納されたテーブルを追加したり削除したりできます。そのほか、テーブルのカラム数や型(文字列や日付など)を指定や、インデックス追加などもできます。
データを検索する
データベースに格納される数百万件~数千万件のデータも、SQLを使えば素早く検索できます。たとえば特定の文字列が入ったデータのみ抽出や、複数条件やあいまい検索も可能です。
抽出したデータは並び替えや一部のみ抽出なども可能です。
データを操作する
SQLはデータベースに格納されるデータ内容を変更することができます。たとえば商品単価を一律で1,500円→1,000円に変更したり、商品名を変更したりすることが可能です。変更は複数の条件を指定して一括で変更することができますが、重要なデータを変更する際は、バックアップを取っておくと良いでしょう。なお、SQLで変更をおこなった際、データ確定をする前であればキャンセルできます。
テーブルを結合する
SQLでは、異なるテーブルを結合して1つのテーブルを作成することができます。たとえば、「注文テーブル」と「商品テーブル」を結合して、商品情報が追記された注文テーブルがつくれます。テーブルを結合することで、各データが見やすくなったり、効率的にテーブルを読み込ませることができます。
予期しないトラブルは「トランザクション制御」が有効
データベースに処理をおこなう際、データ量が多いほど処理に時間がかかります。処理中に予期しないトラブルはつきもので、電源トラブルでパソコンが落ちたり、別のスタッフが異なる処理を実行してしまったり…。データベースの処理が途中で終了や上書きされると、データの中身がおかしくなってしまいます。
そこで有効なのは「トランザクション制御」という補助機能です。トランザクション制御はSQLに備わる機能であり、処理途中であってもすべての処理をキャンセルし、もとに戻すことができます。なお、更新が完了するとデータの復元はできなくなるので、処理をおこなう際は事前にバックアップをとるようにしましょう。
SQLを構成する3つの言語
SQLはDML、DDL、DCLの3つの言語から成り立っています。
言語 | 正式名称 | 内容 |
---|---|---|
DML | Data Manipulation Language | データ操作言語 |
DDL | Data Definition Language | データ定義言語 |
DCL | Data Control Language | データ制御言語 |
それぞれ用途が異なりますので、詳しく解説します。
DML(データ操作言語)
DMLは、「データ操作言語」と呼ばれるSQLの命令です。たとえば、データベースのテーブル作成・削除、カラムの定義などを実行します。主なデータ操作言語は以下のとおりです。
データ操作言語 | 命令の内容 |
---|---|
SELECT | データベースからデータを取り出す |
UPDATE | データベース内のレコード(行)を更新する |
DELETE | 1つもしくは複数のレコードを削除する |
INSERT | 1つもしくは複数の行を追加する |
CALL | ストアドプロシージャやOracleストアドファンクションを呼び出す |
LOCK TABLE | 表パーティションや表サブパーティションのアクセスを制限する |
EXPLAIN PLAN | オプティマイザによって選択された実行計画を表示 |
DDL(データ定義言語)
DDLは、「データ定義言語」と呼ばれるSQLの命令です。データベースにテーブルを作成や、削除などを実行します。主なデータ定義言語は以下のとおりです。
データ定義言語 | 命令の内容 |
---|---|
DROP | 既存のデータベースオブジェクトを削除する |
ALTER | 既に存在するオブジェクトの特性を変更する |
CREATE | データベース管理システムの管理下にオブジェクトを新しく作成する |
ANALYZE | データの並び順や配置などの統計情報を取得する |
COMMENT | テーブルやカラムにコメントを付ける |
RENAME | テーブル名や列名などを「TAB_A」から「TAB_B」に変更する |
REVOKE | ユーザーIDを削除し、特定のユーザーへの権限を取り消す |
DCL(データ制御言語)
DCLは、データベースを制御し管理するための命令です。たとえばデータベースの利用者に対してデータの登録・削除・変更などをおこなう権限を与えたり、奪ったりできます。また、トランザクション処理において、変更や確定する際の命令にも使われます。主な命令文は以下のとおりです。
データ抑制言語 | 命令の内容 |
---|---|
COMMIT | トランザクションの処理を確定させる |
ROLLBACK | トランザクション中の処理を取り消して実行前の状態に戻す |
SET TRANSACTION SAVEPOINT | トランザクションを設定時の状態に戻せる印 |
SAVEPOINT | トランザクション内に新しいセーブポイントを確立 |
SQLで操作できる代表的なデータベース4選
主要なデータベースの価格と特徴は次のとおりです。
データベース名 | 価格 | 特徴 |
---|---|---|
MySQL | 無料(商用利用は有償) | オープンソースのデータベース |
PostgreSQL | 無料 | オープンソースのデータベース |
Oracle Database | 42,000円~ | 国内で圧倒的なシェアを誇る |
Microsoft SQL Server / Access | 約28,000円($209)~ | 業務システムでOracleの次にシェアを誇る |
無料であれば「MySQL」か「Postgres」のいずれかを選べば間違いありません。MySQLはシンプルな設計で処理速度も早く、Postgresは機能が豊富で大規模なデータベースを扱いやすい特徴があります。データベースの利用目的に応じて選びましょう。
まとめ
近年は「ビックデータ」に注目されていますが、ビックデータは必ずデータベースに格納されており、SQLの操作は欠かせません。データの活用は小売業界の顧客分析にとどまらず、医療や農業など幅広い分野で蓄えられて活用の動きが見られます。非エンジニアであっても、SQLの知識が必須となる。そのような時代はすぐそこかもしれません。