数据库原理上机作业实验45.docx

上传人:b****2 文档编号:2253795 上传时间:2022-10-28 格式:DOCX 页数:17 大小:297.78KB
下载 相关 举报
数据库原理上机作业实验45.docx_第1页
第1页 / 共17页
数据库原理上机作业实验45.docx_第2页
第2页 / 共17页
数据库原理上机作业实验45.docx_第3页
第3页 / 共17页
数据库原理上机作业实验45.docx_第4页
第4页 / 共17页
数据库原理上机作业实验45.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库原理上机作业实验45.docx

《数据库原理上机作业实验45.docx》由会员分享,可在线阅读,更多相关《数据库原理上机作业实验45.docx(17页珍藏版)》请在冰豆网上搜索。

数据库原理上机作业实验45.docx

数据库原理上机作业实验45

学号:

********姓名:

吴鑫达班级:

计算机一班上机时间:

2016/5/13

数据库版本:

MSSQL2008R2

上机实验四——SELECT语句基本格式的使用

一、实习目的:

掌握SELECT的基本使用格式,能使用SQLServer对表作简单查询。

二、实习准备:

1.复习第三章3.4节中SELECT语句的基本使用格式。

2.复习SQL中五种库函数:

AVG、SUM、MAX、MIN、COUNT;

3.完成习题三第12题中的各项操作的SQL语句。

三、实习内容:

1.验证习题三第12题中的各项操作的SQL语句。

①找出所有被学生选修了的课程号;

语句:

selectdistinctCno

FromGrade;

截图:

 

②找出01311班女学生的个人信息;

语句:

select*

FromStudent

WhereSsex='女'andClno='01311';

截图:

③找出01311班、01312班的学生姓名、性别、出生年份;

语句:

(六种)

1)SelectSname,Ssex,[出生年份]=(2016-Sage)

FromStudent

WhereClno='01312'orClno='01311';

2)SelectSname,Ssex,[出生年份]=(2016-Sage)

FromStudent

WhereClnoIN('01311','01312');

3)SelectSname,Ssex,’出生年份’=(2016-Sage)

FromStudent

WhereClno='01312'orClno='01311';

4)SelectSname,Ssex,”出生年份”=(2016-Sage)

FromStudent

WhereClno='01312'orClno='01311';

5)SelectSname,Ssex,(2016-Sage)AS'出生年份'

FromStudent

WhereClno='01312'orClno='01311';

6)SelectSname,Ssex,(2016-Sage)AS“出生年份”

FromStudent

WhereClno='01312'orClno='01311';

截图:

④找出所有姓李的学生的个人信息;

语句:

Select*

FromStudent

WhereSnamelike'李%';

截图:

 

⑤找出学生李勇所在班级的学生人数;

语句:

selectCOUNT(*)as'学生人数'

fromStudent

whereClnoin(

selectClno

fromStudent

whereSname='李勇'

);

截图:

⑥找出课程名为操作系统的平均成绩、最高分、最低分;

语句:

selectAVG(Gmark)as'平均成绩',

MAX(Gmark)as'最高分',

MIN(Gmark)as'最低分'

fromGrade

whereCnoin(

selectCno

fromCourse

whereCname='操作系统'

);

截图:

⑦找出选修了课程的学生人数;

语句:

selectCOUNT(distinctSno)as'选修人数'

fromGrade;

截图:

⑧找出选修了课程操作系统的学生人数;

语句:

selectCOUNT(distinctSno)as'选修操作系统的人数'

fromGrade

whereCnoIN(

selectCno

fromCourse

whereCname='操作系统'

);

截图:

找出2000级计算机软件班的成绩为空的学生姓名

语句:

selectSname

fromStudent

whereSnoIN(

selectSno

fromGrade

whereGmark=null)andClnoin(selectClno

fromClass

whereInyear='2000'ANDSpeciality='计算机软件');

截图:

2.试一下以下语句是否正确:

SELECTeno,basepay,service

FROMsalary

WHEREbasepay

