数据库33472Word文档格式.docx
《数据库33472Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库33472Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
自定义数据类型myDept为char(50),允许为空。
提示:
新建查询,在查询窗口中使用CREATETYPE…FROM命令。
参考PPT中的[例2]
二、创建表
1、使用MicrosoftSQLServerManagementStudio在teachingDataA数据库中建立TInfo表。
该表的表结构如下:
列名
数据类型
长度
备注
TID
myID
设为关键字
TName
myName1
不能为空
Sex
char
2
其值只能为“男”或“女”,默认值为“男”
Dept
myDept
允许为空
Birthday
smalldatetime
Title
varChar
10
homeTel
nchar
8
MPhone
11
只允许为数字,允许为空
创建表----展开库teachingDataA/右击“表”/选择“新建表”命令。
设置主键----右击TID,选择“设置主键”
设置sex值的默认值为“男”----在sex的列属性中设置“默认值或绑定”为:
’男’(注意引号必须在西方状态下输入)
设置sex值只能为“男”或“女”----右击字段sex/选择CHECK约束/单击“添加”按钮/输入CHECK约束表达式为:
sex='
男'
ORsex='
女'
参考PPT中[例3]
完成后关闭创建数据库窗口,并在弹出的确认框中单击“保存”按钮,然后输入表名Tinfo。
2、使用T-SQL命令在teachingDataA数据库中创建表SInfo表、CInfo和ScoreInfo。
SInfo表的表结构如下:
SID
SName
其值只能为“男”或“女”,默认值为“男”,
major
varchar
30
Class
18
IDCardNo
不允许为空
参考PPT中[例4]
CREATETABLESInfo
(SIDmyIDprimarykey,
SnamemyName1NOTNULL,
Sexchar
(2)default'
check(sex='
orsex='
),
BirthDaysmalldatetimeNULL,
DeptmyDeptNULL,
Majorvarchar(30)NULL,
Classvarchar(18)NULL,
IDCardNochar(18)NOTNULL,
)
CInfo的表结构如下:
CID
CName
myName2
20
CCredit
tinyInt
CProperty
CREATETABLECInfo
(CIDmyIDprimarykey,
CNamemyName2NOTNULL,
CCredittinyintNULL,
CPropertyvarchar(10)NULL)
ScoreInfo的表结构如下:
设为主码,外键引用,参照CInfo中的字段CID
设为主码,外键引用,参照SInfo中的字段SID
外键引用,参照TInfo中的字段TID
Score
numeric
3,1
Schyear
9
term
1
参见PPT[例7]
三、用T-SQL命令语句按下列要求修改表结构
1、修改表SInfo表的表结构,设置IDCardNo值为唯一的。
参考教材中[例5-12]
altertableSInfo
addunique(IDCardNo)
2、修改表ScoreInfo的表结构,设置term值只能为1或2,默认值为1。
参考教材中[例5-18]
ALTERTABLEScoreInfo
ADDCONSTRAINTterm_CKcheck(term='
1'
orterm='
2'
GO
altertableScoreInfo
addconstraintterm_dfdefault('
)forterm
GO
3、在表SInfo中添加一字段EnroData(即入学日期),要求该输入范围在1900-1-1至2099-1-1。
之间。
参考教材中[例5-10]及[例5-18]。
ALTERTABLESInfo
ADDEntrDatedatetime
ADDCONSTRAINTEntrDate_CK
CHECK(EntrDate>
'
1900-1-1'
andEntrDate<
2099-1-1'
4、修改表TInfo的表结构,要求删除其中的Birthday字段。
参考教材中[例5-13]
ALTERTABLETInfo
DROPCOLUMNBirthDay
5、修改表TInfo表的表结构,其中的字段homeTel只允许为数字,且第1位数不能为’0’。
altertableTInfo
addconstrainthomeTel_CK
check(homeTel>
='
10000000'
andhomeTel>
19999999'
四、添加与更新数据
问题:
某学生在建立了以上三个数据表后开始添加数据,他首先在表ScoreInfo中添加数据,但系统总是出现报错提示,不让他添加数据,为什么?
答:
没说清楚TInfo、SInfo、CInfo和表ScoreInfo之间的关联关系,所以后面出现报错提示。
1、在MicrosoftSQLServerManagementStudio中打开表TInfo,输入如下表所示的数据。
sex
101001
施华
男
教授
43562634
101002
张小同
副教授
67109823
101003
李可
女
讲师
79109999
101004
王露
助教
78322222
101005
周杰
54344112
102001
张伟华
87347654
102002
李林
45261882
102003
林森
75767777
102004
王明
65747778
102005
史有才
32112334
2、利用T-SQL命令语句在表TInfo中输入数据,’102006’,’宁伟’,’男’。
参考教材[例5-20]
3、利用T-SQL命令语句在表TInfo中输入数据,当TID大于’100999’且小于’101999’时,其所在部门Dept为’信息管理’,当TID大于’101999’且小于’102999’时,其所在部门Dept为电子商务。
参考教材中[例5-25]
UPDATETInfo
SETDept='
信息管理'
wheretid>
101001'
andtid<
101999'
电子商务'
102001'
102999'