SQlServer上机实验答案华中科技大学.docx

上传人:b****3 文档编号:4120115 上传时间:2022-11-28 格式:DOCX 页数:15 大小:18.76KB
下载 相关 举报
SQlServer上机实验答案华中科技大学.docx_第1页
第1页 / 共15页
SQlServer上机实验答案华中科技大学.docx_第2页
第2页 / 共15页
SQlServer上机实验答案华中科技大学.docx_第3页
第3页 / 共15页
SQlServer上机实验答案华中科技大学.docx_第4页
第4页 / 共15页
SQlServer上机实验答案华中科技大学.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

SQlServer上机实验答案华中科技大学.docx

《SQlServer上机实验答案华中科技大学.docx》由会员分享,可在线阅读,更多相关《SQlServer上机实验答案华中科技大学.docx(15页珍藏版)》请在冰豆网上搜索。

SQlServer上机实验答案华中科技大学.docx

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模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1