データベースを理解する!データベースの基本と「SQL」入門

プログラミングの基礎は身に付いたし、いざ、「アプリを作ってみよう!」と思っても、システム開発にはまだまだたくさん学ばなければいけないことがあります。

Web・スマートフォン・インハウスなど、どのようなシステムを開発するにしても、「データベース」はさまざまなシステム開発に関連してきます。

「せっかくプログラミングを覚えたのに、データベースも覚えなきゃいけないなんて・・・」

そんな声が聞こえてきそうですが、プログラミングと同じく「1つ1つ確実な理解」を積み重ねることで、データベースの使い方を身に付けることができます。

「データベース」について学びながら、データベースプログラミングができるように成長していきたいものですね♪

それでは、少しずつデータベースについて学んでいきましょう。

「データベース」の仕組みを学ぼう!

「データベース」は、「コンピュータにデータを保存する仕組み」なのですが、検索・更新などができるようになっていることがポイントです。

「データベース」は、下図のようにデータベースの中にテーブルと呼ばれるデータグループがあります。

このデータグループは、EXCELの表形式のように表すことができ、縦の列を「カラム」、横の行を「レコード」と呼びます。

普段、EXCELを使用されている方は、EXCELのファイルが1つのデータベースで、EXCELの「シート」がデータベースの「テーブル」と考えるとイメージしやすいかもしれませんね。

しかし、データベースの場合は、この表の中身を参照したり更新するために「SQL(Structured Query Language)」という専用の言語を使用します。

データベースを学ぶ際にハードルが高くなってしまうのは、「SQL」という専用の言語を学ぶ必要があることが1つの要因。

でも、「SQL」自体の仕組みはシンプルなので、1つ1つ確実に学んでいけば難しいことはありません。

データベースの種類

データベースには、先ほどお話した「SQL」を使う「RDBMS(Relational DataBase Management System)」と呼ばれるものから、「NoSQL」と呼ばれる「SQL」を使わないデータベースなど、実にさまざまな種類のものがあります。

価格面でも、有償のものから無償のものまでさまざまなデータベースソフトウェアがあり、商用ベースでは、MicrosoftやOracleなどの大手ベンダーが開発したデータベースシステムが広く活用されています。

  • Miscrosoft SQL Server
  • Miscrosoft Access
  • Oracle Database
  • DB2
  • FileMaker
  • MySQL
  • PostgreSQL
  • SQLite
  • MariaDB

上記データベースソフトウェアは「SQL」を使用しますが、「SQL」を使用しないデータベースもあります。

  • HBase
  • MongoDB
  • Redis
  • Hyliertable
  • OrientDB

これらのデータベースはSQLを使わないため、「NoSQL」と呼称されることもあります。

今回は、SQLを使用するデータベースに焦点を当て、SQLの使い方を見ていきましょう。

「SQL」でデータベースにアクセスするための基本

「データベース」の中でも、さまざまなテーブルのデータと関連を持つことができる「データベース」を「リレーショナルデータベース(Relational DataBase)」と言います。

それでは、データベースにSQLを使用してアクセスする方法について見ていきましょう♪

■テーブル作成

まず、データベースにテーブルを作成するために、下記のようなSQLを実行します。

CREATE TABLE seiseki(id integer, name text, kamoku text, tensuu int);

テーブルを作成するための書式は下記のようになっています。

CREATE TABLE テーブル名(カラム名 カラムのデータ型 , ・・・・);

そうすると、先ほどの成績データを格納できる下図のようなテーブルが作成されます。

そして、テーブルの中に成績データを追加するためには、下記のSQLを実行します。

INSERT INTO seiseki (id, name, kamoku, tensuu) VALUES (1,'田中','国語',87);
INSERT INTO seiseki (id, name, kamoku, tensuu) VALUES (2,'田中','算数',77);
INSERT INTO seiseki (id, name, kamoku, tensuu) VALUES (3,'鈴木','国語',75);
INSERT INTO seiseki (id, name, kamoku, tensuu) VALUES (4,'鈴木','算数',83);
INSERT INTO seiseki (id, name, kamoku, tensuu) VALUES (5,'鈴木','社会',81);
INSERT INTO seiseki (id, name, kamoku, tensuu) VALUES (6,'佐藤','国語',75);
INSERT INTO seiseki (id, name, kamoku, tensuu) VALUES (7,'佐藤','算数',77);

■データ追加

テーブルにデータを追加するためのSQL文は下記のように記述します。

INSERT INTO テーブル名 (カラム名1, カラム名2,・・・) VALUES (カラム名1の追加データ, カラム名2の追加データ,・・・・);

■データ更新

データの内容を更新したい時には、

UPDATE seiseki SET tensuu = 100 WHERE name = '田中' AND kamoku = '国語';

のように、下記の書式で記述します。

UPDATE テーブル名 SET 値を変更するカラム名 = 更新値 WHERE 更新するカラム条件;

■データ削除

データを削除したい場合は、

DELETE FROM seiseki WHERE name = '田中';

のように下記の書式で記述します。

DELETE FROM テーブル名 WHERE 削除するカラム条件;

■データ取得

一通りSQLを使用してデータを操作する方法を学んできましたので、ここからはデータをデータベースから取得する方法を見ていきましょう。

データを取得するためには、

SELECT name, tensuu FROM seiseki WHERE name='鈴木';

のように下記の書式で記述します。

SELECT 取得するカラム名 FROM テーブル名 WHERE 取得するカラム条件;

データ取得・表示といった操作は頻繁に行われるため、余分なデータを取得しないよう取得するカラム名や取得条件についてはよく考えて設定しましょう。

大量のデータ取得が行われる環境では、SQL文の内容によって著しい処理速度の低下を招く可能性もあります。

■WHERE句の使用方法

操作する対象データを指定するために、SQLでは、「WHERE」を使用することができます。

WHEREにはさまざまなデータ指定の方法がありますので、WHEREの使い方について見てきましょう。

■AND

「AND」を使用すると、複数の指定条件に合致したデータを操作することができます。

SELECT name, tensuu FROM seiseki WHERE name = '田中' AND tensuu = 77;

上記のSQL文を実行すると、「name」が「田中」で「tensuu」が「77」のデータを取得することができます。

■OR

「OR」を使用すると、複数の指定条件のいずれかに合致したデータを操作することができます。

SELECT name, tensuu FROM seiseki WHERE name = '田中' OR name='鈴木';

上記のSQL文を実行すると、「name」が「田中」もしくは「鈴木」のデータを取得することができます。

■BETWEEN

「BETWEEN」を使用すると、値の範囲を操作することができます。

SELECT name, tensuu FROM seiseki WHERE tensuu BETWEEN 50 AND 70;

上記のSQL文を実行すると、点数が50~70のデータを取得することができます。

【値A~値Bの範囲のデータを取得】
WHERE カラム名 BETWEEN 値A AND 値B;

■IN

「IN」を使用すると、複数の値と一致したデータを操作することができます。

SELECT name, tensuu FROM seiseki WHERE tensuu IN (50, 60, 70, 80);

上記のSQL文を実行すると、点数が50・60・70・80のいずれかに合致したものだけを取得することができます。

■NOT IN

「NOT IN」を使用すると、複数の値と一致しないデータを操作することができます。

SELECT name, tensuu FROM seiseki WHERE tensuu NOT IN (50, 60, 70, 80);

上記のSQL文を実行すると、点数が50・60・70・80のいずれにも合致しないものだけを取得することができます。

プログラムからデータベースを操作する方法

プログラムからデータベースにアクセスして、データを利用するためには、それぞれのプログラム言語ごとの作法に従う必要があります。

例えば、PHPでは、mysql関数を利用したりPDO(PHP Data Object)を利用する方法などがあり、Javaでは、JDBC(Java DataBase Connectivity)を使用しデータベースへ接続する方法などがあります。

プログラム言語ごとにデータベースへの接続方法や利用方法が異なりますので、それぞれのプログラム言語ごとのデータベースの利用方法を調べるようにしましょう。

「データベース・SQL」学習書籍

HOMEへ