任務7創建教務管理數據庫系統

創建名爲JWGL_DB的數據庫,包含一個主數據文件和一個事務日誌文件。主數據文件的邏輯名爲JWGL_DB_DATA,操作系統文件名爲JWGL_DB_DATA.MDF,初始容量大小爲5MB,最大容量爲20MB,文件的增長量爲20%。事務日誌文件的邏輯文件名爲JWGL_DB_LOG,物理文件名爲JWGL_DB_LOG.LDF,初始容量大小爲5MB,最大容量爲10MB,文件增長量爲2MB,最大空間不受限制。數據文件與事務日誌文件都放在H盤指定目錄下

--(1)
Create DataBase JWGL_DB
On Primary(
Name = JWGL_DB_DATA,
FileName = 'H:\Sql Server\SQLDataBase\JWGL_DB_DATA.MDF',
Size = 5MB,
MaxSize = 20MB,
FileGrowth = 20%)

Log On
(Name=JWGL_DB_LOG,
FileName = 'H:\Sql Server\SQLDataBase\JWGL_DB_LOG.LDF',
Size = 5MB,
MaxSize = 10MB,
FileGrowth  =2MB
)
go

use  [JWGL_DB]
go
--(2)
Create Table 學校
(學校編號 int identity(1,1) Constraint [column_學校(學校編號)_pk] Primary key not null,
學校名稱 varchar(30) not null,
)

Create Table 學院
(學院編號 int identity(1,1) Constraint [column_學院(學院編號)_pk] Primary Key not null,
學院名稱 varchar(20) not null,
學校編號 int not null
Constraint [FK學院(學校編號)] Foreign Key
	References 學校(學校編號)
On Delete Cascade On Update Cascade
)

Create Table 專業
(專業編號 int identity(1,1) Constraint [column_專業(專業編號)_pk] Primary key not null,
專業名稱 varchar(20) not null,
學院編號 int not null
Constraint [FK專業(學院編號)] Foreign Key
	References 學院(學院編號)
On Delete Cascade On Update Cascade
)

Create Table 班級
(
班級編號 int identity(1,1) Constraint [column_班級(班級編號)_pk] Primary Key not null,
班級名稱 varchar(20) not null,
專業編號 int not null
Constraint [FK班級(專業編號)] Foreign Key
	References 專業(專業編號)
On Delete Cascade On Update Cascade
)

Create Table 學生
(
學號 char(12) Constraint [column_學生(學號)_pk] Primary Key not null,
姓名 varchar(20) not null,
性別 bit check(性別=0 or 性別=1) null ,
手機號 varchar(20) null,
家庭電話 varchar(20) null,
家庭地址 varchar(50) null,
備註 nvarchar(Max) null,
班級編號 int not null
Constraint [Fk學生(班級編號)] Foreign Key
	References 班級(班級編號)
On Delete Cascade On Update Cascade
)
use JWGL_DB
go

--2013-06-02-19:24
/*alter table 學生
add 註冊日期 datetime default(getdate()) null*/


Create Table 教師
(
教師編號 int identity(1,1) Constraint [column_教師(教師編號)_pk] Primary Key not null,
姓名 varchar(20) not null,
性別 char(1) default('0') check(性別='0' or 性別='1'),
手機號碼 varchar(20) not null
)

Create Table 課程
(
課程編號 int identity(1,1) constraint [column_課程(課程編號)_pk] Primary Key not null,
課程名稱 varchar(50) not null,
學分 tinyint constraint ck_學分 check(學分>0 and 學分 <100),
開課學年 date constraint ck_開課學年  null,		--delete check(DateDiff(year,開課學年,getDate())=0) 
開課學期 tinyint constraint ck_開課學期 check(開課學期>0) null,
理論學時 tinyint constraint ck_理論學時 check(理論學時>0) null,
實踐學時 tinyint constraint ck_實踐學時 check(實踐學時>0) null,
備註 nvarchar(Max) null,
課程類型 varchar(20) constraint ck_課程類型 check(課程類型 = '一體化' or 課程類型='純理論' or 課程類型='純實踐') null,
核心課程 bit constraint ck_核心課程 check(核心課程 = 0 or 核心課程=1)  null,
課程性質 varchar(20) constraint ck_課程性質 check(課程性質 = '必修課' or 課程性質='選修課') null,
考覈方式 varchar(20) constraint ck_考覈方式 check(考覈方式 = '考試' or 考覈方式='考查') null,
課程歸屬 varchar(20) constraint ck_課程歸屬 check(課程歸屬 = '基本素質與能力課' or 課程歸屬='職業能力課') null,
)


