SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询
实验目标:
1.掌握指定列或全部列查询
2.掌握按条件查询
3.掌握对查询结果排序
4.掌握使用聚集函数的查询
5.掌握分组统计查询
一、请完成书中实验7.1,并完成以下问题。
1.查询所有学生的姓名及其出生年份回答以下问题:
SQL语句请截图
① 观察查询的数据,若年龄不为空是否能求出出生年份,若年龄为空则出生年份显示什么?
能,若年龄为空,出生年份也显示空
② 使用了哪些函数求出出生年份,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)
② 查询考试成绩不及格的学生学号,会出现以下查询结果吗?如果没出现,是什么原因?如果出现了,如何解决出现重复的学号。
解决方法:在SELECT SNO FROM SC 语句的 SNO 前加上 DISTINCT。
3.查询年龄在20-23岁之间的学生的姓名、系名、年龄,试一试,再把between... And...换成in完成查询,描述相应的SQL语句。
4.完成查询姓李的学生的姓名、学号、性别,试一试再插入两行数据(‘10’,‘李思’,‘女’)、(‘11’,‘李王睿安’,‘男’),能否使用like分别查询李姓两字、李姓四字学生的姓名、学号、性别,描述相应的SQL语句。
查询李姓两字学生的姓名、学号、性别
查询李姓李姓四字学生的姓名、学号、性别
5.完成对查询结果进行排序,回答排序是用什么子句完成,其中升序、降序的关键字分别是什么?可以按多个字段进行排序吗?
SELECT 字段名 AS 排序名,…n FROM 表名
WHERE (条件)
ORDER BY 字段名(升序),字段名 DESC (降序)
升序:OREDER BY接升序的字段;
降序:OREDER BY接降序的字段DESC
可以按多个字段进行排序
6.对T表查询教师的职称及相应的人数,描述相应的SQL语句。
7.在T表中查询老师的姓名、职称,工资,并按教师的SAL字段进行降序排序。
8.在S表、SC表中查询选课学生、及其选课的总成绩,并根据总成绩进行降序排列,查询结果可参考如下。
9.查询有多少个学生参加选课?
二、执行下面的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. 求选了课程的学生人数。
2.查询姓“刘”的老师的个数
3. 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分。
4.查询平均成绩大于60 分的同学的学号和平均成绩(思路按学号分组计算学生的平均成绩,用having子句筛选出平均成绩大于60的学生)。
5. 按各科平均成绩从低到高和及格率的百分数从高到低顺序,效果如下。(思路:可以通过case when..then..else..end统计人数))
6.查询每门课程被选修的学生数。
7.查询男生、女生人数
8. 查询姓“张”的学生名单。
9. 查询1981 年出生的学生名单。
10. 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列。
11. 查询各个课程及相应的选修人数。
12. 统计每门课程的学生选修人数(超过2人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
13. 检索至少选修两门课程的学生学号。
14.检索“c004”课程分数小于60,按分数降序排列的同学学号。
15. 删除“s002”同学的“c001”课程的成绩。
SQL service基础(二)对数据指定列查询、条件查询、查询结果排序、聚集函数查询、分组统计查询相关推荐
- 【MySQL基础攻难1】聚集函数和分组查询
文章目录 1.数据准备 2.聚集函数 3.分组查询 3.0分组查询基本语法 3.1 SELECT后面语句的要求 3.2.GROUP BY到底怎么分组的 3.3.WHERE 和HAVING的区别 3.4 ...
- SQL service基础(四)连接查询、自身连接查询、外连接查询和复合条件连接查询
实验目标: 1.掌握涉及一个以上数据表的查询方法. 2.掌握等值连接 3.掌握自然连接 4.掌握非等值连接 5.掌握自身连接.外连接和复合条件连接 本次实验sql脚本: INSERT [dbo].[T ...
- SQL service基础(五)嵌套查询(UNION、EXCEPT、INTERSECT)
实验目标: 1.掌握嵌套查询,从而增强SQL的查询能力 2.掌握UNION.EXCEPT.INTERSECT操作符将来自不同查询但结构相同的数据集合组合起来,形成一个具有综合信息的查询结果 sql脚本 ...
- MySql基础篇---002 SQL之SELECT使用篇: 基本的SELECT语句,运算符,排序与分页,多表查询,单行函数,聚合函数,子查询
第03章_基本的SELECT语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑 ...
- C语言文件操作(二)对指定txt文件中的N个数排序
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #def ...
- JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码
转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...
- Oracle之数据操作__分组统计查询
一. 统计函数 1. COUNT(*),COUNT(字段),COUNT(DISTNCT 字段) SELECT COUNT(*),COUNT(ename),COUNT(comm),COU ...
- SQL——分组统计查询
统计函数 COUNT(*|DISTINCT|列) --求出全部的记录数,即全部行 SUM(列) --求出总和,操作的列是数字 AVG(列) --求平均值 MAX(列) --求最大值 MIN(列) -- ...
- SQL service基础(九)用户定义数据类型和用户定义函数的概念、创建及使用方法
实验目标: 1.学习和掌握用户定义数据类型的概念.创建及使用方法. 2.学习和掌握用户定义函数的概念.创建及使用方法. 创建一个数据库,执行shiyan15.sql脚本 一.创建和使用用户定义的函数( ...
最新文章
- Ubuntu下搭建MPI并行计算环境
- 69. x 的平方根 golang
- android 画布心形,Android CustomShapeImageView对图片进行各种样式裁剪:圆形、星形、心形、花瓣形等...
- WebService初入
- 《悟透JavaScript》进展汇报
- 开源框架 Apache Struts 2漏洞的 PoC 已公开
- air flow空调上是什么意思_中央空调的直流变频和全直流变频是什么意思?有什么区别吗?...
- 这家无人驾驶公司,竟做起了“有人驾驶”运输业务
- 《一次失败沟通后的自我觉察》
- 隐语义模型(Latent Factor Model, LFM)原理以及代码实现
- 华为od德科面试数据算法解析 2022-3-20 关于员工工号问题
- Java进阶(一)面向对象进阶简介
- 【最优化算法】基于【MATLAB】的最速下降仿真
- java、简单练习题
- 【MySQL基础攻难1】聚集函数和分组查询
- [已解决]win11家庭版安装软件提示,系统策略禁止安装此设备。请与系统管理员联系
- macbook pro 突破校园网inode客户端限制分享网络
- 从一个页面跳转到另一个页面的任何位置处
- BoCloud博云完成近亿元B轮融资,向PaaS及自动化运维注入强大加速力
- 前端工具-Parcel