?
上次課程回顧:
在上一次課程中, 我們熟悉了如下操作
1>? 使用服務管理器啟動,暫停,停止SQLServer服務
2>? 使用企業(yè)管理器來創(chuàng)建組,添加注冊操作
3>? 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫,修改數(shù)據(jù)庫相關屬性
4>? 使用企業(yè)管理器刪除數(shù)據(jù)庫
5>? 使用企業(yè)管理器分離附加數(shù)據(jù)庫
???
?
上機課程準備
在上一次課程之中,我們通過使用企業(yè)管理器為學員管理系統(tǒng)創(chuàng)建了數(shù)據(jù)庫,數(shù)據(jù)庫保存在了STUDataBase文件夾下,數(shù)據(jù)庫的名字為Student.
?
在課后同學們把Student數(shù)據(jù)庫分離,拷貝到了各自的U盤上,在今天的課程中,我們在開始今天的上機課程之前需要先把U盤里面數(shù)據(jù)庫信息拷貝到機房的F盤之中,然后在企業(yè)管理器中進行附加操作.
?
?
?
第二章SQLServer數(shù)據(jù)庫表管理
?
一. 上機目標
a.? 熟練使用企業(yè)管理器創(chuàng)建數(shù)據(jù)表
b.? 為實現(xiàn)數(shù)據(jù)表中間數(shù)據(jù)完整性,為創(chuàng)建好的數(shù)據(jù)表加上約束,包括以下約束
a)??主鍵
b)??標識列
c)??數(shù)據(jù)類型
d)??非空約束
e)??默認值
f)??檢查約束(check)
g)??外鍵引用約束
?
二. 上機步驟講解
a.? 使用企業(yè)管理器完成上次課創(chuàng)建的Student數(shù)據(jù)庫附加操作
b.? 在企業(yè)管理器中打開Student數(shù)據(jù)庫,按照以下要求創(chuàng)建數(shù)據(jù)表
在數(shù)據(jù)庫中創(chuàng)建4張表,表面和作用描述如下
?
?
表
表名
作用
備注
學員信息表
StudentInfo
存儲學員的個人信息
?
學員成績表
StudentExam
存儲學員的成績信息
?
班級信息表
ClassInfo
存儲班級信息
?
班主任信息表
TeacherInfo
存儲班主任信息
?
?
以上4張表的詳細結(jié)構(gòu)如下
?
?
表1 學員信息表
?
表名:StudentInfo
主鍵:StuID
列名
數(shù)據(jù)類型
長度
是否允許空
默認值
要求
描述
StuID
Int
4
不允許
?
標識列
本條記錄編號
StuNumber
Varchar
10
不允許
?
?
學員學號
StuName
varchar
32
不允許
?
?
學員姓名
StuAge
Int
4
允許
?
年齡必須在16-35歲之間
學員年齡
StuSex
Varchar
2
不允許
‘男’
性別必須是
‘男’或者’女’中間的一個
學員性別
StuCard
Varchar
20
允許
?
?
學員身份證號碼
StuJoinTime
DateTime
8
不允許
?
?
學員入學時間
StuAddress
Varchar
50
允許
?
?
學員家庭住址
RClassID
Int
4
允許
?
外鍵, 引用ClassInfo表的主鍵ClassID
學員所在班級ID
?
?
表2 學員成績表
?
表名:StudentExam
主鍵: ExamID
列名
數(shù)據(jù)類型
長度
是否允許空
默認值
要求
描述
ExamID
Int
4
不允許
?
標識列
本條記錄編號
ExamNumber
Varchar
32
不允許
?
?
本次考試代號
EStuID
Int
4
不允許
?
外鍵,引用StudentInfo表的主鍵StuID
學員信息ID
ExamSubject
Varchar
20
不允許
?
?
本次考試課程名稱
ExamResult
Int
4
允許
?
成績的取值范圍在0-100分之間
學員成績
?
?
表3 班級信息表
?
表名:ClassInfo
主鍵:ClassID
列名
數(shù)據(jù)類型
長度
是否允許空
默認值
要求
描述
ClassID
Int
4
不允許
?
標識列
本條記錄編號
ClassNumber
Varchar
20
不允許
?
?
班級編號(名稱)
CTeacherID
Int
4
不允許
?
外鍵,引用TeacherInfo表的主鍵
班主任ID
ClassGrade
Varchar
2
不允許
‘s1’
取值范圍在’s1’,’s2’,’y2’三個值之中
班級所在年級
?
?
表4班主任信息表
?
表名:TeacherInfo
主鍵:TeacherID
列名
數(shù)據(jù)類型
長度
是否允許空
默認值
要求
描述
TeacherID
Int
4
不允許
?
標識列
本條記錄編號
TeacherName
Varchar
20
不允許
?
?
班主任姓名
TeacherTel
Varchar
20
允許
?
?
班主任電話
TeacherEmail
Varchar
20
允許
?
電子郵箱含有’@’符號
班主任電子郵箱(email)
?
提示:電子郵箱中含有’@’符號的約束 可以采用 check約束
??? ? 表達式可以寫成 TeacherEmail like ‘%@%’
?
c.? 創(chuàng)建以上4張表之后,為這4張表建立關系圖
d.? 將創(chuàng)建的表和關系圖保存,分離數(shù)據(jù)庫,拷貝STUDataBase文件夾中的文件(應該包括主數(shù)據(jù)文件.MDF和日志文件.LDF)至U盤。(數(shù)據(jù)庫需要妥善保存,后續(xù)課程中需要使用)
?
思考:數(shù)據(jù)庫中的表如何復制?
如果另一個庫中沒有同名的表?
select ? * ? into ? b數(shù)據(jù)庫.dbo.a表 ? from ? a數(shù)據(jù)庫.dbo.a表 ? where ? 條件?
如果是追加到另一個表中?
inert ? into ? b數(shù)據(jù)庫.dbo.a表?
select ? * ? from ? ? ? a數(shù)據(jù)庫.dbo.a表 ? where ? 條件
三.課后作業(yè)
1.? 完成第二章課后習題
2.? 了解論壇相關知識,完成教材第二章上機部分任務
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??2013.11.29 數(shù)據(jù)庫第二次課