140227訓練

投稿者: | 2014年2月27日

今日も正規化について。

昨日と同じように解説サイトを見てお勉強。

正規化の勉強に使ったサイト

第4回 データベースの正規化 – OSS-DB

基本情報技術者 平成21年春期 午前問32 – 基本情報技術者試験.com

できるエンジニアになるちょい上DB術・基礎(7):【DB概論】正規化の手順 (1/2) – @IT

できるエンジニアになる! ちょい上DB術・基礎編(1):【DB概論】データベースシステムに求められる要件 – @IT

データベースエンジニアへの道(3):素早く正規形を見抜く実践テクニック (1/4) – @IT
(記事内のテーブル画像にリンクしています)

テーブルの内部結合

INNER JOIN句を使って異なるテーブルのカラムを結合する。
ONで結合条件の指定をする。

SELECT * FROM テーブル1 INNER JOIN テーブル2 ON テーブル1.フィールド1-1 = テーブル2.フィールド2-1;

テーブル1のフィールド1-1の値にテーブル2のフィールド2-1の値で一致するものがあるか検索して、一致したものを同じレコードとして取得する。
一致しなかった場合、データの取得はしない。

外部結合

LEFT JOIN句またはRIGHT JOIN句を使って異なるテーブルのカラムを結合する。
内部結合とは違い、カラムが一致しなかったデータも取得する。

SELECT * FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.フィールド1-1 = テーブル2.フィールド2-1;

テーブル1のフィールド1-1の値にテーブル2のフィールド2-1の値で一致するものがあるか検索して、一致したものを同じレコードとして取得する。
一致しなかった場合、カラムの値をNULLにしてデータを取得する。

SELECT * FROM テーブル1 RIGHT JOIN テーブル2 ON テーブル1.フィールド1-1 = テーブル2.フィールド2-1;

テーブル2のフィールド2-1の値にテーブル1のフィールド1-1の値で一致するものがあるか検索して、一致したものを同じレコードとして取得する。
一致しなかった場合、カラムの値をNULLにしてデータを取得する。

LEFTとRIGHTでどちらが軸になるかが変わる。

USINGを使った結合条件の指定

ON句ではなくUSING句を使って条件指定する。

SELECT * FROM テーブル1 INNER JOIN テーブル2 USING(テーブル1とテーブル2で同一名称のフィールド);

同一名称のフィールドで無ければ結合できない。
指定したカラムが先頭に表示される。

自然結合

NATURALを使ってONもUSINGも使わないで結合する。
同一名称のカラムが自動的に結合する。

SELECT * FROM テーブル1 NATURAL LEFT JOIN テーブル2;

今日はほぼこちらのサイトさんを使っての勉強でした。
データの取得 – MySQLの使い方


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.