你能答對幾道SQL題?
我們使用的是PostgreSQL資料庫,以下是在稽核和優化開發人員SQL時發現的一些問題,現整理共享出來希望對各位有用,每個案例先都構造了一部分資料,然後提一個問題,看是否你能回答出來(記住先不要看執行結果),然後把你的結果和實際結果對比看差異在哪裡,一切的答案在執行計劃中會告訴你。
案例1:
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(id INT, name VARCHAR(32));
DROP TABLE IF EXISTS test2;
CREATE TABLE test2(id INT, name VARCHAR(32));
INSERT INTO test1 VALUES(1,`A`),(2,`B`),(3,`C`),(4,`D`);
INSERT INTO test2 VALUES(1,`A`),(2,`B`),(3,NULL),(4,`DD`);
—請問這個語句返回什麼結果集
SELECT t1.id,t1.name FROM test1 t1 WHERE t1.name NOT IN (SELECT t2.name FROM test2 t2);
案例2:
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(id INT, name VARCHAR(32));
DROP TABLE IF EXISTS test2;
CREATE TABLE test2(id INT, name VARCHAR(32));
INSERT INTO test1 VALUES(1,`aa`),(2,`bb`),(3,`cc`);
INSERT INTO test2 VALUES(2,`aaa`),(3,`bbb`);
—請問這個語句返回什麼結果集
SELECT a.id,
a.name,
b.id,
b.name
FROM test1 a
LEFT JOIN test2 b
ON a.id = b.id
AND a.name = `bb`;
—請問這個語句返回什麼結果集
SELECT a.id,
a.name,
b.id,
b.name
FROM test1 a
LEFT JOIN test2 b
ON a.id = b.id
WHERE b.name = `bbb`;
案例3:
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(id INT, name VARCHAR(32));
DROP TABLE IF EXISTS test2;
CREATE TABLE test2(id INT, name VARCHAR(32));
INSERT INTO test1 VALUES(1,`A`),(2,`B`),(3,`C`),(4,`D`);
INSERT INTO test2 VALUES(1,`A`),(1,`B`),(3,NULL),(4,`DD`);
—請問這個語句是否會報錯
SELECT COUNT(*)
FROM (SELECT t1.id,
(SELECT t2.name FROM test2 t2 WHERE t1.id = t2.id)
FROM test1 t1) t;
案例4:
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(id INT, name VARCHAR(32));
DROP TABLE IF EXISTS test2;
CREATE TABLE test2(id1 INT, name VARCHAR(32));
INSERT INTO test1 VALUES(1,`A`),(2,`B`),(3,`C`),(4,`D`);
INSERT INTO test2 VALUES(1,`A`),(1,`B`);
—請問這個返回什麼結果集
SELECT * FROM test1 WHERE id IN (SELECT id FROM test2);
案例5:
DROP TABLE IF EXISTS test1;
CREATE TABLE test1(id INT);
INSERT INTO test1 VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
—請問這個返回什麼結果集
SELECT COUNT(id < 5) FROM test1;
相關文章
- 測試一下:HBase 40道測試題,你能答對幾道
- 關於Tomcat的13道面試題,你能答對幾個?Tomcat面試題
- 75 道 BAJT 高階 Java 面試題,你能答上幾道?Java面試題
- 75 道 BAJT 中高階 Java 面試題,你能答上幾道?Java面試題
- 2018美團前端面試題,兩年經驗,你能答對幾道?前端面試題
- 大廠面試常見的幾道SQL題,看你能答嗎?面試SQL
- 10道網路安全基礎面試題,你答對了幾道?面試題
- js非同步程式設計面試題你能答上來幾道JS非同步程式設計面試題
- 網易JAVA面試你能答對幾題?(文末附答案解析)Java面試
- 【譽天教育】這幾道linux基礎選擇題你答對了嗎?Linux
- 2019 全國程式設計師高考卷曝光,你能答對幾題?程式設計師
- 面試時這麼問你Spring Boot,你能答對幾個?面試Spring Boot
- 精選的這19道C/C+面試題,你能答對多少呢?面試題
- promise執行順序面試題令我頭禿,你能作對幾道Promise面試題
- 面試現場簡單幾道java演算法題, 你能寫出幾道?面試Java演算法
- 6道常見的python面試題,你答對了嗎?Python面試題
- 從一道沒人能答對的面試題聊聊Java的值傳遞面試題Java
- 這些js原型及原型鏈面試題你能做對幾道JS原型面試題
- 30道Web前端面試題,你能答出多少道?Web前端面試題
- 22道js輸出順序問題,你能做出幾道JS
- 關聯式資料庫SQL面試排名前100道問答題資料庫SQL面試
- 10 道資料結構演算法題,不看答案你會幾道題資料結構演算法
- 27道Redis精選面試題,你會做幾題?Redis面試題
- 【Java】幾道讓你拿offer的面試題Java面試題
- 一道面試題牽出12個前端硬核知識點,你能答出幾個?面試題前端
- 10道Linux常見面試題,你知道幾個?Linux面試題
- 常見Linux運維面試題,你答對了嗎?Linux運維面試題
- 2019年一線大廠最全JVM面試100問!你能答對多少?JVM面試
- 這30道Web前端面試題,一個小時內你能否答得出來?Web前端面試題
- 8個最常見卻最容易出錯的演算法題,面試幾乎都會考到,來測試下你能答出幾道?演算法面試
- 幾道經典邏輯推理題,提高你的邏輯思考能力
- 問了幾人,MySQL changebuffer 這點都沒答對MySql
- 週三面試Python開發,這幾道Python面試題差點答錯,Python面試題No7Python面試題
- 幾道前端面試題小記前端面試題
- 面試中常見的幾道智力題 來看看你會做幾道(2)?面試
- 這幾道Redis面試題都不懂,offer肯定與你擦肩而過Redis面試題
- 19道小米運維工程師筆試真題,你能通關嗎?運維工程師筆試
- 最常見的網路安全熱門面試題合集,你答對了嗎?面試題
- 技術面試中常見的幾道智力題 來看看你會做幾道?面試