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

Контрольные вопросы

  1. Дайте определение термину «запрос»

  2. Объясните формат команды простого запроса

  3. Перечислите и объясните виды запросов

  4. Какие статистические функции можно использовать в запросах

  5. Объясните назначение группировки и правила выполнения запросов с группировкой

  6. Объясните формат запроса с сортировкой

  7. Виды подзапросов

  8. Какие операторы можно использовать для формирования подзапросов и их назначение

Тема 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.

    1. Управляющие функции

Описанные ниже функции управляют выполнением программного кода. Функции 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(). Блокировка снимается также в случае завершения сеанса.

Наличие блокировки не дает ее владельцу никаких преимуществ и никак не ограничивает работу других сеансов. Тем не менее при согласованном применении именованных блокировок несколькими программами появляется возможность реализовать блокирование произвольного уровня детализации.

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