プログラミング初心者のためのデータベース講義【現役エンジニアが解説】

PROGRAM

データベースとは何かを知りたい方に。

この記事を読まれている方は、

  • データベースとは何かを知りたい
  • データベースの操作の仕方を知りたい
  • プログラミングとデータベースの関係を知りたい

おそらくこのように考えている方が多いと思います。

この記事を書いている私は、
プログラミング未経験から転職を果たした現役のWeb系エンジニアです。
エンジニア歴は3年ですが、本業とは別にフリーランスの副業で月10万円ほど、多いときで20万円ほどの収入があります。

この記事では、現役のエンジニアが、プログラミング初心者向けに、データベースについて解説します。

データベースとは

データベースとは

まず、データベースとは、簡単に言うとエクセルファイルと同じようなもので、データを記録し、管理・検索するための仕組みのことです。

以下はデータベースのキーワードですが、おそらく一度は耳にしたことがあるのではないでしょうか。

  • データベース
  • テーブル
  • レコード
  • カラム

これらのキーワードは全て、エクセルで例えることができます。

まず、「テーブル」とは、エクセルで言うところの「シート」にあたります。

次に「レコード」とは、エクセルで言うと各シートの縦の数値の「行」と同じです。

同様に「カラム」も、各シートの横のアルファベットの「列」と同じです。

そして、「データベース」とはそれら各シートをまとめたものを表しています。

どうですか?
とても簡単ですよね?

データベースとエクセルの大きな違いは、
データベースは件数が多くても上手く扱えば速度をあまり落とさずに対応することができる点、外部プログラムからの操作が容易である点などが挙げられます。
(エクセルはすぐ重くなるし、外部との連携なんてやったことないですよね?)

また、データベースはエクセルと違い、基本的な操作は全てSQL(Structured Query Language)というデータベースを操作するための言語を使い、データを管理していきます。

SQLを使用するデータベースのことをRDBMS(Relational DataBase Management System)と呼びます。
RDBMSとは、わかりやすく言えば、テーブル内のデータだけでなく、各テーブル同士の関係についても、表の形式で表せるということです。

少し前までほとんどのデータベースがSQLを使うRDBMSの時代でしたが、最近ではNoSQLといってSQLを使わないデータベースも増えてきています。

ですが、この記事では、依然影響力を占めているSQL・RDBMSについて、取り扱うことにします。

SQLを扱うRDBMSには、主に以下のデータベースソフトウェアがあります。

  • Microsoft SQL Server
  • Oracle Database
  • DB2
  • MySQL
  • PostgreSQL
  • SQLite
  • Microsoft Access

この中のいくつかは一度は耳にしたこともあるかもしれません。
おそらく、一番馴染みがあり、簡単に使えるデータベースはMySQLだと思います。

MySQLは基本的には無料で使うことができ、商用も無料です。ただし、サポートを受ける場合は有料になります。昔はサンマイクロシステムズ社が持っていましたが、今はオラクル社のソフトウェアになり、Oracle Databaseとの関係でどうなるかが注目点です。

その他のデータベースも基本的には色々な場面で使われますが、DB2は主にIBMの汎用機で使われるRDBMSだということは知っておいたほうが良いです。

上記のいずれのデータベースソフトウェアを使うにせよ、SQLという言語を知らないとデータベースを操作できませんので、この記事の後半でよく扱うSQLのフレーズをまとめています。よかったら、参考にしてみて下さい。

プログラミングとデータベースの関係

プログラミングとデータベースの関係

プログラミングをやっていると、ほぼ必ずデータベースというキーワードが出てきますし、実際に必要になってきます。

その理由はもうわかりますよね?
データベースはエクセルと同じように、データを記録し、管理することができるので、データを保存するために必要になってくるのです。

例えば、在庫管理システムを使うことを考えてみましょう。
まず管理する商品を登録しないといけませんが、データベースがなければ、そもそも商品情報を保存する先がないので、アプリケーションを終了(メモリ解放)したと同時にデータも一緒に消えてしまいます。

そこでMySQLなどのデータベースを使います。
データベースに保存したデータは、エクセルとは違い、外部のシステム(プログラム)からも簡単に呼び出すことができますし、件数が多くても動きが比較的軽快なので、データベースは、ほとんどのプログラミングで必要とされます。

もちろん自前でテキストファイルのデータベースを作ることも可能ですが、RDBMSはデータを管理するソフトウェアとして最適化されていますので、これ以上のパフォーマンスを出せるものはそうそう作れないでしょう。

とにかく今はデータを保存する場所として、データベースをとらえて頂ければ良いと思います。

データベースの操作の仕方

データベースの操作の仕方

データベース、特にSQLを使うRDBMSの操作の仕方について、解説します。
ここでは、MySQLを例に、データベース操作の方法を説明していきます。

既にデータベースにはコマンドプロンプトやphpmyadminなどでログインし、SQLを打てる状況であるという前提で話を進めていきます。

データベースを作る

まず、データベースを使用していくためには、空のデータベース領域を作ることから始めなければいけません。
データベースを作るコマンドは「CREATE DATABASE データベース名;」です。

例えば、データベース”school”を作るには、以下のコマンドを実行します。

CREATE DATABASE school;

データベースを削除する

一度作成したデータベースを削除したい場合は、「DROP DATABASE データベース名;」で消すことができます。

例えば、データベース”school”を削除するには、以下のコマンドを実行します。

DROP DATABASE school;

テーブルを作る

次に作成したデータベースに対し、テーブルがないと具体的なデータを入れていくことができません。テーブルとは、エクセルで言うと、各シートにあたります。
テーブルの作り方は、「CREATE TABLE テーブル名(カラム名 データ型 オプション…);」です。

例えば、テーブル”students”を作るには、以下のコマンドを実行します。
なお、テーブルのカラムは、数値型のID、文字列型の名前, 数値型の年齢の3つとします。

CREATE TABLE students(
    id INT(11) NOT NULL, 
    name VARCHAR(50) NOT NULL ,
    age INT(3) NOT NULL,
PRIMARY KEY (id)
);

ここでは最後にPRIMARY KEYを指定することで、idがユニークになるようにしています。
また、NOT NULLオプションを設定することで、そのカラムでデータがないことを許容しないようにしています。

テーブルを削除する

作成したテーブルを削除する場合は、「DROP TABLE テーブル名;」で消すことができます。
例えば、テーブル”students”を削除したい場合は、以下のコマンドを実行します。

DROP TABLE students;

テーブルにデータを追加する

データを追加することは、レコードを追加することと同じ意味です。
レコードは「INSERT INTO テーブル名(カラム名1, カラム名2…) VALUES (値1, 値2…)」で追加することができます。

例えば、テーブル”students”に、idが1001、nameが佐藤、ageが16のレコードを追加したい場合は、以下のコマンドを実行します。

INSERT INTO students (id, name, age) VALUES (1001, '佐藤', 16);

テーブルのレコードを更新する

レコードを更新、書き変えるには「UPDATE テーブル名 SET カラム名1=値1, カラム名2=値2…;」で可能になります。
例えば、テーブル”students”のidが1001のレコードの年齢を17に変更する場合は、以下のコマンドを実行します。

UPDATE students SET age = 17 WHERE id = 1001;

このコマンドのように、ある特定のレコードのみを対象としたい場合にはWHERE句を使って条件を絞り込みます。

テーブルのレコードを削除する

レコードは「DELETE FROM テーブル名;」を実行することで削除できます。
例えば、テーブル”students”のidが1001のレコードを削除する場合は、以下のコマンドを実行します。

DELETE FROM students WHERE id = 1001;

テーブルのデータを取得する

テーブルのデータは「SELECT カラム名1, カラム名2… FROM テーブル名;」で取得できます。
例えば、テーブル”students”のデータのidと名前のデータを全件取得する場合は、以下のコマンドを実行します。

SELECT id, name FROM students;

この他にもいくつか操作がありますが、データベースやテーブルを作ることができ、データの取得・追加・変更・削除ができれば基本的には問題ないと思われます。

テーブル変更やインデックスの追加などは実務で覚えていくのでも遅くはないと思います。

データベースについてより詳しく学んでいきたい方は、独学やプログラミングスクールで学ばれると良いと思います。