今天乙個測試的朋友去面試,考察了她資料庫查詢的一些語法問題,但是一些細節她沒有考慮進去被刷下了。果然行業標準提高了啊。
貼一下筆試題目。
–1.學生表
student(sid,sname,sage,s***)
–sid 學生編號,sname 學生姓名,sage 出生年月,s*** 學生性別
–2.課程表
course(cid,cname,tid)
–cid 課程編號,cname 課程名稱
–3.成績表
sc(sid,cid,score)
–sid 學生編號,cid 課程編號,score 分數
完成如下查詢:
① 查詢即選了課程編號a又選了課程編號b的學生資訊
② 查詢所有學生的選課數量和總成績
③ 查詢課程編號a成績前十的學生資訊和對應的分數
④ 查詢選課熱度前三的課程資訊
⑤ 查詢每個學生的選課資訊
這題目大概大家都不陌生,但是說到查詢前多少名時很多人第一反應就是用 top,並沒有考慮不同資料庫是不一樣的而且並列排名也往往會忽略。
就此 ,我貼一下我的答案,寫的不好,希望多交流。
第1題
select * from student where sid in (
select sid from sc where cid in (a,b)
)
第2題
select sum(score),count(cid),s.sid ,sname from student s left join sc on s.sid = sc.sid group by s.sid ,sname
第3題
-- orcal serversql 用 top 10
-- mysql
select * from (
select sid,cid, score,
@rank:= if(@pre=score, @rank+0, @rank+1) as rank,
@pre:= score
from sc ,
(select @rank:=0, @pre:= null) r
where cid = 2
order by score desc ) a left join student s on a.sid = s.sid where rank <= 10;
第4題
-- orcal server sql 用 top
-- mysql
select * from (
select cid, count(cid) c_cid from sc group by cid
) a left join course c on a.cid = c.cid order by c_cid desc limit 10
第5題
select * from sc , course , student where sc.sid= student.sid and sc.cid=course.cid order by sc.sid
MySQL實現排名並查詢指定使用者排名功能
用到user 使用者表 說明 rownum rownum 1 中 是賦值的作用,這句話的意思是先執行 rownum 1,然後把值賦給 rownum select rownum 0 r 這句話的意思是設定rownum欄位的初始值為0,即編號從1開始。實現排名 第一步 先將使用者排序 並給與名次 sel...
查詢10天前的日誌並刪除
查詢10天前的日誌並刪除 bin bash source etc profile 刪除日誌 find usr local apache tomcat 7.0.68 logs type f mtime 10 exec rm rfv find usr local apache tomcat 8.0.32...
查詢10天前的日誌並刪除
查詢10天前的日誌並刪除 bin bash source etc profile 刪除日誌 find usr local apache tomcat 7.0.68 logs type f mtime 10 exec rm rfv find usr local apache tomcat 8.0.32...