Employee(EID, Name, Sex, BirthYear, Full, Salary, DeptNo)

屬性分別代表員工「編號」、「姓名」、「性別」、「出生年」、「專職否」、「薪水」、「所屬部門代號」,而以「編號」為其Primary Key, “Full”的值為字元Y 時表示專職,N 時表示兼職。

Department(DNo, Name, Area)

屬性分別代表部門「代號」、「名稱」、「所在地區」,而以「代號」為其Primary Key。「名稱」值可能為「生產部」、「行銷部」等中文字串,「所在地區」值可能為「台北市」、「高雄市」等中文字串。

請寫出下列查詢之SQL:

(一)對所有專職人員,請依男女分別列出平均年齡,平均年齡欄位另取名為Average_Year 。

SELECT
  AVG(BirthYear) AS Average_Year,Sex
FROM
  Employee
WHERE Full=’Y’
GROUP BY Sex

(二)以一道SQL列出「生產部」的員工中最高與最低薪水的差距,差距欄位取名為Salary_Difference。

SELECT
  max(Salary)-min(Salary) as ‘Salary_Difference’
FROM
  Employee,Department
WHERE
  DeptNo = DNo AND Department.Name= ‘生產部’

(三)列出包含所有所屬部門在「台北市」的員工,欄位有「姓名」(另取名為EName)、「薪水」、「所屬部門名稱」(另取名為DName)。

SELECT
  Employee.Name as ‘EName’, Salary, Department.Name as ‘DName’
FROM
  Employee,Department
WHERE
  DeptNo = DNo AND Department.Area=’台北市’

請用SQL 寫出查詢:“學生王小明或學號為99開頭的學生所選課的課程名稱及老師”(只要秀課程名稱及老師即可,不要重複)。

SELECT

  Course.課程名稱,Course.開課老師

FROM

  Student,Selection,Course

WHERE

  Student.姓名 = ‘王小明’ AND Student.學號 = Selection.學號 AND Course.課程編號 = Selection.課程編號 OR Student.學號 LIKE ‘99%’ AND Student.學號 = Selection.學號 AND Course.課程編號 = Selection.課程編號

GROUP BY Course.課程名稱,Course.開課老師

  1. Begin Transaction:開啟交易機制。
  2. 執行資料表內容資料的寫入或異動。
  3. Commit:確認交易,在確認時資料才會寫入資料表。
  4. Rollback:回復交易,執行這行時,會回復在交易內所有T-SQL所更動的內容。

分享這篇文章的網址這篇文章的網址(可分享到FB、LINE):

用LINE分享給朋友: