你能答對幾道SQL題?

2021-09-23 19:40:00 字數 3877 閱讀 7583

我們使用的是postgresql資料庫,以下是在審核和優化開發人員sql時發現的一些問題,現整理共享出來希望對各位有用,每個案例先都構造了一部分資料,然後提乙個問題,看是否你能回答出來(記住先不要看執行結果),然後把你的結果和實際結果對比看差異在**,一切的答案在執行計畫中會告訴你。

案例1:

droptableifexiststest1;

createtabletest1

(idint,

namevarchar(

32));

droptableifexiststest2;

createtabletest2

(idint,

namevarchar(

32));

insertintotest1values(1,

'a'),(2,

'b'),(3,

'c'),(4,

'd');

insertintotest2values(1,

'a'),(2,

'b'),(

3,null),(4,

'dd');

--請問這個語句返回什麼結果集

selectt1.id

,t1.namefromtest1 t1wheret1.namenotin

(selectt2.namefromtest2 t2);

案例2:

droptableifexiststest1;

createtabletest1

(idint,

namevarchar(

32));

droptableifexiststest2;

createtabletest2

(idint,

namevarchar(

32));

insertintotest1values(1,

'aa'

),(2

,'bb'

),(3

,'cc');

insertintotest2values(2,

'aaa'

),(3

,'bbb');

--請問這個語句返回什麼結果集

selecta.id,

a.name,

b.id,

b.name

fromtest1 a

leftjointest2 b

ona.id

=b.id

anda.name

='bb';

--請問這個語句返回什麼結果集

selecta.id,

a.name,

b.id,

b.name

fromtest1 a

leftjointest2 b

ona.id

=b.id

whereb.name

='bbb';

案例3:

droptableifexiststest1;

createtabletest1

(idint,

namevarchar(

32));

droptableifexiststest2;

createtabletest2

(idint,

namevarchar(

32));

insertintotest1values(1,

'a'),(2,

'b'),(3,

'c'),(4,

'd');

insertintotest2values(1,

'a'),(1,

'b'),(

3,null),(4,

'dd');

--請問這個語句是否會報錯

selectcount(*)

from

(selectt1.id,

(selectt2.namefromtest2 t2wheret1.id

=t2.id)

fromtest1 t1)t

; 案例4:

droptableifexiststest1;

createtabletest1

(idint,

namevarchar(

32));

droptableifexiststest2;

createtabletest2

(id1int,

namevarchar(

32));

insertintotest1values(1,

'a'),(2,

'b'),(3,

'c'),(4,

'd');

insertintotest2values(1,

'a'),(1,

'b');

--請問這個返回什麼結果集

select

*fromtest1whereidin

(selectidfromtest2);

案例5:droptableifexiststest1;

createtabletest1

(idint);

insertintotest1values(

1),(

2),(

3),(

4),(

5),(

6),(

7),(

8),(

9),(

10);

--請問這個返回什麼結果集

selectcount(id

<5)

fromtest1;

這幾道JS面試刁鑽題,你能答對嗎

點讚再看,養成習慣,每日一題系列會一直更新下去,你們的支援是我持續分享的最大動力?1,2,3 map parseint 通過分析可知,上述 就相當於 parseint 1 0 相當於 parseint 1 所以答案就是 1 parseint 2 1 把2當做1進製來理解 parseint 3 2 把...

關於java繼承的一道題,你能答對嗎?

題目 寫出下面程式的輸出 class a public string show a obj class bextends a public string show a obj class cextends b class dextends b public class test 分割線 答案 a a...

幾道比較難的SQL題

select from article where create timenow article time order by create time asc limit 1 select a.rownum rownum 1 as rowno from a,select rownum 3 b通過變數r...