Загрузка данных


-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Хост: 127.0.0.1:3306
-- Время создания: Апр 15 2026 г., 11:46
-- Версия сервера: 10.8.4-MariaDB
-- Версия PHP: 8.1.9

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- База данных: `work`
--

-- --------------------------------------------------------

--
-- Структура таблицы `attendance`
--

CREATE TABLE `attendance` (
  `id` int(11) NOT NULL,
  `employee_id` int(11) NOT NULL,
  `check_in` datetime NOT NULL,
  `check_out` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Дамп данных таблицы `attendance`
--

INSERT INTO `attendance` (`id`, `employee_id`, `check_in`, `check_out`) VALUES
(1, 1, '2025-04-10 08:55:00', '2025-04-10 17:05:00'),
(2, 1, '2025-04-11 09:10:00', '2025-04-11 18:20:00'),
(3, 1, '2025-04-14 08:45:00', '2025-04-14 17:00:00'),
(4, 1, '2025-04-15 09:00:00', NULL),
(5, 2, '2025-04-10 09:30:00', '2025-04-10 18:00:00'),
(6, 2, '2025-04-11 09:15:00', '2025-04-11 17:45:00'),
(7, 2, '2025-04-14 10:00:00', '2025-04-14 16:30:00'),
(8, 3, '2025-04-10 08:00:00', '2025-04-10 16:00:00'),
(9, 3, '2025-04-11 08:10:00', '2025-04-11 17:00:00'),
(10, 3, '2025-04-14 07:50:00', '2025-04-14 15:45:00'),
(11, 3, '2025-04-15 08:05:00', '2025-04-15 16:30:00'),
(12, 4, '2025-04-10 10:15:00', '2025-04-10 19:00:00'),
(13, 4, '2025-04-11 09:45:00', '2025-04-11 18:30:00'),
(14, 4, '2025-04-14 10:30:00', '2025-04-14 17:45:00'),
(15, 5, '2025-04-10 09:00:00', '2025-04-10 18:00:00'),
(16, 5, '2025-04-11 08:30:00', '2025-04-11 17:30:00');

-- --------------------------------------------------------

--
-- Структура таблицы `employees`
--

CREATE TABLE `employees` (
  `id` int(11) NOT NULL,
  `full_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `position` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `hire_date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Дамп данных таблицы `employees`
--

INSERT INTO `employees` (`id`, `full_name`, `position`, `hire_date`) VALUES
(1, 'Иванов Сергей Петрович', 'Разработчик', '2024-11-01'),
(2, 'Петрова Анна Владимировна', 'Менеджер', '2025-01-15'),
(3, 'Сидоров Алексей Иванович', 'Тестировщик', '2025-02-01'),
(4, 'Козлова Елена Дмитриевна', 'Дизайнер', '2025-03-10'),
(5, 'Николаев Дмитрий Сергеевич', 'Разработчик', '2025-04-01');

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `attendance`
--
ALTER TABLE `attendance`
  ADD PRIMARY KEY (`id`),
  ADD KEY `employee_id` (`employee_id`);

--
-- Индексы таблицы `employees`
--
ALTER TABLE `employees`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `attendance`
--
ALTER TABLE `attendance`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17;

--
-- AUTO_INCREMENT для таблицы `employees`
--
ALTER TABLE `employees`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- Ограничения внешнего ключа сохраненных таблиц
--

--
-- Ограничения внешнего ключа таблицы `attendance`
--
ALTER TABLE `attendance`
  ADD CONSTRAINT `attendance_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`id`);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
1. Вывести список всех сотрудников, добавив столбцы: год найма, месяц
найма числом, день недели найма (числом от 0 до 6, где 0 — понедельник).
2. Посчитать, сколько сотрудников было нанято в каждом месяце, и
отсортировать по количеству от большего к меньшему.
3. Найти все записи о посещениях за 11 апреля 2025 года.
4. Найти всех сотрудников, нанятых в последние 60 дней (относительно
текущейдаты).
5. Вывести сотрудников, у которых сегодня нет отметки о выходе
(поле check_out пустое), с указанием времени входа.
6. Для каждого сотрудника посчитать количество полных месяцев,
проработанных в компании (от даты найма до сегодняшнего дня).
7. Для каждой записи посещения посчитать продолжительность рабочего
дня в часах с одним знаком после запятой; если check_out отсутствует —
вывести NULL.
8. Вывести список посещений, где дата входа отображается в
формате ДД.ММ.ГГГГ, а время входа — в формате ЧЧ:МИ.
9. Вывести информацию о сотруднике в виде строки: "Фамилия Имя
Отчество работает с дд месяц гггг года".
10. Посчитать общее количество отработанных часов для каждого
сотрудника за апрель 2025 года (учитывать только завершённые рабочие дни)
и отсортировать по убыванию часов.
11. Найти сотрудника, который пришёл сегодня на работу раньше всех.