• Для проверки нулевых значений необходимо использовать специальные операторы IS и NOT.

• Правые соединения могут использоваться в реализациях SQL, отличных от SQLite. Чтобы в SQLite выполнить эквивалент правого соединения, просто поменяйте местами две сравниваемые таблицы в операторе запроса.

<p id="_10_xhtml_2523toc_marker_10"><strong>Глава 7. Функции языка SQL</strong></p>

Если вы проверяли свои знания с помощью контрольных вопросов в конце каждой главы, вы, возможно, заметили, что для ответа на некоторые вопросы требуются дополнительные действия после написания запроса. Например, в главе 4 мы задали вопрос: сколько фамилий клиентов начинаются с буквы B? Или попросили найти итоговые суммы счетов в определенном ценовом диапазоне. Чтобы ответить на такие вопросы, требовалось вручную подсчитывать результаты запроса. Чтобы получить все фамилии, начинающиеся на букву B, при помощи информации из главы 4 вы могли выбрать поле LastName в таблице клиентов, отсортировать по фамилии, прокрутить вниз до тех, что начинаются с буквы B, а затем подсчитать их вручную. Если применить материал из главы 5, можно немного упростить задачу, ограничив набор данных, чтобы возвращались только фамилии, начинающиеся с буквы B (запрос WHERELastNameLIKE'B%'). Однако вам все равно придется считать вручную. В этой главе мы расскажем, как упростить вычисления с помощью функций.

<p id="_10_xhtml_2523toc_marker_10_"><strong>Добавление вычислений к запросам</strong></p>

Вычисления (например, подсчет количества полученных записей) можно выполнять, добавляя функции к запросам. Используя функцию COUNT(), можно произвести подсчет LastName и использовать псевдоним NameCount для возврата значения. Добавим функцию к базовому оператору SELECT:

SELECT

COUNT(LastName) AS [NameCount]

FROM

customers

WHERE

LastName LIKE 'B%'

Рис. 85

Для суммирования всех полей в таблице customers, удовлетворяющих условию WHERE, мы можем использовать функцию COUNT(), а не перечислять все записи, начинающиеся с буквы B (чтобы их затем подсчитать). Конечный результат — это поле с псевдонимом и количество фамилий, начинающихся с буквы B.

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

<p id="_10_xhtml_2523toc_marker_10_1"><strong>Типы функций в SQL</strong></p>

Функции в SQL — это специальные ключевые слова, которые принимают определенные параметры, выполняют определенные операции (например, вычисление или изменение данных в поле) и возвращают результат в виде значения. В главе 5 мы уже рассматривали функцию DATE(). В качестве параметров были заданы данные в формате DATETIME, выполнена операция (отредактирован формат написания времени), а затем в результате был возвращен только определенный фрагмент даты. Как мы уже упоминали в главе 5, в SQL для выполнения задач предусмотрено множество типов функций. На рис. 86 показаны наиболее распространенные и полезные.

Примечание

Этот список неполный. Все функции, упомянутые в этой книге, поддерживаются SQLite. Другие реализации базы данных содержат другие функции. Полный список функций, поддерживаемых SQLite, доступен на веб-странице SQLite [10].

Рис. 86

Как видно на рис. 86, в SQL существуют функции трех разных типов.

 Строковые функции изменяют символьные и текстовые данные.

 Функции даты и времени изменяют данные времени и даты.

 Агрегатные функции выполняют математические операции.

Примечание

На первый взгляд может показаться, что эти три типа функций работают только с соответствующими им типами данных (символами, датами и числами). Однако вспомните первый пример с использованием функции COUNT(). Мы смогли использовать агрегатную функцию для арифметического подсчета символьных данных. В определенных случаях мы можем использовать эти функции с разными типами данных. Дополнительные сведения о типах данных см. в главе 1.

Функции в SQL работают подобно функциям в программах для работы с электронными таблицами и в других языках программирования. Если вы когда-либо использовали функцию SUM() в Microsoft Excel, то вы понимаете, для чего она нужна. Еще одно сходство этих функций с функциями Excel — это подсказка в виде всплывающего окна, которое появляется, когда мы вводим функцию в браузере SQL. Рассмотрим следующий пример. На панели Execute SQL (Выполнить SQL-запрос) начните вводить имя функции с одной открытой скобкой:

UPPER(

Под названием функции появится следующий текст:

The UPPER(X) function returns a copy of input string X in which all lowercase ASCII characters are converted to their uppercase equivalent.

(Функция UPPER(X) возвращает копию входной строки X, в которой все символы ASCII нижнего регистра преобразованы в их эквивалент в верхнем регистре.)

Примечание

Часть функции в круглых скобках (X) называется аргументом функции. Некоторые функции могут содержать более одного аргумента.

Перейти на страницу:

Все книги серии Библиотека программиста

Похожие книги