资源描述:
《数据库实验四作业及答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验4 数据查询 一、 实验目的1. 掌握使用Transact-SQL的SELECT语句进行基本查询的方法。2. 掌握使用SELECT语句进行条件查询的方法。3. 掌握嵌套查询的方法。4. 掌握多表查询的方法。5. 掌握SELECT语句的GROUPBY和ORDERBY子句的作业和使用方法。6. 掌握联合查询的操作方法。7. 掌握数据更新语句INSERTINTO、UPDATE、DELETE的使用方法。 二、 实验准备1. 了解
2、SELECT语句的基本语法格式和执行方法。2. 了解嵌套查询的表示方法。3. 了解UNION运算符的用法。4. 了解SELECT语句的GROUPBY和ORDERBY子句的作用。5. 了解IN、JOIN等子查询的格式。6. 了解INSERTINTO、UPDATE、DELETE的格式与作用。 三、 实验内容及步骤0. 创建studentsdb数据库及其相应表,并录入数据。 启动查询分析器,运行下面链接的代码即可。 创建数据库代码 1.
3、 在studentsdb数据库中,使用下列SQL语句将输出什么?(1) SELECTCOUNT(*)FROMgrade(2) SELECTSUBSTRING(姓名,1,2)FROMstudent_info(3) SELECTUPPER('kelly')(4) SELECTReplicate('kelly',3)(5) SELECTSQRT(分数)FROMgradeWHERE分数>=85(6) SELECT2,3,POWER(2,3)(
4、7) SELECTYEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()) 2. 在studentsdb数据库中使用SELECT语句进行基本查询。(1) 在student_info表中,查询每个学生的学号、姓名、出生日期信息。SELECT*FROMstudent_info(2) 查询学号为0002的学生的姓名和家庭住址。SELECT姓名,家庭住址FROMstudent_infoWHERE学号=0002(3) 找出
5、所有男同学的学号和姓名。SELECT学号,姓名FROMstudent_infoWHERE性别='男'3. 使用SELECT语句进行条件查询(1) 在grade表中查找分数在80~90分为内的学生的学号和分数。SELECT学号,分数FROMgradeWHERE分数BETWEEN80AND90(2) 在grade表中查询课程编号为0003的学生的平均分。SELECTAVG(分数)AS平均分FROMgradeWHERE课程编号=0003(3) 在grade表中查询学
6、习各门课程的人数。SELECT课程编号,COUNT(*)AS人数FROMgradeGROUPBY课程编号(4) 将学生按出生日期由大到小排序。SELECT学号,姓名,出生日期FROMstudent_infoORDERBY出生日期ASC(5) 查询所有姓“张”的学生的学号和姓名。 SELECT学号,姓名FROMstudent_infoWHERE姓名LIKE'张%'4. 嵌套查询(1) 在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日
7、期。 SELECT姓名,出生日期FROMstudent_infoWHERE性别= (SELECT性别 FROMstudent_info WHERE姓名='刘卫平')(2) 使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。 SELECT学号,姓名,性别FROMstudent_infoWHEREstudent_info.学号IN (SELECT学号 FROMgrade WHERE课程编
8、号IN('0002','0005'))(3) 列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。SELECT课程编号,分数FROMgradeWHERE学号='0001'AND分数>ANY(SELECT分数FROMgradeWHERE学号='0002')(4) 列出学号为0001的学生的分数比0002的学生的最高成绩还要高的课程编号和分数。SELECT课程编号,分数FROMgradeWHERE学号='0001'AND分数>ALL(SELECT分数FR