解説
「データベース」は、複数の人やプログラムやシステムで共有して利用することを前提として、情報を蓄積して検索可能にした、情報の集まりのことです。電話帳や住所録の、コンピュータ版を想像するとよいでしょう。
データベースに、どのようにデータを格納するかは「データモデル」で決められています。一定のルールでデータを格納して、取り出すようになっているわけです。このデータモデルには、階層型データモデル、ネットワーク型データモデル、リレーショナルデータモデル、オブジェクトデータモデルなどがあります。現在最も普及しているのは、「リレーショナルデータモデル」になります。
また、データベース内の情報は、専用のソフトウェアである「データベース管理システム(DBMS = DabaBase Management System)」によって管理されます。
さて現在主流の「リレーショナルデータモデル」(関係モデル)は、数学の集合論に基づきデータを扱います。これは、エドガー・F・コッドという人が考案したデータベースモデルです。このリレーショナルデータモデルを扱うデータベース言語の代表格がSQLで、最も普及しています。
SQLでは、各種命令を利用して、テーブルの作成や削除、データの挿入や変更、選択や削除ができます。
また、SQLにはさまざまな実装があります。代表格の「MySQL」以外にも、PostgreSQL、SQLiteなど、さまざまな種類が利用されています。
サンプル
「ideone」を利用した、「SQLite」のサンプルです。
/* 表の表示形式を変更 */
.header on
.mode column
/* userテーブルを作成 */
create table user (
id integer not null,
name text not null,
age integer not null
);
/* 行を追加 */
insert into user values(1, 'Tanaka', 36);
insert into user values(2, 'Satou', 25);
insert into user values(3, 'Watanabe', 28);
insert into user values(4, 'Kubo', 19);
/* userテーブルを全て出力 */
select * from user;
/* userテーブルから、nameとageを、20~29歳で降順出力 */
select name, age from user
where age between 20 and 29
order by age desc;
id name age ---------- ---------- ---------- 1 Tanaka 36 2 Satou 25 3 Watanabe 28 4 Kubo 19 name age ---------- ---------- Watanabe 28 Satou 25