答:

不对,聚合函数(集函数)不应该出现在where语句中。

(3.4.2:

带条件关系查询)

四、上机实验收获(感想):

实践是检验真理的唯一标准

五、思考题:

什么情况下需要使用关系的别名?

别名的作用范围是什么?

答:

在简化书写和子查询的情况下。

作用范围:

区分先后查询的同一关系区。

 

上机实验五——SELECT语句高级格式和完整格式的使用

一、实习目的:

掌握SELECT语句的嵌套使用方法,能使用SQLServer2000对表作复杂查询。

二、实习准备:

1.复习第三章3.4节中SELECT语句的高级格式和完整格式的使用。

2.了解库函数在分组查询中的使用规则;

3.完成习题三第13、14题中的各项操作的SQL语句。

三、实习内容:

完成以下各项操作的SQL语句:

13.

找出与李勇在同一个班级的学生信息;

语句:

select*

fromStudent

whereClnoin(

selectClno

fromStudent

whereSname='李勇')andSnameNOTIN('李勇');

截图:

②找出所有与李勇有相同选修课程的学生信息;;

语句:

select*

fromStudent

whereSnoin(

selectSno

fromGrade

whereCnoin(

selectCno

fromGrade

whereSno=(selectSno

fromStudent

whereSname='李勇'

))andSnameNOTIN('李勇');

截图:

 

③找出年龄介于学生李勇与25岁之间的学生信息(已知李勇的年龄小于25岁);

语句:

select*

fromStudent

whereSage>(selectSage

fromStudent

whereSname='李勇'

)andSage<25;

 

截图:

④找出选修了课程操作系统的学生学号与姓名;

语句:

selectSno,Sname

fromStudent

whereSnoin(

selectSno

fromGrade

whereCnoin(

selectCno

fromCourse

whereCname='操作系统'

);

截图:

 

⑤找出没有选修1号课程的所有学生姓名;

语句:

selectSname

fromStudent

whereSnonotin(

selectSno

fromGrade

whereCno='1'

);

截图:

⑥找出选修了全部课程的学生姓名。

语句:

语句:

selectSname

fromStudent

wherenotexists(

select*

fromCourse

wherenotexists(

select*

fromGrade

whereSno=Student.SnoandCno=Course.Cno

);

截图:

 

14.针对习题10的四个表,用SQL语言完成以下各项查询:

(1)查询选修了3号课程的学生学号及其成绩,并按成绩的降序排列;

语句:

selectSno,Gmark

fromGrade

whereCno='3'

orderbyGmarkdesc;

截图:

(2)查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列;

语句:

select*

fromStudent

orderbyClno,Sagedesc;

截图:

(3)求每个课程号及相应的选课人数;

语句:

selectdistinctCno,count(Cno)AS'选修人数'

fromGrade

GROUPBYCno;

截图:

(4)查询选修了3门以上课程的学生学号。

语句:

selectdistinctSno,COUNT(Cno)

fromGrade

groupbySno

havingCount(Cno)>3;

截图:

四、上机实验收获(感想):

实践是检验真理的唯一标准

五、思考题:

一:

问题:

使用存在量词[NOT]EXIST的嵌套查询时,何时外层查询的where条件为真,何时为假?

答:

取决于子查询的select语句,根据它所要查询的值在内查询中进行检查,返回一个逻辑值。

1.用UNION或UNIONALL将两个SELECT命令结合为一个时,结果有何不同?

答:

1.UNION命令只会选取不同的值,

2.UNIONALL命令和UNION命令几乎是等效的

3.UNIONALL命令会列出所有的值

2.当既能用连接词查询又能用嵌套查询时,应该选择哪种查询较好?

为什么?

答:

选用连接词查询。

效率高。

3.库函数能否直接使用在:

SELECT选取目标、HAVING子句、WHERE子句、GROUPBY列名中?

答:

库函数可以使用在SELECT选取目标、HAVING字句、WHERE子句,不能使用在GROUP BY列名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

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

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