プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【SQL Server(連載)】テーブルの作成 -20-

www.pon-x.jp

前回の続き

これまで基本的なSQL文のSELECT、UPDATE、INSERTをやってきました。
これだけできればけっこうできることも多いので、例えば事務職の方がデータを利活用したいってときにはある程度実用できるスキルだとおもいます。

さて、今日からは若干応用的な内容に入っていこうと思います。
今回はテーブルの作成です。

CREATE TABLE

テーブルをつくるということは、データをいじっていくための基盤になるのですごく大切なのですが、操作以上に設計となるので考えることが多くなってきます。

ではやっていきましょう。まずテーブルを作る際に絶対に必要なことは、テーブル名の定義と、カラム名およびカラム情報の定義です。
こんなかんじにかきます。

CREATE TABLE [テーブル1]
(
    [カラム名] [データ型] [NULL or NOT NULL],
    [カラム名] [データ型] [NULL or NOT NULL],
    [カラム] 名[データ型] [NULL or NOT NULL],
    ・・・
)

試しに、こんなテーブルを作ってみます。

CREATE TABLE Telephone_List
(
    No INT NOT NULL IDENTITY(1, 1) Primary key,
    NAME NVARCHAR(50) NOT NULL,
    AGE INT NOT NULL,
    TEL NVARCHAR(20) NULL
)

説明します。

  1. テーブル名は「Telephone_List」
  2. カラムは4つ
    • No ・・・数値型で自動採番。主キー設定。NULLは拒否する。
    • NAME ・・・最大50字までの文字型でNULLは拒否する。
    • AGE ・・・整数型でNULLは拒否する。
    • TEL ・・・最大20字までの文字型でNULLを許容する。

IDENTITY

IDENTITYは通し番号を振ってくれます。
IDENTITY(開始番号, 増加数)といった書き方になります。

Praimary key

主キーとも呼ばれますが、Primary keyを設定することはとても大事です。
Primary keyはレコードを一意に特定することができることを意味し、ユニーク(重複がない)なカラムであることを指定します。
必ずしも1カラムに限定されることはないのですが、あまり多くしすぎるとパフォーマンスが下がるので、そのような際はテーブルを分けてあげる設計の方がよいと思います。
今回は、IDENTITYで自動採番にしているので、かならず1カラムでユニークになります。

どういう所で使われるかというと、たとえば学校の学籍番号、病院の診察番号などがあげられます。
これらはユニークにしないと、個人が特定できないからPrimary keyに設定されているテーブルがデータベースにはほぼ存在しているでしょう。

やってはいけないのは、氏名やタイトルなどです。
同姓同名の人っていますからね。

データを入れてみる。

作成したテーブルにデータを入れて参照してみる。

INSERT INTO Telephone_List
VALUES(
    'Tanaka Taro',
    25,
    '0120-000-000'
),
(
    'Sato Jiro',
    15,
    '0120-111-111'
),
(
    'Yoshida Hanako',
    34,
    '0120-222-22'
)

SELECT * FROM  Telephone_List

こんなかんじです。
f:id:hanabusa-snow:20201205221203p:plain







以上今回はここまで。