Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MySQL_лекции_2012.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
305.66 Кб
Скачать
    1. Переменные

Переменные – это символические имена, ссылающиеся на изменяемые значения. Имя переменной может состоять из чисел, букв, знаков подчеркивания и доллара, а также точек. К нему всегда добавляется символ @, чтобы не возникала путаница с именами столбцов и ключевыми словами.

В MySQL переменные не требуют инициализации. Если происходит обращение к неопределенной переменной, ей присваивается значение NULL. По окончании сеанса переменные автоматически удаляются.

Переменные можно использовать везде, где допускается использование имен столбцов. Запрещается указывать переменные в предложениях LIMIT и IGNORE, а также использовать переменные для именования столбцов.

Пример.

mysql> SET @Special_ID=2;

mysql> SELECT ID, NAME FROM table1 WHERE ID=@Special_ID;

Программа MySQL назначает переменной тип лишь в момент инициализации, поэтому нужно внимательно следить за соответствием типов. Даже если переменная содержит число, но ее тип был определен как строковый, в ходе числовых операций потребуется выполнять преобразование типов, что может сказаться на производительности.

Разрешается присваивать переменной значение прямо в инструкции SELECT. Для этого предназначен оператор :=. Правым операндом может быть произвольное выражение, допустимое в списке возвращаемых столбцов.

Пример.

SELECT @Special_ID:=ID FROM table1 WHERE Name= ‘Name2’;

SELECT ID, Name FROM tablr1 WHERE ID=@Special_ID;

Операция присваивания в предложении SELECT выполняется тогда, когда строка форматируется и посылается клиенту. Следовательно, в предложении WHERE будет использовано то значение переменной, которое записалось в нее последним.

    1. Операторы

Операторы – это знаки записи математических и логических операций. Большинство операторов бинарно: один операнд записывается слева и один – справа. Существуют такжу унарные операторы, принимающие только один операнд.

За исключением оператора присваивания, все остальные операторы делятся на четыре категории: арифметические, реляционные, логические и побитовые.

Арифметические операторы выполняют простейшие арифметические операции, реляционные – операции сравнения. С помощью логических операторов строятся булевы выражения, а побитовые работают с битовым представлением чисел.

Если оба операнда принадлежат к одному типу, тип результата определяется тривиально. Строки, участвующие в арифметических выражениях, преобразуются в числа. Целые числа преобразуются в числа с плавающей запятой, а числа – в значения дата/время.

Арифметические операторы.

Арифметическими операндами могут быть только числа.

Таблица 2.4 – Арифметические операторы

Оператор

Операция

+

Сложение

-

Вычитание и унарное отрицание

*

Умножение

/

Деление

%

Деление по модулю

Логические операторы.

Логические операторы работают с булевыми величинами. У каждого оператора есть две формы записи: словесная и символьная.

Таблица 2.5 – Логические операторы

Оператор

Операция

AND, &&

Логическое умножение (И)

OR, │

Логическое сложение (ИЛИ)

NOT, !

Логическое отрицание (НЕ)

Побитовые операторы.

Побитовые операторы работают с числами, как с цепочками битов.

Таблица 2.6 – Побитовые операторы

Оператор

Операция

\

Побитовое сложение (ИЛИ

&

Побитовое умножение (И))

<<

Сдвиг всех битов влево

>>

Сдвиг всех битов вправо

~

Побитовое отрицание (НЕ)

Побитовые операции И, ИЛИ, НЕ работают также, как и их логические эквиваленты, но для каждой пары битов выполняется отдельная операция.

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

Если в операциях сравнения участвует значение даты/времени, программа MySQL попытается привести к этому типу второй операнд. Такое возможно для строки или числа состоящего из восьми цифр. Первые четыре цифры считаются номером года, следующие две номером месяца, а последние две – номером дня. В случае когда операнд представлен в другом формате, произойдет противоположное преобразование: значение даты/времени – в строку или число.

По умолчанию строки сравниваются в алфавитном порядке без учета регистра. Ключевое слово BINARY заставляет учитывать регистр при сортировке строк.

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

Метасимвол % в шаблоне поиска строковых данных соответствует произвольному числу символов, а метасимвол _ - одиночному символу. Остальные символы воспринимаются буквально. Если необходимо выполнить сравнение с самим из этих символов, то нужно защитить их от интерпретации с помощью обратной косой черты. Можно воспользоваться предложением ESCAPE, которое задает символ, служащий началом управляющих последовательностей в данном конкретном шаблоне.

Таблица 2.7 – Операторы сравнения

Оператор

Проверка

<

Меньше

>

Больше

<=

Меньше или равно (не больше)

>=

Больше или равно (не меньше)

BETWEEN минимум AND максимум

Принадлежать диапазону

IN (…)

Членство в множестве

NOT IN (…)

Отсутствие членства в множестве

=

Равно

<=>

Не равно (допускается сравнение со значение NULL)

LIKE

Соответствие шаблону

NOT LIKE

Не соответствие шаблону

REGEXP, RLIKE

Соответствие регулярному выражению

NOT REGEXP, NOT RLIKE

Не соответствие регулярному выражению

!=, <>

Не равно

IS NULL

Равно NULL

IS NOT NULL

Не равно NULL

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]