データベースを理解する 009「数字と数値」
前回、社員テーブルの社員番号のデータ型を「文字列型の4文字」にしてみました。
この、4文字を超える値を社員番号列に入れようとすると制約違反になりますが、4文字以内であれば「021A」のような数字以外の文字列は登録できてしまいます。
列のデータ型には、整数型・数値型(小数点以下あり)のように、数値を扱うデータ型もあるので、「021A」が入力できないように社員番号を整数型にしてみました。
社員番号:整数型
社員名 :文字列型の50文字
その上で↓の値を登録してみました。
・社員番号=0212
・社員名=Z坂 X人
社員番号 | 社員名
========+===========
1759 | A山 B郎
2827 | C田 D彦
3339 | E口 F子
4210 | G本 H行
4211 | N藤 Z子
212 | Z坂 X人
あれ、頭の「0」が落ちてしまいました。。。
「0212」という文字列ではなく、「212(二百十二)」という数値としてテーブルは扱ってしまっています。
* * * * * *
数字、数値を辞書を引いて調べてみましょう。
数字は「数を示す文字.算用数字・漢数字など」、
数値は「計算して得た数」です。
「2016年入社が20人いるから、入社年度と1からの連番で社員番号を採番しよう」というようなルールの場合、以下の通り採番されますが、二十万千六百一のような値に何か意味があるかというと、無いでしょう。
201601,201602,201603…,201620
社員番号を数値として扱うことは無いでしょうから、ここでは数字4文字が入る文字列型のデータ型がが正しいと言えます。
* * * * * *
では改めて定義を↓にして…
社員番号:文字列型の4文字
社員名 :文字列型の50文字
データを登録!
社員番号 | 社員名
========+===========
1759 | A山 B郎
2827 | C田 D彦
3339 | E口 F子
4210 | G本 H行
4211 | N藤 Z子
0212 | Z坂 X人
登録できました。