日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL刷题,procedure存储过程(hackerrank-sql-Print Prime Numbers),58道题完结撒花啦

發布時間:2023/12/20 数据库 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL刷题,procedure存储过程(hackerrank-sql-Print Prime Numbers),58道题完结撒花啦 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

代碼

DELIMITER // CREATE Procedure prime(num INT) BEGIN set @i=3; -- 為了避免&的問題,從3開始set @final='2'; -- 起始的2已經包含while @i<=num doset @m=0; -- @m定義為可以被整除的次數set @n=1; -- @n定義為當前@i值循環下的不斷增大的除數while @n<=@i doset @m=@m+if(mod(@i,@n)=0,1,0); -- 記得語句后面都加;否則報錯set @n=@n+1; -- @n記得+1end while;if @m=2 then -- 質數只能被1和自身整除set @final=concat(@final,'&',@i); end if;set @i=@i+1; -- @i記得+1end while;select @final; END// DELIMITER ;

解題心得

這道題很意外地沒有花費自己太多時間,知道考查質數,一定要用到循環,所以想到最好用存儲過程來實現,經過一步步完善也算順利完成了。最后發現自己好像真的更適合寫這種邏輯型的題,像python那樣,簡潔明了,而且思路很自然。

完結撒花

Hackerrank的58道SQL題終于刷完了,如果全部自己刷完的話總分應該是1130,因為中間有兩道題參考了別人的答案,所以最后得分是1050。

經驗總結

最后分享幾點飽含血淚的經驗教訓吧。
1、hackerrank不同的題其實所用的mysql版本可能不同,這也就解釋了為什么我有時候能用with as和窗口函數,有時候卻不行。后來通過查看mysql版本,發現5開頭的版本不支持with as,不支持窗口函數,但支持視圖和存儲過程。另外如果實在遇到某道題希望用8開頭的版本的功能,可以試試改成DB2的語言,其實和mysql差異較小。

select version(); -- 查看mysql版本

2、看清題意,理清思路,確定方向,再去解題很重要??梢韵仍诩埳舷犬嬕划嫴煌谋砀竦倪B接關系,描繪希望達到的效果,后面會輕松很多。
3、盡量用簡單高效的代碼,不要把問題想復雜,其實也就那些知識點,在不同情景去套用就可以,后來發現其實每道題真的是有在認真考查某一個或幾個知識點,所以要精練,要吃透每一道題。
4、一開始可以先簡單查詢了解一下題中涉及到的各個表格的大致情況,中間寫的時候盡量用子表表示中間過程的結果,可以用小模塊的方式寫,逐步測試確認,逐步擴展。后面可以再通過關鍵字把幾個中間過程的子表連接起來,就是最終的答案。
5、自己寫出答案后,也要多去學習排名靠前的人的解法,通過學習和模仿不斷反思、總結、提高,這個過程真的很重要。
6、最后也最重要的是,基本功很關鍵!一定要把基本的語法規則熟記于心,這樣可以省去很多犯小錯誤運行通不過的麻煩,建議整理一個常見語法和函數等cheatsheet,真的很有用。記得時常提醒自己,就算刷了一些題,也要回頭梳理一下基本的概念,通過回顧總結鞏固基本功,加深全局的把控意識。

總結

以上是生活随笔為你收集整理的SQL刷题,procedure存储过程(hackerrank-sql-Print Prime Numbers),58道题完结撒花啦的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。