前回の続き
これまで基本的な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 )
説明します。
- テーブル名は「Telephone_List」
- カラムは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
こんなかんじです。
以上今回はここまで。