SQL查询习题.docx

上传人:b****2 文档编号:3385119 上传时间:2023-05-05 格式:DOCX 页数:13 大小:50.31KB
下载 相关 举报
SQL查询习题.docx_第1页
第1页 / 共13页
SQL查询习题.docx_第2页
第2页 / 共13页
SQL查询习题.docx_第3页
第3页 / 共13页
SQL查询习题.docx_第4页
第4页 / 共13页
SQL查询习题.docx_第5页
第5页 / 共13页
SQL查询习题.docx_第6页
第6页 / 共13页
SQL查询习题.docx_第7页
第7页 / 共13页
SQL查询习题.docx_第8页
第8页 / 共13页
SQL查询习题.docx_第9页
第9页 / 共13页
SQL查询习题.docx_第10页
第10页 / 共13页
SQL查询习题.docx_第11页
第11页 / 共13页
SQL查询习题.docx_第12页
第12页 / 共13页
SQL查询习题.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

SQL查询习题.docx

《SQL查询习题.docx》由会员分享,可在线阅读,更多相关《SQL查询习题.docx(13页珍藏版)》请在冰点文库上搜索。

SQL查询习题.docx

SQL查询习题

SQL查询习题

 

一、单表查询练习

1、查询<学生信息表>,查询学生"张三"的全部基本信息

select*

fromxsb

wherexm='张三'

2、查询<学生信息表>,查询学生"张三"和”张四”的基本信息

select*

fromxsb

wherexm='张三'orxm='张四'

3、查询<学生信息表>,查询姓"张"学生的基本信息

select*

fromxsb

wherexmlike'张%'

4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息

select*

fromxsb

wherexmlike'%四%'

5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。

select*

fromxsb

wherexmlike'李_强'

6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。

select*

fromxsb

wherexmlike'张%'orxm='李%'

7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息

select*

fromxsb

wherexmlike'张%'andjg='北京'

8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息

select*

fromxsb

select*

fromxsb

orderbyxb,jg,bj

11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份

selectdistinctjg

fromxsb

12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩

selectxh,kch,cj

fromcjb

wherecjisnull

13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序

select*

fromcjb

wherecjisnotnull

orderbycjdesc

14、找出两个姓张的同学信息,只显示对应学生的姓名,性别和班级

Selecttop2xm,xb,bj

Fromxsb

Wherexmlike'张%'

二、聚合函数练习

1、统计<学生信息表>,统计共有多少个学生

selectcount(*)

fromxsb

2、统计<学生信息表>,统计年龄大于20岁的学生有多少个

selectcount(*)

fromxsb

wherenl>='20'

or

selectcount(*)

fromxsb

whereyear(getdate())-year(csrq)>20

3、统计<学生信息表>,统计入学时间在1998年至2000年的学生人数

selectcount(*)

fromxsb

whererxrq>='1998-1-1'andrxrq<='2000-12-31'

whererxrqbetween‘1998-1-1’and‘2000-12-31’

4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩

selectAVG(cj)

fromcjb

wherexh='1'

OR

selectCONVERT(DECIMAL(18,2),AVG(cj))||保留小数点两位

fromcjb

wherexh='1'

5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩

selectsum(cj)

fromcjb

wherexh='1'

6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩

selectmax(cj)

fromcjb

wherekch='23'

7、统计<学生信息表>,查询所有学生中的最大年龄是多少

selectmax(nl)

fromxsb

三、分组查询练习

1、统计<学生选修信息表>,统计每个课程的选修人数

selectkch,count(*)

fromcjb

groupbykch

2、统计<学生选修信息表>,统计每个同学的总成绩

selectsum(cj)

fromcjb

groupbyxh

3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序

selectbj,xb,count(*)

fromxsb

groupbybj,xb

4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照平均成绩降序排序

selectkch,AVG(cj)

fromcjb

groupbykch

orderbyAVG(cj)desc

5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号

selectxh

fromcjb

wherecj<'60'

groupbyxh

havingcount(*)>='2'分组后的条件判断

6、统计<学生信息表>,统计每个班级中的最大年龄是多少

selectbj,SUM(nl)

fromxsb

groupbybj

 

四、嵌套查询练习

1、用子查询实现,查询选修“高等数学”课的全部学生的总成绩

1.课程表查课程号

2.查所有高数成绩

SelectSum(cj)

fromcjb

