經典sql面試題及答案第1期
題目:
-
編寫查詢,查詢表中的行總數。
-
編寫查詢,消除表結果中的重複記錄。
-
編寫查詢,獲取t_employee表中designation欄位前3個字元。
-
查詢t_employee表,合併輸出Designation和Department兩個欄位的內容。
-
如果使用union和union all合併4條SQL子查詢,union會有多少次被用來去除重複行?
-
IN和BETWEEN之間的區別是什麼,在WHERE子句中如何使用?
-
解釋“LIKE”關鍵字在WHERE子句中如何使用?SQL有哪些萬用字元?
-
怎樣使用“LIKE”語句?
-
解釋 GROUP BY 和 HAVING 子句的用法。
-
在t_employee表中,department欄位可為空。編寫查詢,獲取尚未分配部門的員工。
答案:
-
select count(*) from tblsample;
-
Select distinct * from tblSample;
-
Select substr(designation,1,3) from t_employee;
-
Select Designation + ‘ ‘ + Department from t_employee;
-
1次。
-
BETWEEN子句是用來獲取一個範圍值,而IN子句是從指定值列表中獲取對應資料。
-
LIKE是用於部分字串的匹配。SQL有兩個萬用字元,“%”(匹配字串的任何字元)和“_”(匹配任意單個字元)。
-
在區域性搜尋中使用。例如,你需要找到lastname包含“gat”字母的所有員工,那麼你可以使用下面的查詢、匹配搜尋條件:
Select empid, firstname, lastname from t_employee where lastname like ‘%gat%’;
這可能會搜尋到lastname包含字元“gat”的所有僱員,像Gates、Gatsby、Gatsburg、Sogatsky...
"%"用於表示名稱中剩餘的所有字元。這個查詢獲取在字串中包含“gat”的所有記錄。
-
利用group by子句分組資料,當select語句中使用到組函式和欄位一起連用時會用到group by,否則會出現錯誤。Group by 把select查詢的結果集分成幾個小組,這個group by子句可以跟在where後面且在having前面。Group by子句也會觸發排序操作,會按分組欄位排序。 b
-
Select empid, firstname, lastname from t_employee where department is null;