Как уже отмечалось в кратком курсе SQL в главе 4, "Основы SQL", такие опера--1- X/ торы, как SELECT, могут использовать операторы сравнения и логические операторы SQL для выборки только тех записей, которые удовлетворяют заданному условию или набору условий. Эти операторы SQL существенно повышают гибкость языка, позволяя строить сложные выражения и конструкции, упрощающие сложный поиск и операции сравнения и преобразования с данными, размещенными в таблицах баз данных MySQL.
В этой главе вы познакомитесь с различными операторами, узнаете обо всех их возможностях, подтвержденных множеством примеров, - это операции вычисления и сравнения, создание условных выражений, поиск по регулярным выражениям в строках и преобразование типов.
MySQL имеет более 25 операторов, каждый из которых предназначен для выполнения определенной задачи. Эти операторы можно классифицировать в соответствии с выполняемой ими функцией на четыре категории:
■ арифметические операторы;
■ операторы сравнения;
■ логические операторы;
■ операторы выполнения побитовых операций.
В следующих разделах все эти категории будут проанализированы детальнее. Что в имени твоем?
Интересная деталь: в мире MySQL разница между операторами и функциями заключается только в семантике. Функция вызывается по имени с указанием заключенных в скобки аргументов, в то время как оператор предваряется одним или более специальных символов, и при этом аргументы указываются между ними или с любой стороны оператора. MySQL обрабатывает функции и операторы одинаково.
Арифметические операторы
Как и большинство языков программирования, MySQL поддерживает наиболее общие арифметические операции, позволяющие производить вычисления в процессе выборки данных. Все арифметические операторы перечислены в табл. 6.1.
Итак, начнем с простейших: сложение и вычитание. Оператор "+", как показано в следующих примерах, используется для определения суммы двух и более значений.
Разные точки зрения
Как вы, наверное, заметили, MySQL позволяет использовать операторы SELECT с произвольными значениями. В отличие от MySQL, СУБД Oracle этого делать не позволяет, а при выборке требует значений, которых нет в таблицах использования специального синтаксиса FROM DUAL.
Деление на ноль возвращает значение NULL.
Необходимо заметить, что все математические операции, в которых задействованы целые числа, вычисляются с применением 64-разрядной точности. Числа, лежащие вне этого диапазона, скорее всего, дадут неожиданный результат, что видно из следующего примера.
Далее, числа, представленные строками автоматически, преобразуются в числа для выполнения вычислений. MySQL при выполнении этого преобразования следует двум основным правилам.
■ Если в арифметической операции используется строка с ведущим числом, эта строка преобразуется в это число.
■ Если строка, содержащая комбинацию символов и цифр, не может быть корректно преобразована в число, она преобразуется в ноль.
А теперь перейдем от теории к практике и посмотрим, как это все работает в реальных примерах. Рассмотрим следующую простую таблицу MySQL, в которой перечислены себестоимость (себестоимость производства - столбец CTM), цена реализации (затраты на покупку для розничного продавца или CTR), розничная цена (цена, по которой товар отпускается покупателям или CTC) и текущее состояние склада компании, специализирующейся на производстве игрушек.
А теперь могут пригодиться арифметические операторы при выполнении вычислений на исходных данных - например, для определения размера прибыли производителя по каждому наименованию товара.
А хотите узнать, насколько возрастает цена товара с того момента, когда он покидает производителя и до момента, когда его покупает покупатель? Обратите внимание, что следующий листинг показывает как абсолютные показатели, так и относительные.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Операторы MySQL
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Выбор типа данных. Продолжение. | Все о MySQL. Операторы сравнения |