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