Двоичные операторы

Опубликовал: Monday, March 19, 2024 в категории HTML | Пока нет комментариев

:

? ~ — двоичная инверсия;

? & — двоичное И;

? | — двоичное ИЛИ;

? ^ — двоичное исключающее ИЛИ;

? << — сдвиг влево — сдвиг влево на один или более разрядов с заполне-

нием младших разрядов нулями;

? >> — сдвиг вправо — сдвиг вправо на один или более разрядов с запол-

нением старших разрядов содержимым самого старшего разряда.

6.7.3. Операторы сравнения

Операторы сравнения используются, прежде всего, в конструкциях WHERE и

HAVING при создании запросов. Перечислим их:

? = — равно;

? <=> — эквивалентно;

? != — не равно;

? <> — не равно;

? < — меньше;

? > — больше;

? <= — меньше или равно;

? >= — больше или равно;

? IS NOT NULL — проверка на наличие значения;

? IS NULL — проверка поля на отсутствие значения;

? BETWEEN <Начало> AND <Конец> — проверяет, является ли значение большим или равным <Начало> и меньшим или равным <Конец>, напри- мер, pole BETWEEN 0 AND 100;

? IN — содержится в определенном наборе, например, pole IN (‘HDD’,

‘Монитор’);

? NOT IN — не содержится в определенном наборе, например, pole NOT IN (‘HDD’,’Монитор’);

? LIKE — соответствие шаблону SQL;

? NOT LIKE — несоответствие шаблону SQL;

? RLIKE — соответствие регулярному выражению;

? REGEXP — соответствие регулярному выражению (синоним RLIKE);

? NOT RLIKE — несоответствие регулярному выражению;

? NOT REGEXP — несоответствие регулярному выражению (синоним NOT RLIKE).

В шаблоне SQL могут использоваться следующие символы:

? % — любое количество символов;

? _ — любой одиночный символ.

Можно проверять сразу несколько условий, указав логические операции:

? AND — логическое И;

? OR — логическое ИЛИ;

? XOR — исключающее логическое ИЛИ.

Результатом операции сравнения являются:

? 0 — ложь;

? 1 — истина;

? NULL.

Исключением является оператор эквивалентности <=>. Он возвращает только два значения: 0 (ложь) и 1 (истина). Этот оператор введен специально для сравнения значения NULL.

Следует отметить, что по умолчанию сравнение строк происходит без учета регистра. Если указать ключевое слово BINARY, то регистр символов будет учитываться:

SELECT ‘TEXT’=’text’;

/* Выведет: 1 (истина) */ SELECT BINARY ‘TEXT’=’text’;

/* Выведет: 0 (ложь) */

Результат сравнения можно изменить на противоположный с помощью опе-

раторов ! и NOT.

SELECT ‘TEXT’=’text’;

/* Выведет: 1 (истина) */ SELECT !(‘TEXT’=’text’);

/* Выведет: 0 (ложь) */ SELECT NOT (‘TEXT’=’text’);

/* Выведет: 0 (ложь) */

Логические выражения следует заключать в круглые скобки, так как приори-

тет оператора отрицания выше приоритета других операторов.

6.7.4. Приоритет выполнения операторов

При составлении выражений следует учитывать приоритет выполнения опе-

раторов.

Перечислим операторы в порядке убывания приоритета:

1. BINARY, COLLATE.

2. NOT, !.

3. - (унарный минус), ~.

4. *, /, %, MOD, DIV.

5. +, - — сложение, вычитание.

6. <<, >> — двоичные сдвиги.

7. & — двоичное И.

8. | — двоичное ИЛИ.

9. =, <=>, >=, <=, >, <, <>, !=, IS, LIKE, REGEXP, IN.

10. BETWEEN.

11. &&, AND.

12. ||, OR, XOR.

С помощью круглых скобок можно изменить последовательность выполне-

ния выражения:

SELECT 5 + 3 * 7;

/* Выведет: 26 */ SELECT (5 + 3) * 7;

/* Выведет: 56 */

6.7.5. Преобразование типов данных

В большинстве случаев преобразование типов осуществляется автоматиче- ски. В этом разделе мы рассмотрим результаты автоматического преобразо- вания типов, а также встроенные функции для специального приведения ти- пов.

Что будет, если к числу прибавить строку?

SELECT ‘5’ + 3;

/* Выведет: 8 */ SELECT ‘5st’ + 3;

/* Выведет: 8 */

В этом случае строка преобразуется в число, а затем выполняется операция сложения. Но что будет, если строку невозможно преобразовать в число?

SELECT ‘str’ + 3;

/* Выведет: 3 */ SELECT 3 + ‘str’;

/* Выведет: 3 */

Если строку невозможно преобразовать в число, то она приравнивается к нулю.

Для явного преобразования типов используются две функции:

? CAST(<Выражение> AS <Тип>);

? CONVERT(<Выражение>, <Тип>).

Параметр <Тип> может принимать следующие значения:

? BINARY;

? CHAR;

? DATE;

? DATETIME;

? SIGNED [INTEGER];

? TIME;

? UNSIGNED [INTEGER].

Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *