題目是這樣的:數據庫
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