热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLservice基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询

实验目标:1.掌握指定列或全部列查询2.掌握按条件查询3.掌握对查询结果排序4.掌握使用聚集函数的查询5.掌握分组统计查询 一、请完成书中实验7.1,并完成以下问题。 1.查询所有

实验目标:

1.掌握指定列或全部列查询

2.掌握按条件查询

3.掌握对查询结果排序

4.掌握使用聚集函数的查询

5.掌握分组统计查询

 

一、请完成书中实验7.1,并完成以下问题。

 

1.查询所有学生的姓名及其出生年份回答以下问题:

SQL语句请截图

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

① 观察查询的数据,若年龄不为空是否能求出出生年份,若年龄为空则出生年份显示什么?

能,若年龄为空,出生年份也显示空

② 使用了哪些函数求出出生年份,AS的作用是什么?

使用GETDATE()得到当前年份,再减去年龄得到出生年份。AS作用给列取别名

2.完成按条件查询SC表考试成绩不及格的学生的学号回答以下问题:

① 插入三行记录,(s2,c7,45),(s3,c2,59),(s4,c3,50)(重复不能插进去),描述相应的SQL。

INSERT INTO SC(SNO,CNO,SCORE)

VALUES

(‘S2′,’C7’,45),

(‘S3′,’C2’,59),

(‘S4′,’C3’,50)

② 查询考试成绩不及格的学生学号,会出现以下查询结果吗?如果没出现,是什么原因?如果出现了,如何解决出现重复的学号。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

解决方法:在SELECT SNO FROM SC 语句的 SNO 前加上 DISTINCT。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

3.查询年龄在20-23岁之间的学生的姓名、系名、年龄,试一试,再把between… And…换成in完成查询,描述相应的SQL语句。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

4.完成查询姓李的学生的姓名、学号、性别,试一试再插入两行数据(‘10’,‘李思’,‘女’)、(‘11’,‘李王睿安’,‘男’),能否使用like分别查询李姓两字、李姓四字学生的姓名、学号、性别,描述相应的SQL语句。

查询李姓两字学生的姓名、学号、性别

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

 

查询李姓李姓四字学生的姓名、学号、性别

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

5.完成对查询结果进行排序,回答排序是用什么子句完成,其中升序、降序的关键字分别是什么?可以按多个字段进行排序吗?

SELECT 字段名 AS 排序名,n  FROM 表名

WHERE (条件)

ORDER BY 字段名(升序),字段名 DESC (降序)

升序:OREDER BY接升序的字段;

降序:OREDER BY接降序的字段DESC

可以按多个字段进行排序

6.对T表查询教师的职称及相应的人数,描述相应的SQL语句。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

7.在T表中查询老师的姓名、职称,工资,并按教师的SAL字段进行降序排序。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

8.在S表、SC表中查询选课学生、及其选课的总成绩,并根据总成绩进行降序排列,查询结果可参考如下。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

9.查询有多少个学生参加选课?

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

二、执行下面的SQL脚本完成表的创建及数据的插入,并完成后面的问题

 

1. 数据表(4个表)

l 学生表(学号、姓名、年龄、性别)

create table student(

sno varchar(10) primary key,

sname varchar(20),

sage int,

ssex varchar(5)

)

l 教师表(教师工号、姓名)

create table teacher(

tno varchar(10) primary key,

tname varchar(20)

)

l 课程表(课程号、课程名、教师工号)

create table course(

cno varchar(10),

cname varchar(20),

tno varchar(10),

constraint pk_course primary key (cno,tno)

)

l 成绩表(学号、课程号、分数)

create table sc(

sno varchar(10),

cno varchar(10),

score real,

constraint pk_sc primary key (sno,cno)

)

2. 初始化数据

l 学生表

insert into student values (‘s001′,’张三’,23,’男’);

insert into student values (‘s002′,’李四’,23,’男’);

insert into student values (‘s003′,’吴鹏’,25,’男’);

insert into student values (‘s004′,’琴沁’,20,’女’);

insert into student values (‘s005′,’王丽’,20,’女’);

insert into student values (‘s006′,’李波’,21,’男’);

insert into student values (‘s007′,’刘玉’,21,’男’);

insert into student values (‘s008′,’萧蓉’,21,’女’);

insert into student values (‘s009′,’陈萧晓’,23,’女’);

insert into student values (‘s010′,’陈美’,22,’女’);

l 教师表

insert into teacher values (‘t001’, ‘刘阳’);

insert into teacher values (‘t002’, ‘谌燕’);

insert into teacher values (‘t003’, ‘胡明星’);

l 课程表

insert into course values (‘c001′,’J2SE’,’t002′);

insert into course values (‘c002′,’Java Web’,’t002′);

insert into course values (‘c003′,’SSH’,’t001′);

insert into course values (‘c004′,’Oracle’,’t001′);

insert into course values (‘c005′,’SQL SERVER 2005′,’t003’);

insert into course values (‘c006′,’C#’,’t003′);

insert into course values (‘c007′,’Javascript’,’t002′);

insert into course values (‘c008′,’DIV+CSS’,’t001′);

insert into course values (‘c009′,’PHP’,’t003′);

insert into course values (‘c010′,’EJB3.0′,’t002’);

l 成绩表

insert into sc values (‘s001′,’c001’,78.9);

insert into sc values (‘s002′,’c001’,80.9);

insert into sc values (‘s003′,’c001’,81.9);

insert into sc values (‘s004′,’c001’,60.9);

insert into sc values (‘s001′,’c002’,82.9);

insert into sc values (‘s002′,’c002’,72.9);

insert into sc values (‘s003′,’c002’,81.9);

insert into sc values (‘s001′,’c003′,’59’);

3. 完成下面的题目

1. 求选了课程的学生人数。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

2.查询姓“刘”的老师的个数

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

3. 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

4.查询平均成绩大于60 分的同学的学号和平均成绩(思路按学号分组计算学生的平均成绩,用having子句筛选出平均成绩大于60的学生)。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

5. 按各科平均成绩从低到高和及格率的百分数从高到低顺序,效果如下。(思路:可以通过case when..then..else..end统计人数))

 《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

6.查询每门课程被选修的学生数。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

7.查询男生、女生人数

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

8. 查询姓“张”的学生名单。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

9. 查询1981 年出生的学生名单。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

10. 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

11. 查询各个课程及相应的选修人数。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

12. 统计每门课程的学生选修人数(超过2人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

13. 检索至少选修两门课程的学生学号。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

14.检索“c004”课程分数小于60,按分数降序排列的同学学号。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》

 

15. 删除“s002”同学的“c001”课程的成绩。

《SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询》


推荐阅读
author-avatar
豆芽哥的马甲_206
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有