兩道簡單的oracle題目
最近一個朋友想讓我幫他一個忙,看似是一個很簡單的小忙,就是出兩道l題,一道可以難一些,可以透過這道題看出一個開發人員的資料庫水平,sql或者pl/sql都可以,另外一道題需要是一道sql題,可以透過這個題目看出開發人員的sql水平。
問題很簡單,但是要求不簡單,而且透過這兩個題目著實能夠反映得了出題者的水平,所以自己也是斟酌再三,一直沒有定下來這兩道題。
首先這兩道題是面向開發人員的,所以涉及到oracle中體系結構中比較細節的東西也是不太適用的,儘管tom還是一貫希望開發人員能夠儘可能多的熟悉資料庫體系結構,但是從我目前的瞭解來說,開發人員還是更多的把資料庫當做一個黑盒來使用,可能參與一些大型資料分析工作的人來生活,sql水平要高不少,但是可能更傾向於sql語句調優,這個時候和索引還是有很大的關聯,對於出題來說,可能面也有點大,所以斟酌再三,還是出了下面的這道題,是關於pl/sql的,但是和開發聯絡還是比較緊密的。
選出下面的可能存在效能問題的Pl/sql 塊。
1)
declare
cursor test_cur is select object_id,object_name from t ;
begin
for i in test_cur loop
execute immediate 'insert into t values(:a,:b)' using i.object_id,i.object_name;
end loop;
commit;
end;
/
2)
declare
cursor test_cur is select object_id,object_name from t ;
begin
for i in test_cur loop
execute immediate 'insert into t values('||i.object_id||','||chr(39)||i.object_name||chr(39)||')';
end loop;
commit;
end;
/
3)
declare
cursor test_cur is select object_id,object_name from t ;
begin
for i in test_cur loop
insert into t values(i.object_id,i.object_name);
end loop;
commit;
end;
/
4)
begin
for i in (select object_id,object_name from t) loop
execute immediate 'insert into t values(:a,:b)' using i.object_id,i.object_name;
end loop;
commit;
end;
/
這個題目的主要意圖就是希望在寫pl/sql的時候能夠考慮到繫結變數的值,對於sql語句的軟解析,硬解析的一些東西 ,這些方式可能在平時的工作都會涉及到,但是很可能自己沒有注意到其實有些pl/sql塊還是存在著很明顯的效能問題。
這道題目的答案是2
第二道題,是能夠從sql語句看出對方的水平來,自己也是斟酌再三,發現還是以一道比較簡單的題目來考察一下。
對於下面的sql語句,sql語句在解析的時候的順序是?
(1)Select empno,deptno
(2)from emp
(3)where deptno=1001
(4)group by deptno
(5)order by empno,
A. 1,2,3,4,5.
B. 2,3,4,1,5
C 5,4,3,2,1
D 2,3,4,5,1
透過這個問題可以看出大家對於一個簡單的sql語句的理解。可以看出哪些操作在前,哪些在後,透過這個也能間接反映出對於sql的理解,這個題目的答案為B
大家有什麼好的建議可以給我留言,也歡迎大家拍磚交流。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1727162/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一道簡單的題
- 【LeetCode】簡單題目集LeetCode
- Python的 100道題目Python
- 聊聊一道簡單的javascript面試題JavaScript面試題
- 十道簡單演算法題演算法
- Flare-On 8th兩道題目復現(Challenge 5 & 7)
- 總結的一些簡單面試題目面試題
- M – Sort it 一組簡單一點的題目(三)
- 一組簡單一點的題目(五)R – Rectangles
- 一道無聊的題目
- LeetCode簡單演算法題目-JS解法LeetCode演算法JS
- 一道簡單的分配演算法題,求解演算法
- 分享一道有趣的 Leetcode 題目LeetCode
- 通過一道簡單的例題了解Linux核心PWNLinux
- 一組簡單一點的題目(六) T – 整數解
- 面阿里P7,竟問這麼簡單的題目?阿里
- 一組簡單一點的題目(六) B – 小兔的棋盤
- LeetCode演算法簡單題--JavaScript(每天一道題)LeetCode演算法JavaScript
- 用python手刃Leetcode(1):兩數之和【簡單題】PythonLeetCode
- 兩次pta題目總結
- 禪道簡單介紹
- 精研3道簡單的網易2018校招程式設計題程式設計
- 雜題隨筆 10.31 兩道LIS相關的題
- bugku一道逆向題目分析
- 一道騷面試題目面試題
- 01分數規劃的兩道例題
- 簡單演算法題:leetcode-2 兩數相加演算法LeetCode
- 簡單演算法題:leetcode-1 兩數之和演算法LeetCode
- 小白歡樂多——記ssctf的幾道題目
- 這道演算法題太太太太太簡單啦演算法
- 面試官:你能回答這兩個簡單的問題嗎面試
- 從兩道面試題說起面試題
- 真!手把手讓你簡單兩步擁有Oracle 23cOracle
- Oracle logmnr簡單測試Oracle
- 【leetcode 簡單】 第八十七題 兩整數之和LeetCode
- 面試現場簡單幾道java演算法題, 你能寫出幾道?面試Java演算法
- 【leetcode 簡單】 第八十五題 兩個陣列的交集 IILeetCode陣列
- 簡單介紹oracle重置序列的方法Oracle
- 2024/9/10+11 分塊雜題三道 + 縫合題兩道