sql 实现数据库计算总分并排序

wangwffgqeg 2009-12-21 11:00:20
有两个表一个student 表 表中有(number,name,sex,class,age,tel,address,remark)全部为字符串类型 字段 course表 表中有(number,math,english,datastruct,java)为double类型number为字符串 字段 需要查询出两个表中的所有字段并加上总分和平均分字段 按总分降序
sql没有学好自己写的sql语句太过于复杂这是我写的
select *, sum(english+math+java+datestruct) as 'sum',avg(english+math+java+datestruct)/4 as 'avg' from student,course where student.number=course.number group by student.number,name,sex,class,born_date,tel,address,remark,english,math,java,datestruct,course.number order by sum desc
太长了
这条sql语句要怎么写更好一点呀???
...全文
1226 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
keepkey 2009-12-22
  • 打赏
  • 举报
回复
2楼的好像写错了吧,avg可不是这么用的
[SQL code]
select s.*, sum(c.math,c.english,c.datastruct,c.java) as 'sum' ,
avg(c.math,c.english,c.datastruct,c.java) as 'avg'
from student s full join course c
on s.number = c.number
order by sum desc
[SQL code]
blliy117 2009-12-21
  • 打赏
  • 举报
回复

select ss.*,sc.* from student ss,
(select s.number as number, sum(english+math+java+datestruct) as 'sum',avg(english+math+java+datestruct)/4 as 'avg' from student s,course c where s.number=c.number group by s.number ) sc
where ss.number = sc.number order by sc.sum desc

michaellufhl 2009-12-21
  • 打赏
  • 举报
