リレーショナルデータベース

リレーショナルデータベース

  • テーブルと呼ばれる領域にデータを保存していきます
  • リレーショナル型データベースは、RDB(アール・ディー・ビー)とも呼ばれます
RDBの構造
  • RDBは、関連するデータを全てテーブルと呼ばれる2次元の表にデータを格納します
  • テーブルのイメージは、Excelなどの表計算ソフトで扱うワークシートのようなものです


Excelとの違い
複数のテーブルをまとめて管理し、かつテーブルとテーブルの間に「関係(Relation)」を定義できる

テーブル
  • テーブル設計
  • 縦の列:フィールド=カラム(Column)
  • 横の行:レコード=ロウ(Row)
データ
  1. データベーススペースを作る
  2. テーブルを作る
  3. データを挿入する
代表的なリレーショナル型データベースのDBMS

商用DBMS
OracleOracle社)
SQLServerMicrosoft社)
DB2IBM社)
 

オープンソースDBMS
MySQL
PostgreSQL


MySQL

  • オープンソフト
  • XAMPPやMAMPには標準で組み込まれている
MySQLとライセンス
  • GNU(General Public License)GPLライセンスの規約に従う限り無償で使用することが可能
  • 商用ライセンス
SQLを使うには

SQLの種類

  • SQLは、いくつかのコマンドがありますが、以下のように分類されます
データ操作言語DML(Data Manipulation Language)
  • DML
  • DML文は、Data Manipulation Languageの略で、データの操作のコマンドを分類しています
  • テーブルにあるデータを削除したり、更新したり、新規のレコードを追加したり、検索したりします
  • データベース上のデータを操作する機能
  • データを検索する機能
  • データを入力する・抽出する


良く利用するコマンド

  1. INSERT INTO (レコードの新規登録、表データの挿入)
  2. UPDATE 〜 SET (レコードの値更新、表データの更新)
  3. DELETE FROM (レコードの削除、表から特定行データの削除)
  4. SELECT 〜 FROM 〜 WHERE (データの検索、表データの検索、結果集合の取り出し)
データ定義言語DDL(Data Definition Language)
  • DDL
  • データベースのデータを定義する機能
  • 表を作成する
  • 表の変更や削除する


良く利用するコマンド

  1. CREATE (テーブル作成、インデックス・制約などの作成)
  2. DROP (テーブル削除、インデックス・制約などの削除)
  3. ALTER (テーブル変更、インデックス・制約などの定義変更)
データ制御言語DCL(Data Control Language)
  • トランザクション制御
  • ユーザーのアクセスなどを管理する
  • 複数人のユーザーが同時に利用しても矛盾が発生しないようにする


良く利用するコマンド

  1. GRANT (データベース利用者に特定の作業を行う権限を与える)
  2. REVOKE (データベース利用者から既に与えた権限を剥奪する)
  3. SET TRANSACTION (トランザクションモードの設定)
  4. BEGIN (トランザクションの開始)
  5. COMMIT (トランザクションのコミット)
  6. ROLLBACK (トランザクションの取り消し)
  7. SAVEPOINT (任意にロールバック地点を設定する)
  8. LOCK (表などの資源を占有する)

よく使うSQL

基本の検索
SELECT 列名, …
FROM 表名
WHERE 条件;
あいまいな検索
SELECT 列名, …
FROM 表名
WHERE 列名 LIKE 'パターン';
並べ替え
SELECT 列名, …
FROM 表名
WHERE 条件
ORDER BY 列名;
集計・グループ化
SELECT 列名, …
FROM 表名
WHERE 条件
GROUP BY グループ化する列名
HAVING グループ行への条件;
表の結合
SELECT 列名, …
FROM 表名1, 表名2, …
WHERE 表名1.列名 = 表名2.列名;
実表の作成
CREATE TABLE 表名 (
 列の定義
);
ビュー表の作成
CREATE VIEW ビュー名
AS SELECT文;
実表の削除
DROP TABLE 表名;
ビュー表の削除
DROP VIEW ビュー名;
行の挿入
INSERT INTO 表明(列名, …)
VALUES(値,…);
行の更新
UPDATE FROM 表名
SET 列名 = 値, …
WHERE 条件;
行の削除
DELETE FROM 表名
WHERE 条件;

比較演算子(comparative operator)で条件を作成

  • 条件(condition)の指定方法を工夫することで、さまざまな抽出をおこなうことができます

比較演算子 意味 例の意味
A = B AとBが等しい 単価=200 単価が200
A > B AとBより大きい 単価>200 単価が200より大きい

A >= B

AとBより大きいか等しい 単価>=200 単価が200以上
A < B AとBより小さい 単価<200 単価が200未満
A <= B AとBより小さいか等しい 単価<=200 単価が200以下
A <> B AとBは等しくない 単価<>200 単価が200でない

論理演算子(logical operator)で条件を作成

  • 条件を組み合わせ、さらに複雑な条件を作成することができます

論理演算子 意味 例の意味
AND AかつB 商品コード>=200 AND 単価100 商品コードが200以上でかつ単価が100である
OR AまたはB 商品コード>=200 OR 単価100 商品コードが200以上かまたは単価が100である
NOT Aではない NOT 単価100 単価が100ではない