[sql面试经验] 经典sql面试题及答案第3期
經典sql面試題及答案第三期
題目:
編寫查詢,從EMPLOYEE表中找出哪一年最多員工加入公司,總共多少人加入。
一個叫 team 的表,里面只有一個字段name, 一共有4 條紀錄,分別是a,b,c,d, 對應四個球隊,現在四個球隊進行比賽,用一條sql 語句顯示所有可能的比賽組合。
編寫查詢,從EMPLOYEE表中查找所有員工,他們的收入高于他們部門的平均工資。
列出員工的HireDate服務年限和月份。
如何在單查詢中將EMPLOYEE表的性別Gender從“Male”更新為“Female”和從“Female”更新為“Male”?
觸發器的作用?
計算超過2名員工的部門總薪水。
如何從現有表中創建一個空表?
如何從兩個表中獲取公共記錄?
如何從表中交替提取記錄?
答案:
select MAX(TotalEmployees) from
(select YEAR(HireDate) as Year, COUNT(EmployeeID) as TotalEmployees
from EMPLOYEE
group by YEAR(HireDate)) as tmp
select a.name, b.name from #team a, #team b where a.name< b.name order by a.name;
SELECT OUTEREMPLOYEE.*, OUTEREMPLOYEE.Salary
FROM EMPLOYEE OUTEREMPLOYEE
WHERE OUTEREMPLOYEE.Salary >
(SELECT AVG(INNEREMPLOYEE.Salary)
FROM EMPLOYEE INNEREMPLOYEE
WHERE OUTEREMPLOYEE.DepartmentID = INNEREMPLOYEE.DepartmentID)
SELECT EMPLOYEE.*,
YEAR(HireDate) AS Years, MONTH(HireDate) AS Months
FROM EMPLOYEE
UPDATE EMPLOYEE
SET EMPLOYEE.Gender =
CASE EMPLOYEE.Gender
WHEN 'Male' THEN 'Female'
WHEN 'female' THEN 'Male'
END
觸發器是一中特殊的存儲過程,主要是通過事件來觸發而被執行的。它可以強化約束,來維護數據的完整性和一致性,可以跟蹤數據庫內的操作從而不允許未經許可的更新和變化。可以聯級運算。如,某表上的觸發器上包含對另一個表的數據操作,而該操作又會導致該表觸發器被觸發。
select DepartmentID, SUM(Salary) as totalSalary
from #EMPLOYEE
group by DepartmentID
having COUNT(EmployeeID) > 2
Select * into studentcopy from student where 1 = 2
Select StudentID from student
INTERSECT
Select StudentID from Exam
顯示偶數:
Select studentId
from (Select rowno, studentId from student) as t
where mod(rowno,2) = 0
顯示奇數:
Select studentId
from (Select rowno, studentId from student)
where mod(rowno,2) = 1
說明:本文限于篇幅,故而只展示部分的面試內容,完整的Java面試學習文檔小編已經幫你整理好了,有需要的朋友點贊+關注私信我免費領取Java、大廠面試學習資料哦!
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
總結
以上是生活随笔為你收集整理的[sql面试经验] 经典sql面试题及答案第3期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive SQL面试题(附答案)
- 下一篇: [sql面试经验] 经典sql面试题及答