`
lonuery
  • 浏览: 52053 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

写了一个对我这个菜鸟来说稍微复杂一点的SQL纪念以下

 
阅读更多
以下为表结构:
Student(Sno,Sname,Sage,Ssex) 学生表
Course(Cno,Cname,Tno) 课程表
SC(Sno,Cno,score) 成绩表
Teacher(Tno,Tname) 教师表

--学生表结构:
create table student(
sno varchar2(10) primary key,
sname varchar2(20),
sage number(2),
ssex varchar2(5)
);
--教师表结构:
create table teacher(
tno varchar2(10) primary key,
tname varchar2(20)
);
--课程表结构:
create table course(
cno varchar2(10),
cname varchar2(20),
tno varchar2(20),
constraint pk_course primary key (cno,tno)
);
--成绩表结构:
create table sc(
sno varchar2(10),
cno varchar2(10),
score number(4,2),
constraint pk_sc primary key (sno,cno)
);
题目:按各科平均成绩从低到高和及格率的百分数从高到低顺序
select c1.cno, c1.平均分数,(c1.总人数-c2.不及格人数)/c1.总人数 as 及格率 from
(select cno,AVG(score)平均分数,count(sno)as 总人数 from sc group by cno)c1
join
  (select s2.cno, count(score)as 不及格人数 from
      (select score,cno from sc where score<60)s1
       right join
      (select distinct cno from sc)s2
       on s2.cno=s1.cno group by s2.cno)c2
on c1.cno=c2.cno order by 平均分数 DESC;
--s1为有不及格成绩的科目,其目的为统计各科不及格的人数,但是其不能统计出不及格人数为零的科目
--s2为所有有成绩的科目,其目的为统计所有有成绩的科目
--c2(s1和s2连接目的为统计出各科不及格的人数,包括没有不及格人数为零的科目)
--c1为所有有成绩的科目表 其目的为计算各科的平均分以及总人数
分享到:
评论

相关推荐

    菜鸟教程 sql教程

    SQL教程是学习数据库管理和数据分析的基础,尤其对于初学者,"菜鸟教程的SQL教程"是一个很好的入门资源。 在SQL教程中,你将学习到以下关键概念: 1. 数据库基础:首先,你会了解到什么是数据库,以及常见的关系型...

    SQL Server 2000菜鸟进阶

    《SQL Server 2000菜鸟进阶》是专为初学者设计的一份全面而详细的教程,旨在帮助新手快速掌握SQL Server 2000这一经典数据库管理系统的基础知识和核心技能。SQL Server 2000是微软公司推出的一款企业级数据库系统,...

    SQL Server 2000菜鸟进阶.rar_sql_sql 2000_sql server_sql server 2000_

    《SQL Server 2000菜鸟进阶》是一份针对初学者的教程资源,旨在帮助对数据库管理系统感兴趣的读者快速掌握SQL Server 2000的基本概念、安装与配置、数据管理以及查询操作。SQL Server 2000是微软公司推出的企业级...

    SQL_Server_2000菜鸟入门_sqlserver_

    SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级数据管理、..."SQL_Server_2000菜鸟入门.chm"这个压缩包文件很可能是包含详细教程和指南的CHM格式电子书,对于初学者来说,是很好的学习资源。

    SQLServer2000菜鸟教程

    《SQL Server 2000 菜鸟教程》是一本专门为初学者设计的数据库管理教程,旨在帮助新手快速入门并掌握SQL Server 2000的基本操作和核心概念。SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级...

    SQL server2000菜鸟版chm

    总之,《SQL Server 2000菜鸟版chm》这份教程涵盖了SQL Server 2000的基础到进阶知识,对于想要踏入数据库管理领域的初学者来说,是一个非常有价值的资源。通过深入学习,你不仅可以掌握SQL Server 2000的基本操作,...

    菜鸟级SQL21天自学通

    ### SQL21天自学通知识点概述 #### 第一天:SQL简介 - **SQL简史**: - SQL(Structured Query Language)是一种用于管理和处理数据库的标准语言。 - SQL由IBM的程序员Raymond Boyce和Donald Chamberlin在1970...

    菜鸟也来玩SQL Iniection.pdf

    例如,当一个网页URL中的"id"参数可以直接传递到数据库查询时,攻击者可以通过在URL中插入额外的SQL代码来篡改查询。 2. **攻击过程** 在给出的例子中,URL `http://www.XXXW.com/news.asp?id=1` 是一个典型的动态...

    sql server 2008 安装简介(仅供菜鸟或刚刚入门学生参考)

    对于初学者或者菜鸟来说,安装SQL Server 2008可能是一个挑战,但通过以下步骤,你可以轻松完成安装。 1. **准备阶段**:首先,确保你的计算机满足SQL Server 2008的最低系统要求,包括操作系统版本、内存、硬盘...

    C++ + ADO + Sql2012 简单例子(适合菜鸟)

    在学习编程的道路上,尤其是对初学者来说,理解并掌握数据库连接技术是一项基础而重要的技能。本文将为初学者介绍如何使用C++语言结合ADO(ActiveX Data Objects)库以及Microsoft SQL Server 2012(简称Sql2012)...

    MFC实现SQL数据库ADO连接(适合菜鸟)

    因此,这篇文章旨在为初学者(菜鸟)提供一种简化的方法来通过MFC使用ADO(ActiveX Data Objects)技术连接SQL Server数据库。 ### MFC与ADO的概述 MFC是一个为开发Windows应用程序提供的封装库,它封装了Windows ...

    C# winform调用SQL存储过程-菜鸟入门 详细注释

    内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...

    数据库菜鸟不可不看 简单SQL语句小结

    这篇简短的文章总结了几个对数据库初学者非常基础且实用的SQL语句,它们可以帮助你快速入门数据库查询。 首先,我们来看如何在查询结果中显示列名。在SQL中,可以使用`AS`关键字重命名列的显示名称,例如`SELECT ...

    数据库简单SQL语句小结,菜鸟不可不看

    数据库简单SQL语句小结,菜鸟不可不看数据库简单SQL语句小结,菜鸟不可不看

    菜鸟学T-SQL与C# 增删改查

    在C#中,这会与一个SQL查询相匹配,然后根据查询结果来决定是否允许用户登录。 学习T-SQL和C#的结合使用,对于任何希望从事数据库驱动应用开发的开发者来说都是必要的技能。理解这两者如何协同工作,能够帮助你构建...

    菜鸟级SQL21天自学通+SQL语言学习循序渐进+SQL经典语句

    《菜鸟级SQL21天自学通》可能是一本旨在帮助新手在21天内快速入门的教程,通过每天的学习任务,系统地介绍SQL的基础语法和常见操作。这本书可能会涵盖以下内容: 1. **SQL基础**:包括SQL的数据类型(如整型、浮点...

Global site tag (gtag.js) - Google Analytics