--alter table 課程
--add column 專業編號 int not null Constraint [Fk課程(專業編號)] Foreign Key
--	References 專業(專業編號) On Delete Cascade On Update Cascade, 

/*alter table 課程
add 課程歸屬 varchar(20) constraint ck_課程歸屬 check(課程歸屬 = '基本素質與能力課' or 課程歸屬='職業能力課') null
*/
/********爲多對多關係的實體類創建中間表***********/
Create Table 專業_課程
(專業編號 int not null Constraint [Fk專業_課程(專業編號)] Foreign Key
	References 專業(專業編號) On Delete Cascade On Update Cascade,			--此處應該引用
課程編號 int not null Constraint [Fk專業_課程(課程編號)] Foreign Key 
	References	課程(課程編號) On Delete Cascade On Update Cascade,
constraint column_專業編號_課程編號_pk Primary Key(專業編號,課程編號)
)

Create Table 學生_課程
(學號 char(12) not null Constraint [FK學生_課程(學號)] Foreign Key
	References 學生(學號) On Delete Cascade On Update Cascade,
課程編號 int not null Constraint [FK學生_課程(課程編號)] Foreign Key
	References 課程(課程編號) On Delete Cascade On Update Cascade,
課程成績 tinyint constraint ck_課程成績 check(課程成績>=0 and 課程成績<=100) null,
constraint column_學生編號_課程編號_pk Primary Key(學號, 課程編號)
)

Create Table 教師_課程
(
教師編號 int not null Constraint [FK教師_課程(教師編號)] Foreign Key
	References 教師(教師編號) On Delete Cascade On Update Cascade,
課程編號 int not null Constraint [FK教師_課程(課程編號)] Foreign Key
	References 課程(課程編號) On Delete Cascade On Update Cascade,
課程名稱 varchar(20) not null,
Constraint column_教師編號_課程編號_pk Primary Key(教師編號,課程編號)
)
--(3)
/*********對多值屬性處理***********/

/*Create Table 課程類型
(
	課程類型編號 int identity(1,1) Constraint column_課程類型編號_pk Primary Key not null,
	課程類型名稱	char(12) not null,
	課程編號 int null Constraint [FK課程類型(課程編號)] Foreign Key 
	References 課程(課程編號)
)

Create Table 課程_課程類型
(
	課程類型編號 外鍵
	課程編號	外鍵
)

Create Table 核心課程
(
	核心課程編號 int identity(1,1) Constraint column_核心課程編號_pk Primary Key not null,
	核心課程名稱	char(12) not null,
	課程編號 int null Constraint [FK核心課程(課程編號)] Foreign Key 
	References 課程(課程編號)
)

Create Table 課程性質
(
	課程性質編號 int identity(1,1) Constraint column_課程性質編號_pk Primary Key not null,
	課程性質名稱	char(12) not null,
	課程編號 int null Constraint [FK課程性質(課程編號)] Foreign Key 
	References 課程(課程編號) 
)

/*Create Table 考覈方式
(
	考覈方式編號 int identity(1,1) Constraint column_考覈方式編號_pk Primary Key not null,
	考覈方式名稱	char(12) not null,
	課程編號 int null Constraint [FK考覈方式(課程編號)] Foreign Key 
	References 課程(課程編號)
)

Create Table 課程歸屬
(
	課程歸屬編號 int identity(1,1) Constraint column_課程歸屬編號_pk Primary Key not null,
	課程歸屬名稱	char(12) not null,
	課程編號 int null Constraint [FK課程歸屬(課程編號)] Foreign Key 
	References 課程(課程編號)
)*/
--(4)Other SQK practice tests
select *        
from [sys].check_constraints

select name                       
from [sys].foreign_keys

/*
alter table 教師_課程
drop constraint [FK教師_課程(課程編號)]
alter table 教師_課程           
add Constraint [FK教師_課程(課程編號)] Foreign Key(課程編號) 
	References	課程(課程編號) On Delete Cascade On Update Cascade
*/
*/

alter table Table_1
add Constraint [FKTable_1(TypeId)] Foreign Key(TypeId)
	References Table_2 On Delete Cascade On Update Cascade

寫於2013-06-02-19:24

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章