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