ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Все о MySQL. Функции управления


28-12-2009

Вы, наверное, уже знаете о том, что MySQL оснащен функциями, позволяющими выполнять условные операции. Эти функции дают возможность задавать условную логику внутри самого SQL-запроса, позволяя тем самым разработчикам перенести обработку логики на уровень базы данных. Эти функции перечислены в табл. 7.7.
Функции управления
Первая из этих функций - IFNULL() - принимает два аргумента и оценивает первый из них. Если первый аргумент не равен NULL, функция возвращает первый аргумент, а если равен NULL - функция возвращает второй аргумент.
Функции управления
Функция IF() позволяет произвести простейшую условную проверку, аналогичную той, что предусмотрена во многих языках написания сценариев. Эта функция принимает три аргумента, первый из которых является условным выражением, которое будет сравниваться; если оценка выражения дает значение "истина", функция IF() возвращает второй аргумент, если "ложь" - возвращает третий аргумент.
Функции управления
Применение функции IF() уместно только в случае двух возможных исходов. Однако в реальных ситуациях этого может оказаться недостаточно, т.к. часто в условных операторах приходится программировать три и более ветви. Для таких случаев у MySQL предусмотрена функция CASE, работающая аналогично условным конструкциям switch-case в языках программирования PHP и Perl.
Функции управления
Здесь первым аргументом является значение оцениваемого выражения, за которым следует последовательность блоков WHEN-THEN, в каждом из них задается значение, сравниваемое с первым аргументом, и возвращаемый результат в случае "истинности" операции сравнения. Последовательность блоков WHEN-THEN завершается блоком ELSE,




в котором задается результат, принимаемый в случае, если ни в одном из блоков WHEN-THEN не найдено соответствия. Затем следует ключевое слово END, завершающее собой всю конструкцию функции CASE. Если отсутствует блок ELSE и ни в одном из блоков WHEN-THEN не найдено соответствия, MySQL возвращает значение NULL.
Существует еще и альтернативный синтаксис функции CASE, который может очень пригодиться в определенных ситуациях. Вот как он выглядит:
CASE
WHEN (условное выражение 1) THEN (результат 1) WHEN (условное выражение 2) THEN (результат 2) ELSE (результат по умолчанию)
END
В этом случае результат зависит от того, возвращает ли соответствующая условная проверка значение "истина".
Это разъясняют следующие примеры.
Функции управления
Функции управления
Функции управления
Хранящиеся в этой таблице пароли пользователей закодированы с помощью функции ENCRYPT() и специального кода ts.
Итак, возможны два варианта выполнения аутентификации с помощью этой системы: использование бизнес-логики для кодирования и верификации на прикладном уровне или на уровне базы данных MySQL с помощью встроенной функции IF(). Так как эта книга посвящена MySQL, вполне логично, что мы выберем второй вариант.
Функции управления
В данном случае ввод пользователя шифруется функцией ENCRYPT() и обрабатывается функцией IF() , которая выполняет двуединую задачу - проверку пароля и передачу результата приложению. Таким образом нагрузка на приложение существенно уменьшается: вместо того, чтобы выполнять необходимые процедуры шифрования, передавать данные MySQL и проверять их на соответствие, достаточно передать текстовый пароль на MySQL-сервер (через аналогичный вышеупомянутому запрос SELECT), прочесть полученный результат и разрешить доступ или отказать в нем.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Функции кодировки Все о MySQL. Функции форматирования