この特集のトップページへ
>
Chapter 3:データストア層の構築
3.4.2 テーブルを定義する
データベースを作成したら,次にテーブルを構成する。データベースを作り終えると,Fig.3-36に示すウィンドウが表示されるので,左側から[オブジェクト]内にある[テーブル]をクリックし,そのあと[新規作成]ボタンを押すか,もしくは右側に表示されている[デザインビューでテーブルを作成する]をダブルクリックする。
Fig.3-36 データベースのウィンドウ
すると,Fig.3-37に示すように,作成するテーブル名を問われるので,任意のテーブル名を入力する。ここではまず,Table 3-23に示した顧客情報テーブルを作成することにし,テーブル名に“顧客情報”と入力する。
Fig.3-37 テーブル名の入力
テーブル名を入力したら,Fig.3-38に示すウィンドウでテーブルを定義することができる。Table 3-23で示したとおり,テーブルを構築する。
Fig.3-38 テーブルの構築
Fig.3-38における各項目の意味は,次のとおりである。
- ・列名
- 列の名前(フィールド名)を入力する。
- ・データ型,長さ,精度,桁数
データ型には,その列の型を入力する。具体的には,Table 3-31のいずれかを選択することになる。文字型を選択したときには長さ,decimal型およびnumeric型を選択したときには精度および桁数も設定する。
Table 3-31 データ型
データ型
解説
bit
ビット型。長さに1を指定したときには,Visual BasicでいうところのBoolean型に相当し,0がFalse,1がTrueに対応する
int
4バイトの整数型。Visual BasicでいうところのLong型に相当する。−2,147,483,648〜+2,147,483,647の値
smallint
2バイトの整数型。Visual BasicでいうところのInteger型に相当する。−32,768〜+32,767の値
tinyint
1バイトの整数型。Visual BasicでいうところのByte型に相当する。0〜255の値
decimal
10進数型(BCD型)。固定小数点の10進数で格納される型であり,10進数のまま計算するため,小数を示すときでも2進数変換への誤差がない。decimal型を選択したときには,示したい桁数(1〜38)を精度として,小数点位置(下何桁が小数以下を示すのか)を桁数として,それぞれ指定する
numeric
decimal型と同じ
money
金銭型。Visual BasicでいうところのCurrency型に相当する。−922,337,203,685,477.5808〜+922,337,203,685,477.5807の値
smallmoney
金銭型。−214,748.3648〜+214,748.3647の値
float
浮動小数点型。−1.79E+308〜+1.79E+308の値
real
浮動小数点型。−3.40E+38〜+3.4E+38の値
datetime
日付時刻型。1753年1月1日〜9999年12月31日の値
smalldatetime
日付時刻型。1900年1月1日〜2079年6月6日の値
cursor
カーソル型。レコードの場所を指し示すのに用いる
timestamp
データベースレベルで唯一無二な番号。システム時刻
uniqueidentifier
GUID(実行するたびに唯一無二の値を発生する128ビットの値)
char
Unicodeではない固定長文字列。最大8,000文字まで格納できる。定義された文字数未満のデータを格納した場合には,足りない部分が空白で埋められる
varchar
Unicodeではない可変長文字列。最大8,000文字まで格納できる
text
Unicodeではない可変長文字列。最大2,147,483,647文字まで格納できる
nchar
Unicodeの固定長文字列。最大4,000文字まで格納できる。定義された文字数未満のデータを格納した場合には,足りない部分が空白で埋められる
nvarchar
Unicodeの可変長文字列。最大4,000文字まで格納できる
ntext
Unicodeの可変長文字列。最大1,073,741,823文字まで格納できる
binary
固定長のバイナリデータ。最大8,000バイト格納できる。定義されたバイト数未満のデータを格納した場合には,足りない部分が0で埋められる
varbinary
可変長のバイナリデータ。最大8,000バイト格納できる
image
可変長のバイナリデータ。最大2,147,483,647バイト格納できる
- ・NULLを許容
- その列にNULL値を格納できるかどうかを指定する。チェックを付けると,NULL値を許すことになる。ただし,bit型のフィールドは,NULL値を格納することはできない。
- ・既定値
- レコードを作成したときにデフォルトで格納したい値を設定する。
- ・IDENTITY,IDENTITYシード,IDENTITYインクリメント
- そのフィールドに自動的に連番(オートナンバー)を割り当てたい場合には,IDENTITYにチェックを付ける。IDENTITYにチェックを付けることができるのは,データ型として,int,smallint,tinyint,decimal(ただし桁数が0)のどれかを設定した場合のみである。
IDENTITYにチェックを付けたとき,IDENTITYシードが連番の初期値,IDENTITYインクリメントが連番の増分となる。たとえば,IDENTITYシードに0,IDENTITYインクリメントに1を設定した場合,0,1,2,…という連番が自動的に割り当てられるようになる。 - ・Is RowColGuid
- この行に対して,自動的にGUIDを設定するかどうかを指定する。Is RowColGuidにチェックを付けることができるのは,データ型としてuniqueidentifierを設定したときだけである。この項目にチェックを付けると,レコードを作成するたびに,自動的に新しいGUID(これは唯一無二の128ビット値となる)が生成され,格納される。
たとえば,Table 3-23に示した顧客情報テーブルを構築する場合には,Fig.3-39のようになる。
Fig.3-39 顧客情報テーブルの作成
テーブルを入力し終えたら,主キーを割り当てる。主キーは,レコード間で唯一無二の値であり,レコードを識別するために使われる。主キーが設定されると,インデックスが生成され,データベースに高速にアクセスできるようになる。
Table 3-23で示した顧客情報テーブルの場合には,IDフィールドがレコードを特定する唯一無二の値を格納するフィールドなので,それを主キーに割り当てる。主キーとするには,その列(フィールド)を右クリックし,表示されたメニューから[主キー]を選択する(Fig.3-40)。
Fig.3-40 主キーの設定
以上の設定が終わったら,テーブルウィンドウの右上にある[×]ボタンを押してテーブルウィンドウを閉じる。すると,Fig.3-41に示す確認のメッセージが表示されるので,[はい]ボタンを押す。これで,指定したテーブルがMSDE上に作成される。
Fig.3-41 テーブル変更の確認
同様の方法で,Table 3-24〜Table 3-30に示したテーブルを作成すると,Fig.3-42〜Fig.3-48のようになる。
Fig.3-42 製品情報テーブルの作成
Fig.3-43 在庫情報テーブルの作成
Fig.3-44 伝票情報テーブルの作成
Fig.3-45 明細情報テーブルの作成
Fig.3-46 伝票追加情報テーブルの作成
Fig.3-47 請求書情報情報テーブルの作成
Fig.3-48 履歴テーブルの作成
Chapter 3 19/22 |