SQlServer上机实验答案华中科技大学.docx
- 文档编号:14554577
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:17
- 大小:18.70KB
SQlServer上机实验答案华中科技大学.docx
《SQlServer上机实验答案华中科技大学.docx》由会员分享,可在线阅读,更多相关《SQlServer上机实验答案华中科技大学.docx(17页珍藏版)》请在冰点文库上搜索。
SQlServer上机实验答案华中科技大学
实验二
4.createdatabasestudb
Sp_helpdb
5.alterdatabasestudb
modifyfile
(name=studb,
size=5MB,
maxsize=20MB,
filegrowth=1MB
)
7.ALTERDATABASEstudb
MODIFYNAME=student_db
8.DROPDATABASEstudent_db
实验三
5.USEstudents_db
GO
CREATETABLEgrade
(学号char(4),
课程编号char(4),
分数decimal(5))
8.USEstudentdb
GO
INSERTgrade
VALUES(‘0004’,’0001’,’80’)
9.USEstudentdb
GO
ALTERTABLEcurriculum
ALTERCOLUMN课程编号char(4)NOTNULL
10.USEstudentdb
GO
ALTERTABLEgrade
ALTERCOLUMN分数real
11.USEstudentdb
GO
ALTERTABLEstudent_info
ALTERCOLUMN姓名。
。
。
。
。
。
不会
12.USEstudentdb
GO
DELETEFROMgrade
WHERE学号='0004'
13.USEstudentdb
GO
UPDATEgradeSET分数=90
WHERE学号='0003'and课程编号='0005'
14.USEstudentdb
GO
ALTERTABLEgradeADD备注VARCHAR(20)NULL
15.USEstudentdb
GO
DROPTABLEgrade
实验四
2
(1)select学号,姓名,出生日期fromstudent_info
(2)select姓名,家庭住址fromstudent_infowhere学号='0002'
(3)select学号,姓名fromstudent_infowhere性别='男'
3
(1)select学号,分数fromgradewhere分数between80and90
(2)selectavg(分数)fromgradewhere课程编号='0003'
(3)select课程编号,count(课程编号)as人数fromgradegroupby课程编号
(4)select姓名,出生日期fromstudent_infoorderby出生日期desc
(5)select学号,姓名fromstudent_infowhere姓名like'张%'
4
(1)SELECT姓名,出生日期FROMstudent_infoWHERE性别=(SELECT性别FROMstudent_infoWHERE姓名='刘卫平')
(2)SELECT学号,姓名,性别FROMstudent_infoWHEREstudent_info.学号IN(SELECT学号FROMgradeWHERE课程编号IN('0002','0005'))
(3)SELECT课程编号,分数FROMgradeWHERE学号='0001'AND分数>ANY(SELECT分数FROMgradeWHERE学号='0002')
(4)SELECT课程编号,分数FROMgradeWHERE学号='0001'AND分数>ALL(SELECT分数FROMgradeWHERE学号='0002')
5
(1)SELECTstudent_info.学号,姓名,分数
FROMstudent_info,grade
WHEREstudent_info.学号=grade.学号AND分数BETWEEN80AND90
(2)SELECTstudent_info.学号,姓名,分数
FROMstudent_info
INNERJOINgradeONstudent_info.学号=grade.学号
INNERJOINcurriculumON课程名称='C语言程序设计'
(3)SELECTstudent_info.学号,student_info.姓名,curriculum.课程名称,grade.分数
FROMstudent_info
INNERJOINgradeONstudent_info.学号=grade.学号and性别='男'
INNERJOINcurriculumoncurriculum.课程编号=grade.课程编号
(4)SELECTstudent_info.学号,max(grade.分数)
FROMstudent_info
INNERJOINgradeONstudent_info.学号=grade.学号
groupbystudent_info.学号
(5)SELECTstudent_info.学号,sum(grade.分数)
FROMstudent_info
leftouterJOINgradeONstudent_info.学号=grade.学号
groupbystudent_info.学号
(6)第一步
insertgrade
values('0004','0006','76')
第二步
SELECTcurriculum.课程编号,curriculum.课程名称,count(grade.学号)as选修人数
FROMgrade
rightouterJOINcurriculumoncurriculum.课程编号=grade.课程编号
groupbycurriculum.课程编号,curriculum.课程名称
6union
select课程编号asu_编号,课程名称asu_名称fromcurriculum
7
deletefromtotalgrade
where总成绩isnull
实验五
1
ALTERTABLEstudent_info
ADD
CONSTRAINTstudent_idx
PRIMARYKEYCLUSTERED(学号)
ALTERTABLEcurriculum
ADD
CONSTRAINTcurriculum_idx
PRIMARYKEYCLUSTERED(课程编号)
2无
3
CREATENONCLUSTEREDINDEXgrade_indexONgrade(分数)
4
CREATEUNIQUEINDEXgrade_id_c_indONgrade(学号,课程编号)
5
sp_helpindexgrade
6
无
7
sp_rename'grade.grade_index','grade_ind','INDEX'
8
DROPINDEXgrade.grade_ind
sp_helpindexgrade
9
executesp_fulltext_database'enable'
10
executesp_fulltext_catalog'FT_stu','create'
execsp_fulltext_table'student_info','create','FT_stu','PK_student_info'
11
executesp_fulltext_column'student_info','家庭住址','add'
executesp_fulltext_table'student_info','activate'
12
executesp_fulltext_catalog'FT_stu','start_full'
13
SELECT姓名,家庭住址
FROMstudent_info
WHERECONTAINS(家庭住址,'25号')
14
15
无
16
createviewv_stu_c
as
selectstudent_info.学号,student_info.姓名,grade.课程编号
fromstudent_infoinnerjoin
gradeon
student_info.学号=grade.学号
select学号,姓名,课程编号
fromv_stu_cwhere学号='0003'
17
createviewv_stu_c
as
selectstudent_info.学号,student_info.姓名,curriculum.课程名称,grade.分数
fromstudent_info
innerjoingradeonstudent_info.学号=grade.学号
innerjoincurriculumongrade.课程编号=curriculum.课程编号
select学号,姓名,课程名称,分数
fromv_stu_gwhere学号='0001'
18
alterviewv_stu_c
as
selectgrade.学号,姓名,count(grade.课程编号)as课程数目
fromstudent_infoinnerjoingradeonstudent_info.学号=grade.学号groupbygrade.学号,姓名
19
ALTERVIEWv_stu_i(学号,姓名,性别)
ASSELECT学号,姓名,性别FROMstudent_info
20
sp_renamev_stu_i,v_stu_info
21
insertintov_stu_i
values('0015','陈婷','女')
22
deletefromv_stu_g
where学号='0015'
23
updatev_stu_g
set分数=84where姓名='刘卫平'and课程名称='高等数学'
24
dropviewv_stu_c,v_stu_g
实验六
1
(1)SELECT*INTOstu_phoneFROMstudent_info
ALTERTABLEstu_phoneADD电话号码CHAR(7)NULL
(2)CREATErulephone_rule
AS
@phoneLIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
(3)sp_bindrulephone_rule,'stu_phone.电话号码'
(4)应修改括号中的第三个字符串为7位0~9数字
3
Createrulestusex_rule
As@stusexin(‘男’,’女’)
sp_bindrulestusex_rule,'stu_phone.性别'
4
Sp_helpstusex_rule
Sp_helptextstusex_rule
Sp_renamestusex_rule,'stu_s_rule'
5
sp_unbindrule'stu_phone.性别'
Droprulestu_s_rule
6
(1)--创建日期型默认对象df_date
CREATEdefaultdf_date
AS'2006-4-12'
GO
----创建字符型默认对象df_char
CREATEDEFAULTdf_char
as'unknown'
GO
--创建货币型默认对象df_money
CREATEDEFAULTdf_money
AS$100
GO
(2)CREATETABLEstu_fee
(学号char(10)NOTNULL,
姓名char(8)NOTNULL,
学费money,
交费日期datetime,
电话号码char(7))
(3)Sp_bindefaultdf_money,'stu_fee.学费'
GO
Sp_bindefaultdf_date,'stu_fee.交费日期'
GO
Sp_bindefaultdf_char,'stu_fee.电话号码'
GO
(4)INSERTINTOstu_fee(学号,姓名)
values('0001','刘卫平')
INSERTINTOstu_fee(学号,姓名,学费)
values('0001','张卫民',$120)
INSERTINTOstu_fee(学号,姓名,学费,交费日期)
VALUES('0001','马东',$110,'2006-5-12')
(5)sp_unbindefault'stu_fee.电话号码'
dropDEFAULTdf_char
sp_unbindefault'stu_fee.学费'
go
sp_unbindefault'stu_fee.交费日期'
go
dropDEFAULTdf_date,df_money
go
8ALTERTABLEstudent_infoADD院系CHAR(7)
Go
createdefaultstu_d_df
as'信息院'
go
sp_bindefaultstu_d_df,'student_info.院系'
go
sp_unbindefault'student_info.院系'
go
dropdefaultstu_d_df
go
9
(1)
createtablestu_con
(学号char(4)
constraintpk_sidprimarykey,
姓名char(8)constraintuk_nameunique,
性别char
(2)constraintdf_sexdefault'男',
出生日期datetimeconstraintck_bedaycheck(出生日期>'1988-1-1'),
家庭住址varchar(50)
)
(2)insertstu_con
values('0009','张晓东','','1989-4-6','')
go
insertstu_con
values('0010','李梅','女','1983-8-5','')
go
insertstu_con
values('0011','王强','','1988-9-10','')
go
insertstu_con
values('0012','王强','','1989-6-3','')
go
所影响的行数为1行)
服务器:
消息547,级别16,状态1,行1
INSERT语句与COLUMNCHECK约束'ck_beday'冲突。
该冲突发生于数据库'studentsdb',表'stu_con',column'出生日期'。
语句已终止。
(所影响的行数为1行)
服务器:
消息2627,级别14,状态2,行1
违反了UNIQUEKEY约束'uk_name'。
不能在对象'stu_con'中插入重复键。
语句已终止。
(3)ALTERTABLEstu_con
DROPCONSTRAINTuk_name,df_sex,ck_beday
11
altertablegradewithcheckadd
constraintufk_sid
foreignkey(学号)referencesstudent_info(学号)
insertgrade
values('0100','0001','78')
服务器:
消息547,级别16,状态1,行1
INSERT语句与COLUMNFOREIGNKEY约束'ufk_sid'冲突。
该冲突发生于数据库'studentsdb',表'student_info',column'学号'。
语句已终止。
ALTERTABLEgrade
DROPCONSTRAINTufk_sid
实验七
3
declare@rowint
set@row=(selectcount(*)fromgrade)
select@row
4两个全局变量只显示上一次操作的信息
5
declare@boychar
(2),@girlchar
(2)
select@boy=(selectcount(性别)fromstudent_infowhere性别='男')
select@girl=(selectcount(性别)fromstudent_infowhere性别='女')
select@boyas男,@girlas女
6
declare@grademaxint,@grademinint,@gradeavgint
select@grademax=max(分数),@grademin=min(分数),@gradeavg=avg(分数)
fromgradewhere课程编号=(select课程编号fromcurriculumwhere课程名称='高等数学')
select@grademaxas最高分,@grademinas最低分,@gradeavgas平均分
7
DECLARE@studentdatetime
SET@student=getdate()
SELECT姓名,year(@student)-year(出生日期)AS年龄
FROMstudent_info
8
8233225
10
@counter的值现在为:
1
@counter的值现在为:
2
@counter的值现在为:
3
@counter的值现在为:
4
@counter的值现在为:
5
@counter的值现在为:
6
@counter的值现在为:
7
@counter的值现在为:
8
@counter的值现在为:
9
11
SELECT学号,分数,等级=
CASE
WHEN分数>=90THEN'A'
WHEN分数>=80AND分数<90THEN'B'
WHEN分数>=70AND分数<80THEN'C'
WHEN分数>=60AND分数<70THEN'D'
ELSE'E'
END
FROMgrade
12
WHILE(SELECTAVG(分数)FROMgrade)<80
BEGIN
UPDATEgrade
SET分数=分数*1.05
If(SELECTMAX(分数)FROMgrade)>95
BREAK
ELSE
SELECTAVG(分数)fromgrade
END
13
declare@nint,@iint
set@n=0
set@i=1
while@i<=20
begin
set@n=@n+@i
set@i=@i+1
end
select@n
14
declare@nint,@iint
set@i=1
set@n=1
while@n<=100
begin
set@i=@i+1
select@n
set@n=@i*@i
End
15
declare@nint,@iint,@aint
set@n=3
while@n<=100
begin
set@i=2
set@a=sqrt(@n)
while@i<=@a
begin
if(@n%@i<>0)
set@i=@i+1
else
break
end
if(@i>@a)
select@n
set@n=@n+2
end
实验八
2
CREATEPROCEDUREstu_info@namevarchar(40)='刘卫平'
AS
SELECTa.学号,姓名,课程编号,分数
FROMstudent_infoaINNERJOINgradeta
ONa.学号=ta.学号
WHERE姓名=@name
3
(1)createprocedurestu_gradeas
selectstudent_info.姓名,curriculum.课程名称,grade.分数
fromstudent_info,curriculum,grade
wherestudent_info.学号=grade.学号andcurriculum.课程编号=grade.课程编号
(2)EXECUTEstu_grade
(3)sp_rename'stu_grade','stu_g'
4
(1)createprocedurestu_p_g@namevarchar(40)
as
selectstudent_info.学号,curriculum.课程名称,grade.分数
fromstudent_info,curriculum,grade
wherestudent_info.学号=grade.学号andcurriculum.课程编号=grade.课程编号andstudent_info.姓名=@name
(2)executestu_p_g刘卫平
(3)sp_helptext'stu_p_g'
5
(1)createprocedurestu_enwithencryption
as
select*fromstudent_infowhere性别='男'
(2)executestu_en
(3)DROPPROCEDUREstu_en
6
(1)createprocedurestu_g_r@xuehaochar(4)
as
select课程编号,avg(分数)as平均成绩
fromgrade
where学号=@xuehaogroupby课程编号
(2)executestu_g_r'0002'
(3)DROPPROCEDUREstu_g_r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQlServer 上机 实验 答案 华中科技大学