SQLを一言で表すと『データベース専用の操作言語』です。SQLは汎用的なプログラミング言語ではありませんがプログラミング言語ランキングなどを見ると、必ずランキング上位に数えられています。それは、大抵のシステムでデータベースが利用されており、それを操作するためにSQLが利用されるいるからです。今回は、SQLの基本的な簡単な使い方を紹介します。

SQLについて

『SQL(エスキューエル)』とは何かの略語ではなく、そのままSQLという名前の言語です。ただし『Structured Query Language(構造化問い合わせ言語)』に由来しています。

SQLでできることは、データベースを操作することです。データの構造を定義したり、データを追加、更新、削除、検索(抽出)したりできます。しかも簡単なコマンドを利用して操作できるのが特徴です。

そして、SQLは国際標準化機構(ISO)によってによって標準規格が定められています。そのため、異なるデータベースであっても、同じように操作することができます。ただし、データベースのベンダーごとに、独自の拡張がなされていることや、標準規格への対応の度合いが異なるので、注意が必要なこともあります。

SQLでどのようにデータベースを操作するのか?

SQLを使ってデータベースを操作する方法ですが、データベースごとに専用のコンソールが用意されていたり、コマンド実行画面が用意されています。

例えば、以下は、WebブラウザからオープンソースのデータベースMySQLを操作できるphpMyAadminの画面です。SQLを用いてMySQLのデータベースを操作できます。

  • phpMyAadminの画面 - SQLでMySQLを操作できる

    phpMyAadminの画面 - SQLでMySQLを操作できる

それに加えて、様々なプログラミング言語からSQLを実行するためのAPIが用意されます。SQLはデータベースを操作するだけなので、アプリを作るためには別のプログラミング言語を利用します。そして、プログラミング言語から、SQLを利用してデータベースを操作するのです。

関係データベース管理システム(RDBMS)について

SQLはデータベースがあってはじめて役立つ言語です。逆に言えば、SQLを使いこなすためには少なからずデータベースについて学ぶ必要があります。

まず、世界中には、さまざまな形態のデータベースがありますが、その多くは『関係データベース管理システム』と言う仕組みになっています。関係データベース管理システムというのは長いので『RDMBS』(Relational Database Management System)と略されます。

有名なRDBMSには、オラクル社のOracle Database、マイクロソフト社のMicrosoft SQL Server、オープンソースのMySQL/MarinaDB、PostgreSQL、SQLiteなどがあります。当然、これらのデータベースでは、データを操作するのにSQLを使います。

そして、関係データベース管理システム(RDBMS)ですが、複数のデータベースを管理できるようになっています。そして、一つのデータベースの中には、複数のテーブル(表)を保存できるようになっています。そして、テーブルとテーブルを関連させて、複雑なデータも表現できるようになっています。

  • RDBMSの仕組み

    RDBMSの仕組み

なお、テーブルというのは、Excelなどの表計算ソフトのシートのようなものです。テーブルは二次元であり、列と行の概念があります。その点でもExcelのシートに似ています。

ただし、Excelではそのシート内にどのようにデータを入れていくかは使う人の自由です。しかし、データベースのテーブルでは、最初にどのようにデータを入れていくかを定義しておく必要があります。

テーブルの各要素にも呼称があります。表の列を『カラム(フィールド)』、表の行を『レコード(ロウ)』と呼びます。そして、各カラムの名前を『カラム名(フィールド名)』と呼びます。

  • テーブルについて

    テーブルについて

SQLiteを使ってみよう

実際にSQLを使ってみたい場合にオススメなのがSQLiteです。SQLiteは手軽に使えるオープンソースのデータベースです。これはコマンドラインから使える単体のアプリとして提供されています。Windows/macOS/Linux/Androidなど各プラットフォームで利用できます。一つのファイルが、一つのデータベースとなるので、扱いが簡単です。

  • SQLite

    SQLite

SQLite
[URL] https://www.sqlite.org/

ダウンロードページより、各OSごとのアーカイブをダウンロードしましょう。

Windowsの場合は「Precompiled Binaries for Windows」の項目にある「sqlite-tools-win32-x86-***.zip」(***はバージョン番号)を選んでダウンロードします。

macOSの場合は「Precompiled Binaries for Mac OS X (x86)」の「sqlite-tools-osx-x86-***.zip」をダウンロードします。

ZIPファイルを解凍したら、コマンドラインを起動して、解凍したフォルダをカレントディレクトリに設定しましょう。WindowsならPowerShell、macOSならターミナル.appを起動します。

そして、以下のように「sqlite3 (ファイル名)」とコマンドを実行すると、SQLを実行する対話コンソールが起動します。

 (Windowsの場合)
 .¥sqlite3 test.sqlite

 (macOSの場合)
 ./sqlite3 test.sqlite

起動すると、以下のように表示されます。

  • SQLiteのコンソールを起動したところ

    SQLiteのコンソールを起動したところ

ここに、SQLのコマンドを打ち込むことで、データベースを操作できます。

簡単な顧客名簿を作ってみよう

SQLiteが起動できたら、簡単な顧客名簿を作ってみましょう。

まずは、テーブルを定義しましょう。テーブルを作るには「CREATE TABLE」コマンドを使います。対話コンソールに以下のコマンドを打ち込みましょう。

CREATE TABLE users(
  user_id INTEGER PRIMARY KEY,
  name TEXT,
  email TEXT
);

これで、顧客を管理するusersというテーブルが作成されます。そして、このテーブルは、user_idとname、emailという三つのカラムを含むものとなります。

テーブルにデータを挿入しましょう。データ挿入のために「INSERT」コマンドを用います。

INSERT INTO users (name, email) VALUES ("佐藤", "sato@example.com");

さらに、もう二件のデータを挿入してみましょう。

INSERT INTO users (name, email) VALUES ("鈴木", "suzu@example.com");
INSERT INTO users (name, email) VALUES ("高木", "taka@example.com");

最後に、データが挿入できているか確認してみましょう。以下のコマンドを実行するとデータベースのusersテーブルにあるデータを全部表示します。

SELECT * FROM users;

実行すると、以下のようにテーブルに挿入した三件のレコードが表示されます。

  • usersテーブルのすべてを表示したところ

    usersテーブルのすべてを表示したところ

SQLが便利なのは高度な検索ができる点です。特定のデータを抽出するには「SELECT * FROM テーブル名 WHERE 条件」のようにコマンドを実行します。

顧客データから鈴木さんのレコードを検索してみましょう。

SELECT * FROM users WHERE name="鈴木";

実行すると、以下のように表示されます。

  • 鈴木さんのレコードを抽出したところ

    鈴木さんのレコードを抽出したところ

曖昧検索も可能です。名前に「木」が付く人を検索してみましょう。

SELECT * FROM users WHERE name LIKE "%木%";

実行すると、以下のように表示されます。

  • 名前に「木」が付く人を抽出したところ

    名前に「木」が付く人を抽出したところ

まとめ

以上、今回はSQLの紹介に加えて簡単な使い方を紹介しました。ここではテーブルの作成とデータ挿入、検索まで一通り簡単な使い方を紹介しました。SQLはデータベースを操作するものなので、SQLだけで何かアプリを完成させるわけではありません。しかし、アプリの規模や種類を問わずデータベースを利用する機会は多いものです。そのため、プログラマーであればSQLをマスターしておく必要があります。また、プログラマーでないとしても、データベースに直接アクセスして任意の条件でデータを検索できれば、非常に便利です。ですから、SQLに親しんでおくと何かと役立つことでしょう。