IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库练习MySQL -> 正文阅读

[大数据]数据库练习MySQL

数据库练习MySQL

/*6、检索所有比“王华”年龄大的学生姓名、年龄和性别*/
select sname,Sage,Ssex
from student
where sage>(SELECT sage
                from student 
                WHERE Sname='王华' ); 


/*7)检索选修02号课程的学生中成绩最高的学生的学号*/
select Sno
FROM sc
where Cno='002' AND Grade=(
    SELECT max(Grade)
    FROM sc
    where cno='002'
);
/*8)查询没有任何一门课程成绩超过90分的所有学生的信息*/
select *
from student
WHERE sno IN(
    select Sno
    from sc
    GROUP BY Grade
    having AVG(grade)>90
);
/*9)查询没有选修“01”号课程的学生姓名*/
select Sname 
from student
where sno not in(
    select Sno
    FROM SC
    where cno='001'
);

/*10)查询选修了课程名为“数据库”的学生姓名和成绩  */
select student.sname,sc.grade
from sc,student,course
where sc.sno=student.sno and course.Cno=sc.Cno
and course.Cname='数据库'; 

/*11)按分数降序排序,
输出“计科系”学生选修了“数据库”课程的学生的姓名和分数*/
select student.sname,sc.grade
from sc,student,course
where sc.sno=student.sno and course.Cno=sc.Cno
    AND student.Sdept='CS' and course.Cname='数据库'
ORDER BY Grade DESC;

/*12)查询共有多少学生选修了“数据库”*/
select Distinct (COUNT(*))
from course,sc
where course.Cno=sc.Cno and course.Cname='数据库';

/*13)	查询各门课程的课程号及其选课人数*/
SELECT cno,COUNT(DISTINCT(sc.sno))
from sc
GROUP BY Cno;

/*14)	统计每一年龄选修课程的学生人数*/
SELECT student.sage,COUNT(DISTINCT student.Sno)
from sc,student
WHERE sc.sno=student.sno
GROUP BY student.Sage;
select Student.Sage,count(distinct Student.Sno) 
from Student,SC 
where SC.Sno = Student.Sno 
group by Student.Sage;

/*15)	查询每个学生已获得的总学分
(成绩>=60可获得该门课程学分)*/
SELECT Sno,sum(course.Credit)
from sc,course
where sc.cno=course.cno AND sc.Grade>=60
GROUP BY sc.Sno;
/*16)检索选修2门及以上课程的学生的学号和其总成绩
(不统计不及格的课程),并要求按总成绩的降序排列出来。*/

SELECT student.sno,SumGrade
FROM student,(
    select student.sno,sum(sc.Grade) SumGrade
    from student,sc
    where student.sno=sc.sno and sc.Grade>=60
    GROUP BY student.Sno
    having COUNT(*)>2
) as scc
WHERE student.sno=scc.Sno
ORDER BY SumGrade DESC;

/*17)查询选修过两门及以上课程的学生的学号*/
SELECT student.sno
FROM student,(
    select student.sno,sum(sc.Grade) SumGrade
    from student,sc
    where student.sno=sc.sno and sc.Grade>=60
    GROUP BY student.Sno
    having COUNT(*)>=2
) as scc
WHERE student.sno=scc.Sno;
/*18)查询已获得的总学分高于等于5分的女生的学号*/
SELECT student.Sno
from student,sc,course
where student.ssex='M' and student.sno=sc.Sno
       AND sc.cno=course.Cno 
gROUP BY student.Sno
HAVING max(course.Credit)>=5 and min(sc.Grade>=60);
/*19)查询平均成绩在90分以上的信息系的学生的学号和平均成绩*/
SELECT student.Sno,AVG(sc.Grade)
from student,sc
WHERE student.sno=sc.Sno AND student.Sdept='IS'
GROUP BY student.Sno
having AVG(sc.Grade)>=90;
/*20)查询“levi” 同学没有选修的课程名”*/
SELECT course.Cname
from course ,student LEFT JOIN sc on student.sno=sc.Sno
WHERE student.Sname='张三' and sc.cno=course.cno;
/*由于该实例中没有添加“Levi”所以查询结果为空,实验截图中用张三代替Levi*/

/*21)查询选修了全部课程且全部通过考试的学生的学号和姓名*/
select sno,sname
from student
where sno in(
    select sno 
    from sc
    WHERE sc.grade>60
    group by Sno
    having COUNT(*)=(select COUNT(*) from course)
);
/*22)查询选修了全部课程的信息系的学生的学号和姓名*/
select sno,Sname
from student
where Sdept='IS' and sno in(
    select Sno
    from sc
    GROUP BY Sno
    having COUNT(*)=(SELECT COUNT(*) from course)
);
/*23)把学生“刘晨”所选修的课程的成绩加10分*/
update SC
 set Grade := Grade+10 
where Sno = (
    select Sno
    from student
    where Sname = '刘晨');
/*24)创建学生成绩表视图view_student_course_grade
,包括学号、姓名、课程、成绩*/
create VIEW view_student_course_grade as;

create view view_student_course_grade as 
select Student.Sno,Student.Sname,Course.Cname,SC.Grade 
from Student,SC,Course
where Student.Sno = SC.Sno and SC.Cno = Course.Cno;

/*25)定义一个有关学生学号及其平均成绩视图
view_student_average_grade*/
CREATE VIEW view_student_average_grade as
SELECT student.sno,AVG(sc.grade)
from student,sc
where student.sno=sc.Sno
GROUP BY student.Sno;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:46:25  更:2022-05-09 12:49:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:38:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码