一道面试题中涉及到的SQL的高级使用

题目是这样的:数据库

3、如今须要作一个全省的学生成绩资料库,系统功能和信息以下:spa

须要保存的信息有学生ID,学生姓名,学生成绩,所在学校,所在城市,时间设计

A、请你按照以上需求设计表结构,包括须要建哪些索引(只能够建一张表)排序

B、请各用一句SQL写出实现如下3个排名的查询语句(请用单语句,不要用嵌套语句)索引

(1).全省学生成绩排名前100的名单it

(2).每一个学校的学平生均成绩,请从大到小排列效率

(3).全省总共有多少个学校select

A、表的结构:方法

  studentInfo(ID,Name,Grade,School,City,Date)数据

至于创建索引,我脑子中还真没有存货。由于日常本身作着玩的时候,只关注了功能的实现,用到数据库的时候,也只是建好表,导入几条数据,并完成业务逻辑和数据库交互。并不关心数据库的使用效率,那些字段该创建索引。我脑子中知道查询比较频繁的字段应该创建索引。可是,还真没有实践过。在学校学的知识,真的是纸上谈兵,到了实际运用仍是真有点蒙蔽。

B、(1)、select top 100 *from studentInfo order by Grade DESC

这个题目的限制,纯粹就是为了考察对SQL语言的使用掌握状况。要是放在日常,我就会,用Select语句查出结果集,而后放入Map中,排序。固然,若是数据太多了,我日常的方法就有点傻逼了。仍是用数据库自带的方法效率更高一些。

(2)select school,AVG(Grade) from studentInfo

   Group by school

   order by AVG(Grade) DESC

(3)select COUNT(DISTICNCT(school)) from studentInfo

相关文章
相关标签/搜索