MySQL员工打卡日志表——数据库练习

举报
红目香薰 发表于 2024/02/25 12:52:48 2024/02/25
【摘要】 ​简单的员工打卡日志表的建表语句以及对应的测试数据。为了简单明了,我们将使用一个包含以下字段的表:列名数据类型描述idINT记录的唯一标识符nameVARCHAR(50)员工姓名departmentVARCHAR(50)员工所在的部门log_dateDATE打卡日期time_inTIME打卡时间(上班)time_outTIME打卡时间(下班)建表语句CREATE TABLE Employee...

简单的员工打卡日志表的建表语句以及对应的测试数据。为了简单明了,我们将使用一个包含以下字段的表:

列名

数据类型

描述

id

INT

记录的唯一标识符

name

VARCHAR(50)

员工姓名

department

VARCHAR(50)

员工所在的部门

log_date

DATE

打卡日期

time_in

TIME

打卡时间(上班)

time_out

TIME

打卡时间(下班)

建表语句

CREATE TABLE Employee_Attendance_Log (

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(50),

department VARCHAR(50),

log_date DATE,

time_in TIME,

time_out TIME

);

运行效果: 

测试信息

INSERT INTO Employee_Attendance_Log (name, department, log_date, time_in, time_out)VALUES

('张三', '销售部', '2023-07-01', '09:00', '18:00'),

('李四', '市场部', '2023-02', '09:30', '17:30'),

('王五', '人力资源部', '2023-07-03', '11:00', NULL),

('赵六', '技术部', '2023-07-04', NULL, '17:30'),

('张三', '销售部', '2023-07-05', '12:30', '18:30'),

('李四', '市场部', '2023-07-06', '13:35', '16:45'),

('王五', '人力资源部', '2023-07-07', '16:38', NULL),

('赵六', '技术部', '2023-07-14', NULL, NULL),

('张三', '销售部', '2023-07-15', '16:45', ''),

('李四', '市场部', '2023-07-16', '', ''),

('王五', '人力资源部', '', '', '21:45');

运行效果: 

表查询

查询语句:

select * from Employee_Attendance_Log;

运行效果: 

练习题

题目1:如何查询在 ‘人力资源部’ 的所有员工的出勤日志?

答案:可以使用以下查询语句来查询在 ‘人力资源部’ 的所有员工的出勤日志:

SELECT * FROM Employee_Attendance_Log WHERE department = '人力资源部';

解析:根据查询条件,只需要在 ‘WHERE’ 子句中指定部门字段为 ‘人力资源部’,即可查询出在 ‘人力资源部’ 的所有员工的出勤日志。

题目2:如何查询在 ‘技术部’ 的员工的出勤日志中未填写离开时间的记录?

答案:可以使用以下查询语句来查询在 ‘技术部’ 的员工的出勤日志中未填写离开时间的记录:

SELECT * FROM Employee_Attendance_Log WHERE department = '技术部' AND time_out IS NULL;

解析:根据查询条件,需要同时满足部门字段为 ‘技术部’ 和离开时间字段为 NULL,即可查询到在 ‘技术部’ 的员工的出勤日志中未填写离开时间的记录。

题目3:如何统计每个月份内各部门的员工出勤总次数?

答案:可以使用以下查询语句来统计每个月份内各部门的员工出勤总次数:

SELECT department, MONTH(log_date) AS Month, COUNT(*) AS AttendanceCount FROM Employee_Attendance_Log GROUP BY department, Month;

解析:首先根据表名和字段名选择出需要统计的字段,然后使用 GROUP BY 子句按照部门和月份进行分组,最后使用 COUNT(*) 函数统计每个月份内各部门的员工出勤总次数。

题目4:如何查询在特定日期范围内所有员工的出勤日志?

答案:可以使用以下查询语句来查询在特定日期范围内所有员工的出勤日志:

SELECT * FROM Employee_Attendance_Log WHERE log_date BETWEEN '2023-07-01' AND '2023-07-31';

解析:根据查询条件,只需要在 ‘WHERE’ 子句中指定日期字段在特定日期范围内即可查询到在该范围内的所有员工的出勤日志。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。