日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表

發布時間:2023/12/29 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、需求分析

我們的開發團隊,計劃開發一款公司人事管理軟件,用于幫助中小型企業進行更加高效的人事管理。現在需要對數據庫部分進行設計和開發,根據對需求和立項的分析,我們確定該數據庫中最核心的兩個表為員工表(Employee)和部門表(Department)。兩個表的結構如下:

Employee表:

字段名

數據類型

約束

說明

employeeId

int

非空,主鍵,自增

員工編號

name

varchar

非空

姓名

birth

date

?

出生日期

joblevel

varchar

長度10

職位級別

salary

decimal

長度10,2位小數

薪資

phone

varchar

長度11

電話

departmentId

int

外鍵,非空,引用Department表的主鍵

所屬部門

Department表:

字段名

數據類型

約束

說明

departmentId

int

非空,主鍵,自增

部門編號

name

varchar

長度20

部門名稱

二、具體要求

  • 使用DDL語言創建數據庫(Company),創建數據表Employee和Department;
  • 使用DML語言插入測試數據,具體數據如下(請按照測試數據插入):
  • Department:

    employeeId

    name

    birth

    joblevel

    salary

    phone

    departmentId

    1001

    張強

    1986-2-3

    一級

    8000

    13585422655

    1

    1003

    萌萌

    1990-4-19

    二級

    6000

    18548775264

    2

    1004

    李小峰

    1973-7-20

    二級

    5700

    18625489512

    1

    1006

    劉珊

    1976-6-28

    一級

    7500

    18524811174

    2

    1007

    李梅

    1980-1-29

    二級

    5500

    13958621455

    3

    1008

    張寶玉

    1982-9-23

    二級

    5600

    13715620210

    1

    1009

    陳大壯

    1978-5-21

    一級

    7700

    15848562585

    4

    1010

    張天琪

    1980-9-15

    二級

    5000

    13965815822

    4

    Emploment:

    departmentId

    name

    1

    商務部

    2

    行政部

    3

    財務部

    4

    研發部

    3、考試結束時,分離出數據腳本文件和查詢腳本文件,一并上交;

    三、功能實現

    創建數據庫:

    CREATE DATABASE Company;

    創建Employee表:

    CREATE TABLE employee (employeeId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,birth DATE,joblevel VARCHAR(10),salary DECIMAL(10,2),phone VARCHAR(11),departmentId INT NOT NULL );

    創建Department表:

    CREATE TABLE Department (departmentId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20) );

    設置外鍵:

    ALTER TABLE Employee ADD CONSTRAINT fk_departmentId FOREIGN KEY (departmentId) REFERENCES department(departmentId)

    插入數據:

    -- ---------------------------- -- Records of department -- ---------------------------- INSERT INTO department VALUES ('1', '商務部'); INSERT INTO department VALUES ('2', '行政部'); INSERT INTO department VALUES ('3', '財務部'); INSERT INTO department VALUES ('4', '研發部'); -- ---------------------------- -- Records of employee -- ---------------------------- INSERT INTO employee VALUES ('1001', '張強', '1986-02-03', '一級', '8000.00', '13585422655', '1'); INSERT INTO employee VALUES ('1003', '萌萌', '1990-04-19', '二級', '6000.00', '18548775264', '2'); INSERT INTO employee VALUES ('1004', '李小峰', '1973-07-20', '二級', '5700.00', '18625489512', '1'); INSERT INTO employee VALUES ('1006', '劉珊', '1976-06-28', '一級', '7500.00', '18524811174', '2'); INSERT INTO employee VALUES ('1007', '李梅', '1980-01-29', '二級', '5500.00', '13958621455', '3'); INSERT INTO employee VALUES ('1008', '張寶玉', '1982-09-23', '二級', '5600.00', '13715620210', '1'); INSERT INTO employee VALUES ('1009', '陳大壯', '1978-05-21', '一級', '7700.00', '15848562585', '4'); INSERT INTO employee VALUES ('1010', '張天琪', '1980-09-15', '二級', '5000.00', '13965815822', '4');

    題目:

    1、通過層層面試篩選,你正式成為該公司研發部的一名二級員工,請以自己的信息,插入一條數據到員工表;(5)

    INSERT INTO employee VALUES (NULL, '楊明金', '2005-06-01', '二級', '4500.00', '18877778888', '4');

    2、統計研發部的員工信息,并按照薪資升序排列;(5)

    SELECT * FROM employee e,department d WHERE e.departmentid=d.departmentid AND d.name='研發部' ORDER BY salary

    3、給二級員工中,薪資低于5500的,增加薪資500元,并將數據更新到數據庫;(10)

    UPDATE employee SET salary=salary+500 WHERE joblevel='二級' AND salary<5500

    4、查詢統計每個部門的員工平均薪資,并顯示部門名稱和平均薪資;(10)

    SELECT d.name 部門名稱,ROUND(AVG(salary),2) 平均薪資 FROM employee e,department d WHERE e.departmentid=d.departmentid GROUP BY d.name

    5、“陳大壯”由于個人原因,從公司離職了,故需從數據庫中,刪除他的個人信息,請使用DML語言實現該需求;(10)

    DELETE FROM employee WHERE name='陳大壯'

    6、李梅昨天去換手機卡了,新的號碼是15677289289,在系統中,需要對她的電話進行更新。(10)

    UPDATE employee SET phone='15677289289' WHERE name='李梅'

    7、查詢公司中年齡大于35歲姓張的員工信息;(10)

    SELECT * FROM employee WHERE FLOOR(DATEDIFF(CURDATE(),birth)/365)>35 AND name like '張%'

    8、計算年齡最大的員工和年齡最小的員工相差的歲數;(10)

    SELECT DATEDIFF(MAX(birth),MIN(birth))/365 FROM employee

    9、查看最大年齡和最小年齡:

    SELECT MAX(DATEDIFF(CURDATE(),birth)/365) 最大年齡,MIN(DATEDIFF(CURDATE(),birth)/365) 最小年齡 FROM employee;

    提示:

    內置函數curdate()顯示當前日期

    內置函數datediff(date1,date2)用于計算日期date1和date2之間相隔的天數

    ?

    ?

    ?

    ?

    總結

    以上是生活随笔為你收集整理的MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。