MySQL練習-employees資料庫

來源:互聯網
上載者:User

標籤:ica   nts   div   color   ima   索引值   employees   練習   html   

安裝一個資料庫樣本——employees

使用工具為Navicat——(ctrl + q: 開啟新查詢時段

ctrl + r: 運行當前視窗內的所有語句)

參考http://www.cnblogs.com/chenyucong/p/5734800.html

  該資料庫中有6張關聯,記錄的資料為某一公司9個部門所有員工的薪資(包括離職員工),以下為關係圖。第一張表:departments

記錄的是9個部門的部門編號和部門名稱

第二張表:dept_emp

部門員工資料,員工id和部門id,其即時間和結束時間(註:9999的意思就是仍在職)

 

統計一下這張表的資料量,331603條記錄

SELECT COUNT(*) 
FROM dept_emp

再統計一下員工id(emp_no)的去重數量,300024條記錄

SELECT COUNT(DISTINCT emp_no)FROM dept_emp

差異3W條,為什嗎?有重複出現的員工id,我們嘗試把重複出現員工id篩選出來

SELECT emp_noFROM dept_empGROUP BY emp_noHAVING COUNT(emp_no)>1

好了,現在有了那近3W個有重複值的員工id,但我們仍然不清楚重複的原因,現在需要跟著重複員工id把完整的資訊篩選出來

SELECT * FROM dept_empWHERE emp_no IN (SELECT emp_noFROM dept_empGROUP BY emp_noHAVING COUNT(emp_no)>1)

現在結果很明確,他們是調部門了!所以該表記錄是資料真實含義是每個員工在每個部門所待的時間跨度。

但同時,也存在一個有趣的現象,就是沒有一個員工是調過兩次部門的,證明如下

SELECT * FROM dept_empWHERE emp_no IN (SELECT emp_noFROM dept_empGROUP BY emp_noHAVING COUNT(emp_no)>2)

這個現象我們看看能不能在接下的表中又所發現

 

第三張表:dept_manger

同第二張表結構差不多,每個部門的每個經理的任職時期,總共就24個人,每個部門至少有過兩個經理。

SELECT COUNT(DISTINCT emp_no) AS manger_sumfrom dept_managerGROUP BY dept_no

 

 第四張表:employees

員工資訊表,emp_no是唯一索引值,

統計結果與表二得出的資料一致。

SELECT COUNT(*) FROM employees;

 

 第五張表:salaries

 記錄每個員工每段時期的薪資!

 

 第六張表:title

 記錄每個員工每段時期的職位名稱!但請注意,周期與第五張表是不同的,因為在同一職位上你也是會漲工資的嘛

 

MySQL練習-employees資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.