《SQL Server 2005实用教程》实验答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二

2.实验内容

(1)

CREA TE DA TABASE StuInfo

ON

PRIMARY (NAME = StuInfo _Data,,

FILENAME = 'D:\ StuInfo.Mdf',

SIZE =3MB,

MAXSIZE = 10MB,

FILEGROWTH =1 MB)

LOG ON

(NAME = StuInfo _Log,

FILENAME = 'D:\ StuInfo _Log.Ldf',

SIZE = 1MB,

MAXSIZE =5MB,

FILEGROWTH = 1MB)

GO

(2)

--创建学生表T_Student

USE Stuinfo

GO

CREATE TABLE t_student(

S_number char(8) NOT NULL PRIMARY KEY,

S_name char(10) NOT NULL,

Sex char(2) NULL CHECK(Sex='男' or Sex='女'),

Birthday datetime ,

Nation nvarchar(10) ,

Politics varchar(10) ,

Department nvarchar(12) ,

Address varchar(60) ,

PostalCode nvarchar(10) ,

Phone varchar(24) ,

)

--创建课程表T_Course

USE Stuinfo

GO

CREATE TABLE t_course(

C_number char(4) NOT NULL PRIMARY KEY,

C_name char(10) NOT NULL,

Teacher char(10) ,

Hours int NOT NULL,

Credit int ,

Type nvarchar(12) ,

)

--创建课程表T_Score

USE Stuinfo

GO

CREATE TABLE t_score(

S_number char(8) NOT NULL REFERENCES t_student (S_number),

C_number char(4) NOT NULL REFERENCES t_course (C_number),

Score numeric(5, 1) CHECK(Score>=0 and Score<=100),

CONSTRAINT PK_t_score PRIMARY KEY (S_number ,C_number) )

(3)在SSMS中打开表,按照表3.15、3.16、3.167的内容直接输入数据即可。

(4)

INSERT INTO t_score

VALUES('040104','2',70)

显示错误信息,不能保存该条记录。因为T_Score表的S_Number列与表T_Student 的S_Number列存在着外键约束关系,而表T_Student不存在S_Number为040104的记录。

(5)

INSERT INTO t_score

VALUES('040104','2',70)

能执行,向t_score表添加了该条数据。

(6)

update dbo.t_student

set S_number='040105'

where S_number='040101'

显示错误信息,不能修改该条记录。因为T_Score表的S_Number列与表T_Student 的S_Number列存在着外键约束关系,而表T_Score存在S_Number为'040101'的记录,为保证表T_Score数据的完整性,不能修改表T_Student中S_Number为'040101'的记录。

(7)

delete t_course

where C_number='5'

显示错误信息,不能删除该条记录。因为T_Score表的C_Number列与表T_Course 的C_Number列存在着外键约束关系,为保证表T_Score数据的完整性,不能删除表

T_Course中C_Number为5的记录。

(8)

法一:首先删除T_Score表中C_Number=’5’的所有记录,然后再删除表T_Course 中C_Number为5的记录。

法二:修改T_Score表与T_Course表关于C_Number的外键约束,设置其“INSERT 和UPDATE规范”的“删除规则”为“层叠”。

(9)

USE Stuinfo

ALTER TABLE t_student

ADD CONSTRAINT CK_Politics CHECK(Politics='中共党员' or Politics='团员' or Politics='民主党派' or Politics='群众')

ALTER TABLE t_student

ADD CONSTRAINT DF_Politics DEFAULT('团员') FOR Politics

(10)

EXEC SP_DETACH_DB 'Stuinfo', 'true'

EXEC SP_ATTACH_DB 'Stuinfo','C:\StuInfo.Mdf'

实验三

3.实验步骤

(1)

USE stuinfo

go

SELECT * FROM t_student ORDER BY s_number DESC

(2)

USE stuinfo

go

SELECT s_name 姓名, birthday 出生日期,year(getdate())-year(birthday) 年龄,

c_name 课程名称, score 成绩

FROM t_student,t_course,t_score

WHERE t_student.s_number=t_score.s_number

and t_course.c_number=t_score.c_number

相关文档
最新文档