第5次实验2012-答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.测试下列数据类型命令,并写出相应的理解。
declare @a bit
set @a='FALSE'
select @a
●@a为0和'FALSE'时值为0,'true'或其他数值时为1
declare @a decimal(8,2)
set @a=128.235
select @a
●结果为128.24,decimal(8,2)表示数值宽度为8,小数位数为2,小数点占位,小数点后
第3位四舍五入
declare @a Money
set @a=128.2333987
select @a
●结果为128.2334,Money类型为货币型,小数点后保留4位,第5位四舍五入
declare @a Smalldatetime
set @a='1800 5 23 9:9:7.7 pm'
select @a
●从varchar 数据类型到smalldatetime 数据类型的转换产生一个超出范围的值,
declare @s char(10)
select @s='s'
select @s+'v'
●结果为“s v”中间空9个格,@s是定长字符串。
declare @a char(10)
declare @b varchar(10)
select @a='1', @b='2'
select @a+@b --调换位置看效果
●结果为“1 2”中间空9格,@a是定长字符串,@b是变长字符串,最后一行
给为@b+@a结果为“21 ”
declare @s binary(4)
select @s=15
select @s
●结果为“0x0000000F”,@s为二进制型变量,15的二进制表示为“1111”,通常用16
进制显示,故结果如上。
create table部门表
(
部门代码char(8)not null primary key,
部门名char(8),
负责人char(8)null,
地点char(20)
)
insert into部门表values('0001','生产部','李华江','重庆荣昌县')
insert into部门表values('0002','销售部','张丽','重庆渝中区')
insert into部门表values('0003','市场部','王欣','重庆江北区')
select*from部门表
create table员工表
(
员工代码char(20)not null,
姓名char(8)null,
家庭住址char(20)null,
联系电话char(20)null,
邮政编码char(20)null,
部门char(8)not null,
foreign key (部门)references部门表(部门代码)
)
insert into员工表values('200001','王华','重庆','67690986','401147','0001') insert into员工表values('200002','李想','成都','54387659','508763','0003') insert into员工表values('200003','张丽','上海','67893542','208761','0002') insert into员工表values('200004','李江华','重庆','76549873','400054','0001') select*from员工表
设置外键,并验证设置结果
insert into员工表values('200004','李江华','重庆','76549873','400054','0004') 这个命令执行失败,因为“0004”这个部门不存在,INSERT 语句与FOREIGN KEY 约束"FK__
员工表__部门__1332DBDC"冲突。该冲突发生于数据库"jsjxy",表"dbo.部门表", column '部门代码'
delete
from部门表
where部门代码='0001'
这个命令执行失败,因为关联子表引用了“0001”这个部门,DELETE 语句与REFERENCE 约束"FK__员工表__部门__1332DBDC"冲突。该冲突发生于数据库"jsjxy",表"dbo.员工表", column '部门'。
外键约束主要控制对父表记录的删除和对父表关键字的修改,控制对子表数据的插入和关键字的修改。