プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

【SQL】 データベース超入門 – Microsoft Access編その2

  • 2017年6月18日
  • 2017年6月21日
  • SQL
  • 37view
  • 0件
SQL

前回【SQL】 データベース超入門 – Microsoft Access編の続き

データ定義の言語

ex.1)CREATE文でテーブルを作る

CREATE TABLE Users (
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’);

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(リレーショナルデータベース)

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;

Is Null・・・値がNULLとなっているデータを指す