
- •Система управления базами данных MySql
- •Тема 1: Архитектура и назначение сервера. Основные функции
- •1.1. Введение в субд MySql
- •1.2. Основные программы и утилиты MySql
- •1.3. Инсталляция MySql на разных платформах
- •Контрольные вопросы
- •Тема 2: Основные типы данных и операторы субд MySql
- •Типы данных
- •Переменные
- •Операторы
- •Контрольные вопросы
- •Тема 3: Утилита mysql
- •3.1 Функции mysql
- •3.2 Работа с базами данных и таблицами
- •Контрольные вопросы
- •Тема 4: Выборка данных
- •Простые запросы
- •Объединение таблиц
- •Объединение таблицы с собой
- •Теоретико-множественные операции с таблицами
- •Подзапросы
- •Контрольные вопросы
- •Тема 5: Встроенные функции MySql
- •5.1 Общие понятия
- •5.2 Отладка и конфигурирование
- •Управляющие функции
- •If(условие, значение истина,значение_ложь)
- •Ifnull( проверяемое_значение, возвращаемое _значение)
- •Статистические и математические функции
- •Функции работы с датой и временем
Контрольные вопросы
Дайте определение термину «запрос»
Объясните формат команды простого запроса
Перечислите и объясните виды запросов
Какие статистические функции можно использовать в запросах
Объясните назначение группировки и правила выполнения запросов с группировкой
Объясните формат запроса с сортировкой
Виды подзапросов
Какие операторы можно использовать для формирования подзапросов и их назначение
Тема 5: Встроенные функции MySql
Цель: рассмотреть назначение основных встроенных функций СУБД MySQL и способы их применения.
5.1 Общие понятия
Функции – это подпрограммы, возвращающие значения, иногда основываясь на значениях вводимых параметров. Функции можно использовать везде, где разрешены выражения, в том числе вместо параметров самих функций. Другими словами допускаются вложенные вызовы функций.
Большинство функций принимает параметры в круглых скобках, причем между именем функции и открывающейся скобкой не должно быть пробелов. Это помогает программе отличать имена функций от имен столбцов.
У некоторых функций есть несколько уровней необязательных параметров.
5.2 Отладка и конфигурирование
Описанные ниже функции возвращают информацию о сервере либо помогаю при отладке.
BENCHMARK (циклы, значение)
Функция BENCHMARK вычисляет требуемое выражение столько раз, сколько указано в первом аргументе. Она всегда возвращает нуль, но если используется клиент то будет также подсчитано время, затраченное на выполнение функции.
CONNECTION_ID()
Эта функция возвращает идентификатор текущего соединения.
DATABASE()
Эта функция возвращает имя стандартной базы данных. Если таковая не выбрана, возвращается NULL.
LAST_INSERT_ID([идентификатор])
Для каждого соединения программа MySQL хранит последнее значение счетчика, служащего первичным ключом. Функция возвращает это значение. Если функции передать аргумент, она установит его в качестве нового значения счетчика.
Существуют два основных применения функции LAST_INSERT_ID. Чаще всего, она используется со столбцами типа AUTO_INCREMENT. Если вследствие какого-либо запроса значение данного столбца увеличивается автоматически, то это значение запоминается и впоследствии возвращается функцией LAST_INSERT_ID. Если же значение столбца задается вручную, то на функции это никак не отражается.
С другой стороны, с помощью функции LAST_INSERT_ID можно имитировать последовательные счетчики, связав ее с таблицей, состоящей из одного столбца.
SESSION_USER()
Это синоним функции USER
USER()
Эта функция возвращает имя пользователя, начавшего текущий сеанс работы с сервером. Сообщается также имя компьютера, за которым работает пользователь.
VERSION()
Эта функция сообщает номер версии сервера MySQL.
Управляющие функции
Описанные ниже функции управляют выполнением программного кода. Функции CASE и CASE WHEN реализованы подобно инструкциям языков третьего поколения и не используют скобки, но, в остальном, они аналогичны функциям. Две функции блокирования, а также функция, заставляющая главную базу данных дождаться синхронизации подчиненной базы данных, полезны при работе в многопользовательской среде.
Синтаксис конструкции CASE таков:
CASE проверяемое выражение
WHEN значение 1 THEN возвращаемое значение 1
[WHEN значение2 THEN возвращаемое значение 2]
[ELSE значение по умолчанию ]
END
Конструкция CASE вычисляет проверяемое выражение и сравнивает результат с одним из значений, указанных в предложении WHEN. Если найдено совпадение, возвращается соответствующее значение предложения THEN. В противном случае возвращается значение по умолчанию.
CASE WHEN
Синтаксис альтернативного варианта конструкции CASE таков:
CASE
WHEN условие 1 THEN возвращаемое значение 1
[WHEN условие2 THEN возвращаемое условие 2]
[ELSE значение по умолчанию]
END
Здесь проверяется каждое условие по отдельности. Возвращается то значение, для которого условие является истинным. Возвращаемое значение может быть произвольным выражением, в том числе результатом вызова функции.
Поскольку результат конструкции CASE может менять свой тип в зависимости от условия, столбцу присваивается тип аргумента самого первого предложения THEN.
GЕТ_LОСК(имя, тайм-аут)
Функция GET_LOCK() запрашивает именованную блокировку на указанное число секунд. Функция не завершится до тех пор, пока не истечет период тайм-аута или блокировка не будет получена.
Одному сеансу может принадлежать только одна блокировка. Вызов функции
GET_LOCK() приводит к снятию всех удерживаемых блокировок, но лучше все же снимать их явно с помощью функции RELEASE_LOCK(). Блокировка снимается также в случае завершения сеанса.
Наличие блокировки не дает ее владельцу никаких преимуществ и никак не ограничивает работу других сеансов. Тем не менее при согласованном применении именованных блокировок несколькими программами появляется возможность реализовать блокирование произвольного уровня детализации.