| MSDE FunClub |
|
最終更新日 : 2000/07/22 |
|
Microsoft Data Engine FunClub
|
Since 2000.07.22
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) |
|
【第2章172p 〜 174p掲載】 |
-- [DDL系SQL文の基礎(例題7)EX3-06.SQL]
-- SQLServer7.0 Transact-SQL言語
-- 日本技術ソフト開発 堀川 明
-- http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、
-- AccessのNorthwindデータベースの[社員]テーブル
-- と同じテーブル構造を作成するものです
--
-- これから操作する既定のデータベースを MySampleTest にします
USE MySampleTest
GO
-- ( 件処理されました)のメッセージの表示を抑止します
SET NOCOUNT ON
GO
-- 既存の社員テーブルがあればそれを削除する
IF EXISTS (SELECT name FROM sysobjects
WHERE name = '社員' AND type = 'U ')
BEGIN
DROP TABLE 社員
PRINT '社員テーブルを削除しました'
END
GO
-- 新しく社員テーブルを作ります
-- Accessのテーブル設計をコメントで入れましたので、それと比較しましょう
-- 値要求[いいえ]とは、NULL値を認めるものです
-- 値要求[ はい ]とは、NULL値を禁止するものです(NOT NULL制約)
-- 空文字列の許可[いいえ]とは、長さ0の文字列入力を禁止するものです
CREATE TABLE 社員
(
--主キー設定(主キーでは、NULL値は禁止です)
社員コード int NOT NULL
CONSTRAINT PK_社員表 PRIMARY KEY ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[いいえ]
フリガナ varchar(80) CHECK( フリガナ < > '' ) ,
--値要求[はい] 空文字列の許可[いいえ] Index[重複あり]
--[重複あり]のインデックスは、CREATE INDEXで作成する
氏名 varchar(40) NOT NULL CHECK( 氏名 < > '' ) ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[いいえ]
在籍支社 varchar(20) CHECK( 在籍支社 < > '' ) ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[いいえ]
部署名 varchar(30) CHECK( 部署名 < > '' ) ,
--値要求[いいえ] Index[いいえ] 入力規則[< Date()]
--GETDATE()関数は、現在の日付時刻を求めます
誕生日 datetime CHECK( 誕生日 < GETDATE() ) ,
--値要求[いいえ] Index[いいえ]
入社日 datetime ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[重複あり]
自宅郵便番号 varchar(10) CHECK( 自宅郵便番号 < > '' ) ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[いいえ]
自宅都道府県 varchar(40) CHECK( 自宅都道府県 < > '' ) ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[いいえ]
自宅住所1 varchar(60) CHECK( 自宅住所1 < > '' ) ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[いいえ]
自宅住所2 varchar(60) CHECK( 自宅住所2 < > '' ) ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[重複あり]
自宅電話番号 varchar(24) CHECK( 自宅電話番号 < > '' ) ,
--値要求[いいえ] 空文字列の許可[いいえ] Index[いいえ]
内線 varchar(4) CHECK( 内線 < > '' ) ,
--値要求[いいえ]
写真 image ,
--値要求[いいえ] 空文字列の許可[いいえ]
--残念ながら TEXT型にCHECK制約は作れません
プロフィール text
)
GO
-- 列に検索用インデックスを付ける
CREATE INDEX IDX_氏名 ON 社員( 氏名 )
CREATE INDEX IDX_自宅郵便番号 ON 社員( 自宅郵便番号 )
CREATE INDEX IDX_自宅電話番号 ON 社員( 自宅電話番号 )
GO
PRINT '社員テーブルを作成しました'
GO