wherekch=(Selectkch

fromkcb

wherekcm='高等数学'

2、用子查询实现,统计<学生选修信息表>,显示学号为"S001"的学生在其各科成绩中,最高分成绩所对应的课程

思考:

如果该学号学生有两个课程分数都为最高的100分,查询会有什么结果

学号一最高分

最高分对应的课程号

课程号对应课程名

Selectmax(cj)

Fromcjb

Wherexh='1'

Selectkch

Fromkcb

Wherecj=(selectmax(cj)fromcjb)andxh=’1’

Selectkcm

Fromkcb

Wherekchin(Selectkch

Fromkcb

Wherecj=(selectmax(cj)fromcjb)andxh=’1’

 

3、用子查询实现,查询2班选修"数据库技术"课的所有学生的成绩之和

1.班级二班学生

Selectxh

Fromxsb

Wherebj=’2’

2.课程表里查课程号

Selectkch

Fromkcb

Wherekcm=’数据库技术’

Selectsum(cj)

Fromcjb

Wherexhin(Selectxh

Fromxsb

Wherebj=’2’)andkch=(Selectkch

Fromkcb

Wherekcm=’数据库技术’

 

4、用子查询实现,查询3班"张三"同学的"测试管理"成绩

1.测试管理的课程号

2.张三的学号

Selectxh

Fromxsb

Wherexm=’张三’andbj=’3’

Selectkch

Fromkcb

Wherekcm=’测试管理’

Selectcj

Fromcjb

Wherexhin(Selectxh||in可能有重名的多个‘张三’

Fromxsb

Wherexm=’张三’

)andkcm=(Selectkch

Fromkcb

Wherekcm=’测试管理’

 

五、联接查询练习

1、查询"张三"的各科考试成绩,要求显示姓名、课程号和成绩

查张三学号

Selectxh

Fromxsb

Wherexm=’张三’

查学号对应成绩

Selectcj,kch

Fromcjb

Wherexhin(Selectxh

Fromxsb

Wherexm=’张三’

Or

selectxm,kch,cj

fromxsb,cjb

wherexsb.xh=cjb.xh

andxm='张三'

2、查询"张三"的各科考试成绩中,哪科没有记录考试成绩,要求显示姓名、课程号和成绩

查张三学号

Selectxh

Fromxsb

Wherexm=’张三’

学号对应的没有成绩的

Selectcj,kch

Fromcjb

Wherecjisnull

Selectkch

Fromcjb

Wherecj=(Selectcj

Fromcjb

Wherecjisnull)andxhin(Selectxh

Fromxsb

Wherexm=’张三’)

Or

selectxm,kch,cj

fromxsb,cjb

wherexsb.xh=cjb.xh

andxm='张三'

andcjisnull

3、查询"张三"的各门课程成绩,要求显示姓名、课程名称和成绩

查张三学号

学号对应成绩

selectxm,kcm,cj

fromxsb,cjb,kcb

wherexsb.xh=cjb.xh

andcjb.kch=kcb.kch

andxm='张三'

 

4、查询3班"张三"的"测试管理"成绩,要求显示姓名、成绩

查3班张三的学号

查测试管理的课程号

根据学号和课程号查成绩

selectxm,cj

fromxsb,cjb,kcb

wherexsb.xh=cjb.xh

andcjb.kch=kcb.kch

andxm='张三'andkcm='测试管理'

andbj=’3’

5、查询所有2000年以前入学的,各班男生的各科考试平均成绩

selectAVG(cj),bj,kch

fromxsb,cjb

wherexsb.xh=cjb.xh

andrxrq<'2000'

andxb='男'

groupbybj,kch

 

六、外联接查询

查询”李坚强”所有课程的成绩,并显示学号、姓名、课程号和成绩,没有成绩记录的学号包括:

('S009','S010','S011')

1、使用左联接

 

2、使用右联接

 

3、对比等值连接

 

七、补充提高

1、查询“张三”比“王三”入学早几年

 

2、查询所在班级和该班内学生的年龄之和,其中每个人的年龄都大于20岁,每个班的年龄之和大于60岁

 

3、计算每种产品的剩余库存量

表1,为产品进货表,产品名称name[char(10)],产品数量amount[int]

表2,为产品出货表,产品名称name[char(10)],产品数量amount[int]

业务逻辑:

表1存储产品的总进货量,表2存储每种产品每次的出货量,如产品A进货为100,出货了3次,每次分别为10、20、30,那么A产品的库存就为40

表A1|表A2

-------------------|---------------------------

nameamount|nameamount

A100|A10

B100|A20

|A30

|B10

|B40

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2