關於今天隨筆(有關於sql)

2021-07-03 14:03:23 字數 1106 閱讀 7259

今天怎麼說那,本來說是不上班的,下著雨,睡覺的好日子,可惜要上班,心情很不好,中午有個面試,還要筆試,感覺答的不好,面試的時候態度也不好,先給那兩個面試的致個歉。被問的體無完膚,其實很多東西我都是會用的就是一下子不知道怎麼來答了,可悲的是老用工具一些plsql的基本語法忘了,比如儲存的,就是沒想起來是create or re'place procedure ... (...)  is ... begin ...end;等等的,

記錄一些問題,先說說sql方面的

1、乙個表test按id排序,並查詢前8條

我是這樣寫的: select * from test t where rownum>9 order by id;

他是這樣問的,為啥要用rownum,不用id>9,我就懵了不知道id可以之間取前八條,就問如果id是uuid,或者是number的時候,直接用id可以嗎,他說id是用序列生成的,可以得,我就不知道了,回來我試了下,如果乙個表的id都是大於8的怎麼可以查出來結果那,我真心搞不懂了

2、sql優化,select * from test1 as t1 where t1.id in(select t2.id from test2 as t2);

當時感覺給表起別名很奇怪為啥要用as那,我開始懷疑我以前錯過了什麼,但是機子上試了下,好像確實不行,不知道怎麼回事。尷尬中。。。。(求人解答是不是別的那可以這樣寫,本人用的是oracle)

下面說優化,當時時間急沒寫,我現在的水平理解一般優化就是建索引和替換一些關鍵字,如in,like等

上面的的也不一定非要替換in,在test1表資料很大而test2表資料小的時候完全可以這樣寫,但是當test2表資料大的時候就要用exists,可以這樣來寫

select * from test1 t1 where exists (select t2.id from test2 t2 where t2.id = t1.id);

3分頁 oracle寫法

select * from (

select rownum rn_, t.* from (  select * from sp_sbzl_bldyxx ) t

) where rn_ <= 20 and rn_ >= 0

接下來了解mybatis和hibernate的快取機制(晚上開始)。

關於今天發生的事

今天忒鬱悶了,下午最後一節課,逃課去打羽毛球了,結果下課前老師點名了,急急忙忙跑到教室,老師都已經點完了,沒辦法,厚著臉皮對老師說,我剛剛睡著了,能不能給我一張紙,估計學長也不好意思說我,就給了我一張,當時心中那個喜啊,交完後,越發感覺不對,趕快打 給同學,同學居然已經幫我交了,心裡真是冰涼冰涼,沒...

關於今天的presentation想到的

今天得到乙個機會再各位大boss前面做presentation,總體來說,presentation還可以,雖然只給了我10 15分鐘的時間,但實際持續的時間比這個要長,因為整個過程問題boss們的問題比較多,有較多的互動和q a。回顧一下 做的好的 1 準備比較充分 因為在presentation之...

關於今天GIT的學習總結

今天從完全不了解git到初步的入門,確實覺得學習新東西還是這種英文的東西覺得很有幹勁,能夠激發出自己的學習能力,從開始的註冊到安裝都是乙個全英文式的過程,發現以前沒學好的英語到現在是那麼的重要,發現自己欠缺的還有很多很多。然後還自主學習了git的分支管理,開篇是這樣說的對於分支人人都懂其意思,但gi...