1、王%图5-1(2) 查询全体学生的情况,查询结构按班级降序排列,同一班级再按学号升序,并将结果存入新表new中select *into newfrom st_infoorder by Cl_Name desc,st_ID asc图5-2(3) 对S_C_info表中选修了“体育”课的学生的平均成绩生成汇总行和明细行。(提示:用compute汇总计算)因2014版本已不支持compute关键字,所以选择用其他方式。Select c_no,scoreFrom s_c_infoWhere c_no=29000011group by c_no,score图5-32嵌套查询(1) 查询其他班级中比“材料
2、科学0601班”的学生年龄都大的学生姓名和年龄select st_name,born_datewhere cl_name!=材料科学0601班and born_date=90 then优秀=80 then良好=70 then中等=60 then及格when score60 then不及格endfrom s_c_info,st_info,c_infowhere st_info.st_id=s_c_info.st_id and c_info.c_no=s_c_info.c_no图5-11(二)SQL的增删改功能在实验四建立的studb数据库中,写SQL语句实现增删改功能。1在S表中增加如下记录:图
3、5-12insertSvalues(s3,张明华男1995/08/21 00:00:00.000MA_数学530.0浙江杭州,NULL)图5-13图5-142. 在C表中将课程名为“数据库”的学分更改为3。updateCsetccredit=3wherecname=数据库图5-15图5-163删除S表中S2的学生记录,请问是否能删除,为什么,要如何操作。能删除deletefromSsno=S2图5-17图5-18图5-19图5-20(三)索引1.在studb数据库中,分别用对象资源管理器和SQL语言定义索引在对象资源管理器中,在T表的tname列上中建立聚集索引ix_tname,降序。查看聚集
4、的效果。图5-21图5-221 使用SQL语言定义TC表的(tno,cno)列上的复合索引ix_tc,tno列设为升序,cno列设为降序先增加cno列,再删除聚集索引ix_tname。createclusteredindexix_tconT(tno,cno)图5-23图5-24(四)视图在studb数据库中操作。1 在对象资源管理中建立视图v_s_c,列出所有学生所选课程的成绩:学号,姓名,班级名,课程号,课程名,成绩。图5-25图5-26图5-272使用SQL语言建立视图v_cjtj,列出每位同学的学号,最高成绩,最低成绩,平均成绩和总成绩,按总成绩降序排列。create view v_cj
5、tj(xh,zgf,zdf,pjf,zf)as(select top 100 sno,max(score),min(score),avg(score),sum(score)from SC group by snoorder by sum(score) desc图5-28图5-29四、思考与练习1视图和表有何区别?(1)视图是已经编译好的sql语句。而表不是(2)视图没有实际的物理记录。而表有。(3)表是内容,视图是窗口(4)表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改(5)表是内模式,视图是外模式(6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。(7)表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。(8)视图的建立和删除只影响视图本身,不影响对应的基本表。2视图中的列都能更新吗?不一定3查询年龄最大的教师号和年龄,SQL命令如下:请问为什么报错?如何修改?Select tno,max(year(getdate( )-year(tbirday)From T选择列表中的列T.tno无效,因为该列没有包含在聚合函数或GROUPBY子句中。在from后面加groupbytno 13 / 13
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2