Валидация импортированных данных
На этом этапе вы научитесь валидировать данные, которые были импортированы в таблицу MySQL. Валидация данных представляет собой важный этап для обеспечения точности и целостности ваших данных. Мы рассмотрим некоторые базовые методы валидации с использованием SQL-запросов.
Сначала добавим в таблицу employees
некоторые потенциально проблемные данные. Откройте терминал и используйте nano
для создания файла:
nano ~/project/employees_validation.csv
Теперь вставьте следующие данные в файл employees_validation.csv
. Обратите внимание, что последняя строка содержит некорректный формат электронной почты и отсутствует отдел:
3,Invalid,Email,invalid_email,Sales
4,Missing,Department,[email protected],
Нажмите Ctrl+X
, затем Y
, а затем Enter
, чтобы сохранить файл.
Теперь импортируем эти данные в таблицу employees
. Подключитесь к серверу MySQL:
mysql -u root -p
Если вас попросят ввести пароль, а вы его не устанавливали, просто нажмите Enter
.
Выполните следующие SQL-инструкции в оболочке MySQL:
USE company;
LOAD DATA INFILE '/home/labex/project/employees_validation.csv'
INTO TABLE employees
CHARACTER SET utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Теперь, когда данные импортированы, выполним несколько проверок валидации.
1. Проверка на некорректный формат электронной почты:
Мы можем использовать регулярное выражение для проверки на некорректный формат электронной почты. Выполните следующий SQL-запрос:
SELECT * FROM employees WHERE email NOT LIKE '%@%.%';
Этот запрос вернет все строки, в которых столбец email
не содержит символы @
и .
, которые являются обязательными для корректного адреса электронной почты. В результате вы должны увидеть строку с invalid_email
.
2. Проверка на отсутствие отдела:
Мы можем проверить на отсутствие отдела, ищем пустые строки в столбце department
. Выполните следующий SQL-запрос:
SELECT * FROM employees WHERE department = '';
Этот запрос вернет все строки, в которых столбец department
пуст. В результате вы должны увидеть строку с отсутствующим отделом.
3. Проверка на дубликаты идентификаторов:
Хотя в этом примере мы не ввели дубликаты идентификаторов, это распространенная проверка валидации. Вы можете использовать следующий запрос для поиска дубликатов идентификаторов:
SELECT id, COUNT(*) FROM employees GROUP BY id HAVING COUNT(*) > 1;
Этот запрос вернет все идентификаторы, которые встречаются более одного раза в таблице employees
.
4. Проверка на несоответствие типов данных:
MySQL обычно обрабатывает несоответствия типов данных во время процесса импорта, но все же стоит проверить. Например, если у вас есть числовой столбец, который должен содержать только положительные значения, вы можете проверить на наличие отрицательных значений.
Это лишь несколько примеров того, как можно валидировать импортированные данные с использованием SQL-запросов. Конкретные проверки валидации, которые вам нужно выполнить, будут зависеть от структуры и содержания ваших данных.
Наконец, выйдите из оболочки MySQL:
exit