数据库笔试题及答案
以下為某公司的數據庫筆試題及個人整理的答案,小伙伴們有更好的答案歡迎指教!
數據表
Student(S#,Sname) 10000條記錄
Cource(C#,Cname,T#) 9條記錄
SC(S#,C#,Score) 89991條記錄
Teacher(T#,Tname) 3條記錄
題目并沒有指定表中有多少數據,記錄是我自己模擬的。
試題
1、選擇課程001的成績大于課程002的成績的學生ID;
select s.`S#`,Sname,avg(sc.Score) avgc from Student s,SC sc where s.`S#`=sc.`S#` GROUP BY sc.`S#` HAVING(avgc > 60)[SQL] select s.id,Sname,avg(sc.Score) avgc from Student1 s,SC sc where s.`id`=sc.`S#` GROUP BY sc.`S#` HAVING(avgc > 60) 時間: 0.227ms 3、查詢所有學生的學生ID,學生姓名,總科目數,總成績;
select s.`S#`, s.Sname, count(*),sum(sc.Score) from Student s ,SC sc where s.`S#`=sc.`S#` GROUP BY sc.`S#`[SQL] select s.`id`, s.Sname, count(*),sum(sc.Score) from Student1 s ,SC sc where s.`id`=sc.`S#` GROUP BY sc.`S#` 時間: 0.264ms 4、查詢沒有上過“志明”老師課的學生ID,學生姓名;
select * from Student where `S#` NOT in (select `S#` from SC where `C#` in (select `C#` from Cource where `T#` in ( select `T#` from Teacher where Tname LIKE '%志明%' )))[SQL] select * from Student1 where `id` NOT in (select `S#` from SC where `C#` in (select `C#` from Cource where `T#` in ( select `T#` from Teacher where Tname LIKE '%志明%' ))) 時間: 0.156ms 5、母表A中有3000萬條數據(分庫分表了),子表B中有5萬條數據,現在要更新A表中的某個字段值為B表的某個字段值,條件是A表的某字段值與B表的某字段值匹配;如何實現,如何優化效率?
update A set A.a=B.a from A ,B where A.id=B.id具體怎么優化,能想到的就是,where 字段加索引,
A由于是分庫分表,可能就需要不只一條sql,每個庫,每個表,都是寫條類似的sql
我的環境
操作系統:Windows 7 64位
CPU:I3 2.4G
內存:6G
MySQL:5.6.19?InnoDB
===========文檔信息============?
版權聲明:非商用自由轉載-保持署名-注明出處?
署名(BY) :testcs_dn(微wx笑)?
文章出處:[無知人生,記錄點滴](http://blog.csdn.net/testcs_dn)
總結
- 上一篇: 前端学习(572):margin无效情形
- 下一篇: 前端学习(545):node的系统模块r