回复
这个sql不算复杂吧。
以目前2个table的结构和关系,不如并成1个:) table(number,name,sex,class,age,tel,address,remark,,math,english,datastruct,java)
学生学籍管理系统数据库系统SQL 学生学籍管理系统(数据库系统) 1 设计内容和要求 1.1设计背景 随着我国教育体制改革的深入进行,教育系统得到了前所未有的发展。学生管理正在逐步迈向管理信息现代化。但是我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的交费管理、学生的档案管理还是采用原有的人工管理方式。学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的的工作。面对庞大的信息量, 这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。 1.2开发环境 本学生学籍管理系统(数据库系统)的开发与运行环境如下: 开发环境:Windows XP 辅助工具:PowerDesigner Trial 11 数据库管理系统:SQL Server 2000 运行环境:Windows 2000/XP/2003 1.3内容和要求 1.3.1系统目标设计 使得学生的学籍管理工作更加清晰、条理化、自动化。 很容易地完成新生信息的输入、老生信息的备份、毕业学生的信息可以很容易地保存。 当学生需要查询成绩时,可以很简单地将其需要的信息从数据库中查找出来并可以打印查询结果。 随着当今网络技术的发展,提供网络在线查询功能,可以为毕业生提供更多的就业机会。 1.3.2系统功能要求 学生学籍管理系统数据库系统SQL全文共27页,当前为第1页。(1)学生基本信息系统 学生学籍管理系统数据库系统SQL全文共27页,当前为第1页。 能够完成新、老生信息的输人、修改、插人、删除等工作。 可以按照特定的信息进行查找,并按照特定的要求进行排序。 可以对老生的信息进行备份,以便日后查询。 可以对学生的信息进行打印输出。 提供详细的帮助文件和系统维护功能。 (2)学生成绩管理系统 此部分的功能如下: 学生成绩的输入、修改、删除等基本操作。 成绩的综合统计功能,包括学生成绩按照不同条件进行排名。管理人员可以选择不同的排序条件,并可以将排序结果进行打印输出。 计算各班的总分和平均分,并按照平均分将各班成绩进行排序。 统计不及格考生的信息,根据条件确定是重修还是补考。 学生奖励统计,自动生成每班获得奖学金的同学的信息,并可以将奖学金分成不同的等级,以及所得奖学金的数目。 本系统可以在单机上运行,也可以应用在网络上供在线查询成绩和其他一些学生的信息(此功能选做人提供给学生进行查询的系统和提供给教务处使用的系统,在不同用户使用时,应该会有不同的使用权限。 提供详细的帮助文件。 由于数据库内的信息会很多,注意数据库表格设计,使得学生查询基本信息或学习成绩时使用时间较短。按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计。 系统的功能模块设计图如图所示。 图 1-1 系统功能模块设计图 学生学籍管理系统数据库系统SQL全文共27页,当前为第2页。 2 需求分析 学生学籍管理系统数据库系统SQL全文共27页,当前为第2页。 2.1 引言 进行数据库设计首先必须准确了解也分析用户需求(包括数据和处理)。目的是为学籍管理数据库系统的设计打下牢牢的基础,是数据库开发的重要文件依据,主要为数据库设计人员使用,是用户和系统分析员的项目依据文件。作为"地基"的需求分析是否做得充分与准确,它决定了在其上构建数据库大厦的速度和质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。 本系统的开发是设计一个学生学籍管理系统(数据库系统)。 2.2 用户需求 本系统是针对高等院校的学生学籍管理,因此学籍管理系统的用户包括系统管理员、教师和学生。主要涉及系部信息、班级信息、任课教师信息、学生信息、课程信息以及选课记录和成绩等多种数据信息。 实现的具体功能如下: 基本信息管理——系统管理员负责对各种基本信息的录入、修改、删除等操作。 学生成绩管理——系统管理员负责对学生成绩的录入、修改、删除等操作,学生可以查询各科成绩。 信息查询统计——学生可以查询基本信息和各科的考试成绩,老师可以查询基本信息和授课信息,系统管理员负责把老师提交的学生成绩进行管理,计算总成绩和平均成绩,统计不及格学生信息和获得奖学金学生的信息,最后再输出所有的信息。 毕业生信息管理——系统管理员负责计算毕业学生在学校期间所修课程的总学分,并进行审核,最后输出登记表和名册。 系统用户管理——系统管理员负责用不同的权限来限制不同用户对系统的使用。 以上是用户对系统的基本的功能要求,此外用户还要求系统的效率要高,查询速度要快,比较小的冗余,
轻轻松松学数据库!!SQL Server 2008是微软的SQL Server数据库中的最新版本,在该版本的数据库产品中融入了更多商业智能的内容。本书中也使用了一篇专门讲解了与商业智能有关的一些内容。 本书总分为5篇,共21章。第一篇主要讲解数据库的基础,包括数据库的概念及安装。第二篇讲解数据库管理的常用知识,包括数据库的管理、表的管理、确保数据的完整性及用户权限的设置等内容。第三篇主要讲解SQL的编程,包括T-SQL语言、存储过程及触发器。第四篇讲解与商业智能有关的内容,包括集成服务、报表服务和分析服务。最后一篇是综合案例篇,分别使用.NET和Java语言实现了与SQL Server 2008的连接,并完成了图书管理系统和在线订餐系统。 第一篇 SQL Server 2008基础篇 第1章 学习数据库的准备 ( 教学视频:58分钟) 15 1.1 认识数据库 15 1.1.1 为什么要使用数据库 15 1.1.2 认识数据库产品 15 1.2 了解数据库对象 17 1.2.1 表 17 1.2.2 视图 17 1.2.3 索引 18 1.2.4 存储过程 18 1.2.5 触发器 18 1.3 认识SQL语言 18 1.3.1 什么是SQL 18 1.3.2 SQL语言的分类 19 1.4 绘制E-R图设计数据库 20 1.4.1 绘制E-R图的基本要素 20 1.4.2 E-R图绘制实例 22 1.5 小结 24 1.6 习题 24 第2章 数据库的安装 ( 教学视频:26分钟) 26 2.1 SQL Server 2008版本介绍 26 2.1.1 SQL Server 2008服务器版 26 2.1.2 SQL Server 2008专业版 26 2.2 SQL Server 2008环境需求 27 2.2.1 SQL Server 2008 Enterprise的 软硬件要求 27 2.2.2 SQL Server 2008 Enterprise Evaluation的软硬件要求 28 2.3 安装SQL Server 2008 29 2.3.1 自己动手安装SQL Server 2008 29 2.3.2 安装示例数据库 39 2.4 认识SQL Server Management Studio (企业管理器) 40 2.4.1 访问SQL Server Management Studio 40 2.4.2 SQL Server Management Studio 菜单简介 42 2.4.3 查询编辑器窗口 43 2.4.4 对象资源管理器 44 2.4.5 SQL编辑器 44 2.5 小结 45 2.6 习题 45 第二篇 SQL Server 2008管理篇 第3章 数据库操作 ( 教学视频:43分钟) 47 3.1 在SSMS中创建数据库 47 3.1.1 数据库命名需要注意的问题 47 3.1.2 数据库的所有者与权限 48 3.1.3 创建数据库 48 3.2 在SSMS中修改数据库配置 52 3.2.1 使用SSMS修改数据库配置的 通用步骤 52 3.2.2 在SSMS中添加数据库文件 53 3.2.3 在SSMS中删除数据库文件 53 3.2.4 修改数据库的所有者 55 3.2.5 限制用户的访问 56 3.2.6 设置用户对数据库的使用权限 57 3.2.7 修改数据库名称 59 3.3 使用SQL语句创建、修改、 删除数据库 59 3.3.1 用CREATE DATABASE语句 创建数据库 59 3.3.2 用ALTER DATABASE语句 修改数据库 60 3.3.3 用DROP DATABASE语句 删除数据库 62 3.4 附加与分离数据库 63 3.4.1 分离数据库 63 3.4.2 附加数据库 64 3.5 编写数据库脚本文件 66 3.6 综合练习 67 3.7 小结 69 3.8 习题 69 第4章 数据表操作 ( 教学视频:39分钟) 71 4.1 认识数据类型 71 4.1.1 字符型数据类型 71 4.1.2 数值型数据类型 72 4.1.3 日期和时间数据类型 73 4.1.4 其他数据类型 73 4.2 创建数据表 74 4.2.1 创建数据表的语法 74 4.2.2 创建主键 75 4.2.3 使用SSMS创建表 76 4.2.4 创建标识列 78 4.3 修改表结构 79 4.3.1 修改表结构的语法 80 4.3.2 在SSMS中修改表结构 82 4.4 表的删除、截断与重命名 82 4.4.1 使用SSMS删除和重命名表 83 4.4.2 使用DROP TABLE语句删除表 83 4.4.3 截断表 84 4.4.4 重命名表 85 4.5 小结 85 4.6 习题 85 第5章 确保数据完整性 ( 教学视频:89分钟) 87 5.1 认识约束 87 5.1.1 什么是约束 87 5.1.2 约束的类型 88 5.1.3 约束的语法 89 5.2 使用约束 90 5.2.1 利用SSMS创建主键约束 90 5.2.2 利用T-SQL增加主键约束 91 5.2.3 利用SSMS创建外键约束 92 5.2.4 利用T-SQL增加外键约束 93 5.2.5 利用SSMS工具创建CHECK 约束 94 5.2.6 利用T-SQL增加CHECK约束 95 5.2.7 利用SSMS工具删除约束 96 5.3 事务的使用 96 5.3.1 什么是事务 96 5.3.2 事务的特性 97 5.3.3 事务的模式类型 97 5.3.4 事务的保存点 99 5.4 并发控制 100 5.4.1 并发访问的问题 100 5.4.2 SQL Server中的锁 101 5.4.3 查看活跃事务 102 5.4.4 事务隔离级别 104 5.4.5 事务隔离级别的设置 104 5.5 事务的阻塞 105 5.6 死锁 107 5.6.1 死锁的产生 107 5.6.2 处理死锁 108 5.6.3 预防死锁 109 5.7 索引 109 5.7.1 认识索引 110 5.7.2 索引的创建 111 5.7.3 索引的管理 113 5.8 小结 115 5.9 习题 116 第6章 用户和权限管理 ( 教学视频:37分钟) 117 6.1 用户管理 117 6.1.1 创建使用Windows身份验证的 SQL Server 登录名 117 6.1.2 创建使用SQL Server身份验证的 SQL Server登录名 120 6.1.3 利用Transact-SQL创建 登录账号 121 6.1.4 创建数据库用户 122 6.1.5 使用Transact-SQL创建 数据库用户 123 6.1.6 登录账号和数据库用户的关系 124 6.2 认识角色 125 6.2.1 角色的划分 125 6.2.2 创建角色 127 6.2.3 给用户授予角色 128 6.3 认识权限 129 6.3.1 数据控制语言语法 129 6.3.2 给用户授予权限 131 6.4 架构 131 6.4.1 认识架构 132 6.4.2 架构的创建使用 133 6.4.3 架构的修改删除 134 6.5 小结 134 6.6 习题 135 第7章 数据的导入/导出与备份/恢复 ( 教学视频:27分钟) 136 7.1 了解SQL Server导入和导出向导 136 7.2 导入/导出数据 138 7.2.1 数据的导出 138 7.2.2 数据的导入 142 7.3 数据备份 145 7.3.1 认识数据备份 145 7.3.2 使用SSMS工具备份数据库 146 7.3.3 使用SSMS工具差异备份数据库 147 7.4 恢复数据 148 7.4.1 认识恢复数据 148 7.4.2 如何修改恢复模式 149 7.4.3 使用SSMS恢复数据库 150 7.5 小结 151 7.6 习题 151 第8章 使用SQL Server 2008中 自动化管理功能 ( 教学视频:20分钟) 153 8.1 认识SQL Server代理 153 8.1.1 什么是SQL Server 代理 153 8.1.2 使用SQL Server代理 154 8.2 认识作业 155 8.2.1 什么是作业 155 8.2.2 创建作业 156 8.2.3 管理作业 160 8.3 认识警报 163 8.3.1 创建警报 164 8.3.2 在警报中触发作业 165 8.3.3 管理警报 166 8.4 认识操作员 166 8.4.1 创建操作员 167 8.4.2 管理操作员 169 8.5 小结 169 8.6 习题 170 第9章 查询数据 ( 教学视频:64分钟) 171 9.1 在SSMS中查看数据 171 9.2 使用简单SELECT语句查询数据 171 9.2.1 查询表中所有数据 171 9.2.2 查询表中指定字段的数据 172 9.2.3 查询结果中去除重复信息 174 9.2.4 根据现有列值计算新列值 174 9.2.5 命名新列 175 9.2.6 将查询结果保存为新表 176 9.2.7 连接字段 177 9.3 使用SELECT语句获取满足查询 条件的数据 178 9.3.1 指针与字段变量的概念 178 9.3.2 条件表达式 179 9.3.3 WHERE子句用法 181 9.3.4 根据条件查询数值数据 182 9.3.5 根据条件查询字符数据 183 9.3.6 根据条件查询日期数据 184 9.3.7 按范围查询数据 185 9.3.8 查询NULL值 186 9.4 排序查询数据 186 9.4.1 按单列排序 187 9.4.2 设置排序方向 187 9.4.3 按多列排序 188 9.4.4 按字段位置排序 188 9.4.5 查询前5行数据 189 9.4.6 WHERE与ORDER BY的 结合使用 189 9.5 高级条件查询 190 9.5.1 AND运算符 190 9.5.2 OR运算符 191 9.5.3 AND与OR的优先顺序问题 192 9.5.4 NOT运算符 193 9.5.5 IN运算符 193 9.5.6 LIKE运算符与“%”通配符 195 9.5.7 “_”通配符的使用 197 9.5.8 “[]”通配符的使用 197 9.5.9 定义转义字符 198 9.6 小结 199 9.7 习题 199 第10章 函数与分组查询数据 ( 教学视频:42分钟) 201 10.1 系统函数 201 10.1.1 聚合函数 201 10.1.2 类型转换函数 202 10.1.3 日期函数 204 10.1.4 数学函数 206 10.1.5 字符函数 207 10.1.6 其他几个系统函数 208 10.2 分组查询 212 10.2.1 将表内容按列分组 212 10.2.2 聚合函数与分组配合使用 214 10.2.3 查询数据的直方图 215 10.2.4 排序分组结果 215 10.2.5 反转查询结果 216 10.2.6 使用HAVING子句设置 分组查询条件 217 10.3 小结 218 10.4 习题 218 第11章 多表连接查询和子查询 ( 教学视频:79分钟) 220 11.1 连接查询 220 11.1.1 使用无连接规则连接两表 220 11.1.2 使用有连接规则连接两表 221 11.1.3 使用多表连接查询数据 222 11.1.4 使用表别名简化语句 223 11.1.5 使用INNER JOIN连接查询 223 11.1.6 连接查询实例 224 11.2 高级连接查询 226 11.2.1 自连接查询 226 11.2.2 内连接查询 227 11.2.3 左外连接查询 229 11.2.4 右外连接 230 11.2.5 全外连接 230 11.2.6 交叉连接查询 230 11.2.7 连接查询中使用聚合函数 232 11.2.8 高级连接查询实例 233 11.3 组合查询 235 11.3.1 使用组合查询 236 11.3.2 使用UNION的规则 237 11.3.3 使用UNION得到复杂的统计 汇总样式 238 11.3.4 排序组合查询的结果 238 11.3.5 组合查询的实例 239 11.4 子查询 240 11.4.1 使用返回单值的子查询 240 11.4.2 子查询与聚合函数的配合使用 241 11.4.3 子查询的实例 241 11.5 在SSMS查询设计器中设计查询 242 11.6 综合练习 245 11.7 小结 246 11.8 习题 246 第12章 插入、更新和删除数据 ( 教学视频:39分钟) 248 12.1 在SSMS中插入、更新、删除数据 248 12.1.1 插入数据 248 12.1.2 更新数据 249 12.1.3 删除数据 249 12.2 使用INSERT语句插入数据 250 12.2.1 插入完整的行 250 12.2.2 向日期时间型字段插入数据 251 12.2.3 将数据插入到指定字段 251 12.2.4 将查询结果插入表 252 12.3 使用UPDATE语句更新数据 254 12.3.1 更新单个字段的数据 254 12.3.2 更新多个字段的数据 255 12.3.3 使用表连接更新数据 256 12.3.4 使用UPDATE语句删除 指定字段的数据 256 12.4 使用DELETE语句删除数据 257 12.4.1 使用DELETE语句删除 指定记录 257 12.4.2 在DELETE语句中使用 多表连接 258 12.4.3 使用DELETE语句删除 所有记录 259 12.5 使用TRUNCATE语句删除 所有记录 260 12.6 综合练习 260 12.7 小结 262 12.8 习题 263 第13章 视图 ( 教学视频:38分钟) 264 13.1 视图基础 264 13.2 视图的创建 266 13.2.1 在SSMS中创建视图 266 13.2.2 使用CREATE VIEW语句 创建视图 268 13.2.3 用别名命名视图字段 269 13.2.4 创建视图时的注意事项 270 13.2.5 创建加密视图 271 13.3 查看与修改视图 272 13.3.1 查看视图内容 272 13.3.2 在SSMS中修改视图 272 13.3.3 用ALTER VIEW修改视图 272 13.4 使用视图操作表数据 274 13.4.1 在SSMS中操作 视图中的数据 274 13.4.2 使用INSERT语句插入数据 274
学生成绩管理系统 背景简介 学生成绩的手工录入与查询,是一项非常繁重而枯燥的劳动,耗费许多人才和物力,而 且会因人的情绪烦躁而出现失误,因此在计算机飞速发展的今天,应用数据库技术实现 学生成绩的计算机管理是可行而必要的工作.本课题旨在对学生成绩实现计算机管理,提 高工作效率,提高管理水平。 2 系统目标 当前,应用数据库技术编写信息管理软件,已是很成熟的技术,关键是如何实现设计 要求,如何设计出友好的人机界面,使程序运行稳定、使用方便、操作简便,建立学生 成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。 本系统的设计与实现需要达到如下要求: 1。 原始数据录入 (包括学生信息、课程信息和学生成绩的录入); 2. 课程查询、学生信息和成绩查询查询; 3。 报表输出 (包括学生成绩汇总报表、需重修的学生统计表、班级单科成绩表等); 4. 数据维护 (包括数据备份、数据恢复等). 5。 随着网络技术的发展,可考虑提供网络在线查询功能。 3 功能要求 针对上述系统实现目标,学生成绩管理系统至少需要包括以下功能: 1. 基本信息的管理系统,基本功能如下: (1)能够完成新、老生信息的输入、修改、删除等工作,学生的基本信息,包括学 号、姓名、性别、籍贯等,具体可根据需求自行设计; (2)能够完成课程信息的输入、修改、删除等工作,课程的基本信息,包括课程编 号、课程名称、学时、学分、先修课等,具体可根据需求自行设计; (3)可以按照特定的信息进行查找,并按照特定的要求进行排序; (4)可以对学生及课程的基本信息进行打印输出; 2。 学生成绩的管理,基本功能如下: (1)学生成绩的输入、修改、删除等基本操作; (2)成绩的查询功能,可以按学号、姓名等进行成绩查询; (3)成绩的综合统计功能,包括学生成绩按照不同条件进行排名,管理人员可以选择 不的排序条件,并可以将排序结果进行打印输出; (4)计算每个学生的总成绩、平均成绩,所有学生单科的平均成绩,找出总成绩和单 科成绩最高的学生并输出; (5)计算各班的总分和平均分,并按照平均分将各班成绩进行排序。 (6)统计不及格考生的信息; (7)学生奖励统计,自动生成每班获得奖学金的同学的信息,并可以将奖学金分成不 同的等级,以及所得奖学金的数目。 要求学生在对课题的理解基础上,按照以下要求撰写课程设计报告,主要内容包括: (1)对该课题进行需求分析,并提交数据字典; (2)基于以上的需求描述,使用E—R图为该数据库设计概念模型,并将E—R数据模型转 换成关系模型; (3)对于设计好关系模式集,利用SQL语句定义各个关系模式,定义各关系模式间的 联系,及参照完整性的约束; (4)学生们可以根据自身情况,选择某种高级语言完成相关功能要求; (5)装入数据,并完成各项操作要求; 4 运行环境、开发环境与开发工具 1。 硬件环境:客户端需为奔腾 或以上兼容机,且具备上网条件. 2。 软件环境:操作系统为Windows 2000 Server或其以上操作系统、数据库服务器为Microsoft SQL SERVER2000或其以上。 3。 系统开发工具:学生可以根据自身情况,选择最熟悉的高级语言进行系统的设计与实现, 如Visual Basic、Visual C++、JAVA、ASP、JSP、C# 等软件,要求可以通过相应组件访问数据库。 ----------------------- 数据库课设学生成绩管理系统开发文档全文共2页,当前为第1页。 数据库课设学生成绩管理系统开发文档全文共2页,当前为第2页。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