MSDE FunClub | 最終更新日 : 2000/07/22 | |
Microsoft Data Engine FunClub |
|
|
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