Self-Learning – видеокурсы и книги по IT

Приветствую всех посетителей сайта Self-Learning.ru! Сегодня я покажу, как можно реализовать небольшую проверку на валидность адреса электронной почты (Email) в Microsoft SQL Server на языке T-SQL.

Проверка Email на валидность в Microsoft SQL Server на T-SQL

Когда может пригодиться такая проверка

Иногда бывает, что в базе данных могут храниться некорректные Email адреса, которые нельзя использовать в работе, например, для печати в документах, так как они просто неправильные, или для отправки на них сообщений, так как сообщения просто не отправятся и не будут доставлены.

Конечно же, проверка адреса электронной почты на валидность должна проводиться средствами клиентского приложения, а в базу данных должны попадать только корректные адреса. Но бывают случаи, что такой проверки нет или ее реализовали не сразу, а в базе уже появились некорректные адреса.

Поэтому, чтобы не допускать таких случаев можно средствами базы данных, т.е. языка T-SQL (о том, что такое T-SQL можете почитать в статье – https://self-learning.ru/what-is-t-sql), реализовать проверку Email на валидность, а также для того чтобы просто принять необходимые меры по устранению некорректных Email-ов, необходимо сначала их определить. И сейчас мы рассмотрим пример реализации функции, которая делает небольшую проверку и определяет, корректен ли Email или нет. В большинстве случаев такой проверки достаточно.

Создание функции для проверки Email на валидность на T-SQL

Ниже представлен код функции, которая проверяет адрес электронной почты, хранящийся в базе данных, на корректность.

В данном конкретном случае алгоритм следующий, мы с помощью обычной инструкции LIKE и регулярных выражений проверяем наличие допустимых символов в каждой из частей Email адреса. Дополнительно мы проверяем, чтобы в адресе отсутствовали символы, из-за которых часто возникают ошибки. И если адрес подходит под данное условие, то значит он более-менее корректен, и мы возвращаем соответствующий признак. А все, что не подходит под данное условие, является невалидным.

Код функции небольшой и он прокомментирован, поэтому у тех, кто знаком с языком T-SQL, проблем возникнуть не должно, а всем остальным, кто только начинает свое знакомство с данным языком, рекомендую посмотреть мои видеокурсы по T-SQL, в которых подробно специально для начинающих я последовательно рассказываю обо всех инструкциях языка T-SQL.

Код функции на T-SQL для проверки Email

--Проверка Email адреса
CREATE FUNCTION CheckEmail
(
	@Email VARCHAR(100) --Адрес электронной почты
)
RETURNS BIT
AS
BEGIN
/*
	***** Описание
	      Проверка адреса электронной почты (Email) на корректность.
	      Функция возвращает:
		  1 – Email корректен
		  0 – Email некорректен
		  NULL – если значение Email равно NULL
	***** Пример запуска
	      SELECT dbo.CheckEmail('123email456@gmail.com') AS CheckEmail;
		  
	***** Сайт - https://self-learning.ru
	      		  
*/
	DECLARE @Result BIT;
	
	--Начинаем проверку, только если есть данные
	IF @Email IS NOT NULL
	BEGIN	
	   IF @Email LIKE '%[A-Z0-9][@][A-Z0-9]%[.][A-Z0-9]%' AND @Email NOT LIKE '%["<>'']%'
		SET @Result = 1;
	   ELSE
		SET @Result = 0;
	END
	
	RETURN @Result;
END

Скриншот 1

Исходные данные

Теперь, чтобы проверить работу данной функции, давайте создадим тестовые данные, они у нас будут следующие.

CREATE TABLE TestTable (
   Id INT NOT NULL IDENTITY(1,1),
   Email VARCHAR(100) NULL
);

INSERT INTO TestTable (Email)
   VALUES ('MyEmail123@self-learning.ru'),
          ('MyEmail123#yandex.ru'),
          ('MyEmail123@майл.ру'),
          ('MyEmail''123@gmail.ru'),
          ('<MyEmail123@info-comp.ru');

SELECT * FROM TestTable;

Скриншот 2

Как видите, в тестовых данных у нас есть некорректные Email адреса.

Пример запуска функции для проверки Email

Чтобы узнать, какие адреса в нашей таблице корректные, а какие нет, мы можем написать следующий запрос с применением созданной ранее функции.

SELECT Id, Email, dbo.CheckEmail(Email) AS CheckEmail
FROM TestTable;

Скриншот 3

В результате функция отработала и показала нам, какие записи содержат некорректный Email.

Совет эксперта
Виталий Трунин
Основатель проекта Self-Learning.ru. Программист T-SQL.
Задать вопрос
Для комплексного изучения языка T-SQL, рекомендую пройти онлайн-курсы по T-SQL, на которых Вы можете заниматься в любое удобное для Вас время не выходя из дома.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Теги: #
Понравилась статья? Поделитесь с друзьями:
Share on VK
VK
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Tumblr
Tumblr
Share on Reddit
Reddit
Email this to someone
email

Авторские онлайн-курсы по T-SQL

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх