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

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

  • テーブルと呼ばれる領域にデータを保存していきます
  • リレーショナル型データベースは、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の機能

データ定義言語DDL(Data Definition Language)
  • データベースの枠組みを作成する機能
  • 表を作成する
  • 表の変更や削除する
  • CREATE (データベース表、インデックス、制約などの作成)
  • DROP (データベースオ表、インデックス、制約などの削除)
  • ALTER (データベース表、インデックス、制約などの定義変更)
データ操作言語DML(Data Manipulation Language)
  • データベース上のデータを操作する機能
  • データを検索する機能
  • データを入力する・抽出する
  • INSERT INTO (表データの挿入)
  • UPDATE 〜 SET (表データの更新)
  • DELETE FROM (表から特定行データの削除)
  • SELECT 〜 FROM 〜 WHERE (表データの検索、結果集合の取り出し)
データ制御言語DCL(Data Control Language)
  • ユーザーのアクセスなどを管理する
  • 複数人のユーザーが同時に利用しても矛盾が発生しないようにする
  • GRANT (データベース利用者に特定の作業を行う権限を与える)
  • REVOKE (データベース利用者から既に与えた権限を剥奪する)
  • SET TRANSACTION (トランザクションモードの設定)
  • BEGIN (トランザクションの開始)
  • COMMIT (トランザクションのコミット)
  • ROLLBACK (トランザクションの取り消し)
  • SAVEPOINT (任意にロールバック地点を設定する)
  • 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ではない