前回【SQL】 データベース超入門 – Microsoft Access編の続き
目次
データ定義の言語
ex.1)CREATE文でテーブルを作る
CREATE TABLE Users (
ID AutoIncrement CONSTRAINT Table1_PK PRIMARY KEY,
UserName Text,
Birthday DateTime,
Code Integer
)
ID AutoIncrement CONSTRAINT Table1_PK PRIMARY KEY,
UserName Text,
Birthday DateTime,
Code Integer
)
CREATE TABLE
SELECT文を使ったSQLとは違い、DDLというデータを定義する言語。
【構文】
CREATE TABLE [テーブル名] ( [フィールド名] [データ型]);
【データ型】
AutoIncrement・・・オートナンバー型
Text・・・テキスト型
DateTime・・・日付・時刻型
Integer・・・数値型
[テーブル名]_PK PRIMARY KEY
・・・主キーを表す
・・・主キーを表す
ex.2)INSERT文でデータを入れる
INSERT INTO Users (UserName, Birthday, Job)
VALUES (‘Sato’, #1999/9/9#, ‘Designer’);
VALUES (‘Sato’, #1999/9/9#, ‘Designer’);
INSERT
CREATE TABLEと同様にデータを定義する言語。
【構文】
INSERT INTO [テーブル名](フィールド) VALUES(データ);
ex.3)DROP TABLEでテーブルを消す
DROP TABLE Users;
DROP TABLE
データを消したいときに使う。
JOINについて
ex.1)直積(デカルト積)
SELECT * FROM Table1,Table2;
2つ以上のテーブルの中に存在するデータの「全ての組み合わせを表示する」
【構文】
SELECT * FROM [テーブル1],[テーブル2];
ex.2.)INNER JOIN
SELECT * FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID;
INNER JOIN
テーブルのデータとテーブルのデータをくっつけて検索することができる。
Relational Database(リレーショナルデータベース)
テーブルのデータとテーブルのデータをくっつけて検索することができる。
Relational Database(リレーショナルデータベース)
ex.3)LEFT OUTER JOIN
AとBをINNER JOINする場合は、「AにもあってBにもあるものを検索する」という処理なのに対して、AとBをLEFT OUTER JOINする場合は、「AからBに」という意味に変わり、「Aの全てと、AにもあってBにもあるものを検索する」という処理になる。
NULL値について
上のLEFT OUTER JOINで「AにあってBにない部分」はNULL値になる。
NULL値は値がないということであって、0というわけではない。
NULLを取り出すときのSQLの例
SELECT Table1.ID, Table1.Name,Table2.ID,Table2.Code
FROM Table1 LEFT OUTER JOIN Table2 ON Table1.ID = Table2.ID
WHERE Table2.ID Is Null;
FROM Table1 LEFT OUTER JOIN Table2 ON Table1.ID = Table2.ID
WHERE Table2.ID Is Null;
Is Null・・・値がNULLとなっているデータを指す