数据库技术与应用SQL习题答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验2SQLServer数据库的管理4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATEDATABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息CREATEDATABASEstudbsp_helpdb5.在查询分析器中使用Transact-SQL语句ALTERDATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。ALTERDATABASEstudbMODIFYFILE(NAME=studb,SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=1MB)7.使用企业管理器将studb数据库的名称更改为student_db。ALTERDATABASEstudbMODIFYNAME=student_db8.使用Transact-SQL语句DROPDATABASE删除student_db数据库。DROPDATABASEstudent_db实验3SQLServer数据表的管理5.使用Transact-SQL语句CREATETABLE在studentsdb数据库中创建grade表。CREATETABLEgrade(学号char(4),课程编号char(4),分数decimal(5))8.使用Transact_SQL语句INSERTINTO...VALUES向studentsdb数据库的grade表插入以下数据:学号课程编号分数0004000180USEstudentsdbGOINSERTINTOgradeVALUES('0004','0001','80')9.使用Transact_SQL语句ALTERTABLE修改curriculum表的“课程编号”列,使之为非空。ALTERTABLEcurriculumALTERCOLUMN课程编号char(4)NOTNULLGO10.使用Transact_SQL语句ALTERTABLE修改grade表的“分数”列,使其数据类型为real。ALTERTABLEgradeALTERCOLUMN分数real11.分别使用企业管理器和Transact_SQL语句DELETE删除studentsdb数据库的grade表中学号为'0004'的成绩记录。DELETEgradeWHERE学号='0004'13.使用Transact_SQL语句UPDATE修改studentsdb数据库的grade表中学号为'0003'、课程编号为'0005'、分数为90的成绩记录。UPDATEgradeSET分数=90WHERE学号='0003'and课程编号='0005'14.使用Transact_SQL语句ALTER...ADD为studentsdb数据库的grade表添加一个名为“备注”的数据列,其数据类型为VARCHAR(20)。ALTERTABLEgradeADD备注VARCHAR(20)NULL15.分别使用企业管理器和Transact_SQL语句DROPTABLE删除studentsdb数据库中的grade表。DROPTABLEgrade实验4数据查询1.在studentsdb数据库中,使用下列SQL语句将输出什么?(1)15(2)刘卫张卫马东钱达东方郭文肖海张明(3)KELLY(4)kellykellykelly(5)9.48683298050513819.32737905308881579.27361849549570399.4339811320566032(6)238(7)201110102.在studentsdb数据库中使用SELECT语句进行基本查询。(1)SELECT姓名,学号,姓名,出生日期fromstudent_info(2)SELECT姓名,家庭住址fromstudent_infowhere学号=0002(3)刘卫平0001张卫民0002马东0003钱达理0004东方牧00053.使用SELECT语句进行条件查询(1)SELECT学号,分数fromgradewhere分数'90'and分数'80'(2)SELECTavg(分数)fromgradewhere学号=0003(3)SELECT课程编号,count(课程编号)fromgradegroupby课程编号(4)SELECT姓名,出生日期fromstudent_infoorderby出生日期asc(5)SELECT学号,姓名FROMstudent_infoWHERE姓名LIKE'张%'4.嵌套查询(4)SELECT课程编号,分数FROMgradewhere学号=0001and分数(SELECTmax(分数)fromgradewhere学号=0002)5.多表查询(3)SELECTs.学号,s.姓名,c.课程名称,g.分数FROMstudent_infos,gradeg,curriculumcwheres.学号=g.学号ands.性别='男'andc.课程编号=g.课程编号(4)select学号,max(分数)fromgradegroupby学号(5)SELECTs.学号,姓名,sum(g.分数)FROMstudent_infosleftouterjoingradegons.学号=g.学号groupbys.学号,姓名(6)insertintograde(学号,课程编号,分数)values('0004','0006','76')SELECTc.课程编号,课程名称,count(g.学号)FROMcurriculumcrightouterjoingradegong.课程编号=c.课程编号groupbyc.课程编号,课程名称6.使用UNION运算符将student_info表中姓“张”的学生的学号、姓名与curriculum表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图1-8所示。select学号u_编号,姓名u_名称fromstudent_infowhere姓名like'张%'unionselect课程编号,课程名称fromcurriculum7.数据更新(4)deletefromtotalgradewhere总成绩=null实验5索引和视图1.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info表格和curriculum表创建主键索引。ALTERtablestudent_infoALTERcolumn学号char(4)notnullgoALTERtablestudent_infoaddconstraintPK_student_infoprimarykey(学号)ALTERtablecurriculumALTERcolumn课程编号char(4)notnullgoALTERtablecurriculumaddconstraintPK_curriculumprimarykey(课程编号)5..分别使用企业管理器和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。usestudentsdbgoexecsp_helpindexgradegousestudentsdbgoexecsp_helpindexstudent_infogo16.在studentsdb数据库中,使用Transact-SQL语句CREATEVIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况createviewv_stu_casselectstudent_info.学号,student_info.姓名,curriculum.课程名称,grade.课程编号fromstudent_infoinnerjoingradeonstudent_info.学号=grade.学号innerjoincurriculumongrade.课程编号=curriculum.课程编号select*fromv_stu_cwhere学号='0003'17.基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的所有课程和成绩createviewv_stu_gasselectstudent_info.学号,student_info.姓名,curriculum.课程名称,grade.分数fromstudent_infoinnerjoingradeonstudent_info.学号=grade.学号innerjoincurriculumongrade.课程编号=curriculum.课程编号select*fromv_stu_gwhere学号='0001'18.分别使用企业管理器和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。alterviewv_stu_c(学号,姓名,课程数目)asselectstudent_info.学号,student_info.姓名,count(grade.课程编号)as课程数目fromstudent_info,gradewherestudent_info.学号=grade.学号groupbystudent_info.学号,student_info.姓名21.利用视图v_stu_i为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。insertintov_stu_infovalues('0015','陈婷','女')22.利用视图v_stu_i删除学号为0015的学生记录。deletefromv_stu_infowhere学号='0015'23.利用视图v_stu_g修改姓名为刘卫平的学生的高等数学的分数为84。updatev_stu_gset分数=84where姓名='刘卫平'and课程名称='高等数学'24.使用Transact-SQL语句DROPVIEW删除视图v_stu_c和v_stu_g。dropviewv_stu_c,v_stu_g实验6数据完整性1.为sutdentsdb数据库创建一个规则,限制所输入的数据为7位0-9的数字。(1)SELECT*INTOstu_phoneFROMstudent_infoALTERTABLEstu_phoneADD电话号码CHAR(7)NULL(2)CREATERULEphone_ruleAS@phoneLIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'(3)sp_bindrulephone_rule,'stu_phone.电话号码'(4)出错原因:与该列所绑定的规则发生冲突;需要修改:改’1234yyyy’为’1234567’phone_rule规则不能对其他操作(如DELETE)进行规则检查3.创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。CREATERULEstusex_ruleAS@sexin('男','女')sp_bindrulestusex_rule,'stu_phone.性别'4.使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。sp_helpstusex_rulesp_helptextstusex_rulesp_renamestusex_rule,stu_s_rule5.删除stu_s_rule规则。Sp_unbindrule'stu_phone.性别'DROPRULEstu_s_rule6.在stuedentdb数据库中,建立日期、货币和字符等数据类型的默认对象。(1)CREATEDEFAULTdf_dateAS'2006-4

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功