ここからはSQLについて学習していきましょう。SQLはMySQLなどのリレーショナル・データベースを操作するプログラミング言語です。これから学習していくようにSQLには目的に合わせていくつかの構文が用意されています。ここではデータベースの利用シーンに合わせて、どのようなSQLを使い分けるのか概要を確認しておきましょう。
以降はリレーショナルデータベースを単純にデータベースと呼ぶことにします。
データベースの使い方
ここではMySQLを使う場合を想定して、MySQLをインストールした後のデータベースの利用シーンについて確認していきましょう。
- データベースの作成
create database
文
- テーブルの作成
create table
文
- レコードを作成する
insert
文
- レコードを検索する
select
文
- レコードを更新する
update
文
- レコードを削除する
delete
文
上記の1〜6の作業の中で、一般的に1と2の作業については最初に一度だけ行う作業になります。つまりデータベースの作成とテーブルの作成までは、本格的なプログラミングを始める前にあらかじめ済ませておくようにします。
ただし実際の開発現場ではシステムの仕様変更に合わせてデータベースやテーブルを再定義することもあります。
データベースを作成するためのSQLは create database
文です。これまでに学習してきたようにMySQL上には複数のデータベースを作成できます。これから実際に学習用のデータベースを準備してみようと思います。
また1つのデータベースの中には複数のテーブル(表)を定義できます。テーブルを作成するために利用するSQLは create table
文です。
テーブルが準備できたら必要なデータを登録していきます。データベースの文脈ではテーブルに登録するデータをレコードと呼ぶことが多いです。テーブルにレコードを作成するためには insert
文を使います。また登録済みのレコードを検索(取得)するためには select
文を使います。必要に応じて作成済みのレコードを更新したり、削除したりすることもあります。レコードを更新するためには update
文、削除するためには delete
文を使います。
以降の学習の進め方
以降は学習の題材として「Eラーニングシステム」のデータベースを想定して解説を進めます。
具体的にはMySQL上に eldb
という名前のデータベースを作成して、その中にコーステーブルとカテゴリーテーブルの2つを作成します。
各テーブルの詳細な内容は以下のとおりです。
コーステーブル
コース(courses
)テーブルはEラーニングシステム上で利用可能なコースの一覧を管理します。
id | title | learning_time | category_id |
---|---|---|---|
1 | PHP Basic | 30 | 1 |
2 | PHP Database | 50 | 1 |
3 | Python Basic | 40 | 1 |
4 | Web Design | 50 | 2 |
5 | Japan's History | 100 |
コーステーブルには PHP Basic
コースから Japan's History
コースまで5つのコードレコードを登録します。テーブルの詳細な内容については後述します。
カテゴリーテーブル
カテゴリー(categories
)テーブルはコース情報が所属するカテゴリーの一覧を管理します。
id | title |
---|---|
1 | Programming |
2 | Design |
3 | Marketing |
カテゴリーテーブルには Programming
カテゴリーから Marketing
カテゴリーまで3つのカテゴリーレコードを登録します。テーブルの詳細な内容については後述します。
まとめ
- データベースを操作するプログラミング言語をSQLという
- SQLは目的に合わせた構文が用意されている
- 一般的に、データベースの作成、テーブルの作成といった操作は最初に一度だけ行う