Виктор Гольцман - MySQL 5.0. Библиотека программиста
- Название:MySQL 5.0. Библиотека программиста
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Виктор Гольцман - MySQL 5.0. Библиотека программиста краткое содержание
Эта книга предназначена для всех, кто желает освоить СУБД MySQL. Для ее чтения вам не нужны никакие специальные знания – достаточно быть пользователем Windows. Вы узнаете, как установить и запустить MySQL, как создать собственную базу данных, как работать с данными при помощи команд SQL, как администрировать базу данных и оптимизировать ее работу. Разработчики веб-приложений на языках PHP, Perl и Java найдут в этой книге полезные сведения по использованию базы данных MySQL в соответствующих приложениях. Для всех операций, которые вам предстоит выполнить, приводятся подробные пошаговые инструкции, все основные действия поясняются на примере учебной базы данных.
MySQL 5.0. Библиотека программиста - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
UPDATE Customers SET rating = NULLIF(rating,500);
• CASE x WHEN a1 THEN b1.
[WHEN a2 THEN b2]
…
[WHEN an THEN bn]
[ELSE b0]
ENDили
CASE WHEN x1 THEN b1
[WHEN x2 THEN b2]
…
[WHEN xn THEN bn]
[ELSE b0]
ENDОператор CASE обеспечивает последовательную проверку списка условий и возвращает значение в зависимости от того, какое из условий выполнено. В первом варианте значение выражения х сравнивается со значениями a1, a2,…, an :
• если х = ai , то оператор возвращает значение bi;
• если значение выражения х не совпало ни с одним из a, то оператор возвращает значение b0 , заданное с помощью параметра ELSE;
• если значение выражения х не совпало ни с одним из ai , а параметр ELSE не задан, то оператор возвращает значение NULL.
Во втором варианте последовательно проверяется истинность логических выражений хi:
• если хi истинно, то оператор возвращает значение bi;
• если ни одно из выражений хi не является истинным, то оператор возвращает значение b0 , заданное с помощью параметра ELSE;
• если ни одно из выражений хi не является истинным, а параметр ELSE не задан, то оператор возвращает значение NULL.
Например, запросSELECT date,customer_id,amount,
CASE WHEN amount< = 5000 THEN \'Малый\'
WHEN amount BETWEEN 5000 AND 15000 THEN \'Средний\'
WHEN amount>15000 THEN \'Крупный\'
END
FROM Orders
ORDER BY customer_id,amount DESC;выводит классификацию заказов в зависимости от их стоимости (табл. 3.22). Таблица 3.22.Результат выполнения запроса
Итак, мы рассмотрели операторы и функции, с помощью которых вы можете сравнивать между собой различные величины, в том числе сравнивать значение с результатом подзапроса, а также проверять выполнение различных условий. Следующий важный и часто используемый класс функций – групповые функции.3.2. Групповые функции
Групповые, или агрегатные, функции используются для получения итоговой, сводной информации на основе значений, хранящихся в столбце таблицы. В этом разделе вы узнаете об этих функциях, а также об особенностях синтаксиса запросов, использующих эти функции.
Перечень групповых функций
Для вычисления обобщающего значения столбца таблицы предназначены следующие функции.
SUM()
Данная функция возвращает сумму значений в столбце. Неопределенные значения при этом не учитываются. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.
Например, запрос
SELECT SUM(rating) FROM Customers;
возвращает сумму рейтингов клиентов – величину, полученную при сложении значений 1000 + 1500 + 1000 (табл. 3.23). Таблица 3.23.Результат выполнения запроса
Исключить повторяющиеся значения при подсчете суммы можно с помощью параметра DISTINCT. Если указан этот параметр, то каждое значение столбца будет учтено в сумме только один раз, даже если в столбце оно встречается несколько раз.
Например, запросSELECT SUM(DISTINCT rating) FROM Customers;
подсчитывает сумму только несовпадающих рейтингов (табл. 3.24). Таблица 3.24.Результат выполнения запроса
Число, возвращаемое этим запросом, является суммой значений 1000 и 1500; еще одно значение 1000, имеющееся в столбце rating, запросом игнорируется.
Если в запросе вы укажете какое-либо условие отбора, то суммирование произойдет только по тем строкам, которые удовлетворяют условию отбора.
Например, запросSELECT SUM(amount) FROM Orders WHERE customer_id = 533;
вычисляет общую сумму заказов клиента с идентификатором 533 (табл. 3.25). Таблица 3.25.Результат выполнения запроса
Далее мы рассмотрим функцию вычисления среднего значения.
AVG()Данная функция возвращает среднее арифметическое значений в столбце (сумму значений, деленную на количество значений). Неопределенные значения при этом не учитываются. Если в запросе вы укажете какое-либо условие отбора, то суммирование произойдет только по тем строкам, которые удовлетворяют условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.
Например, запросSELECT AVG(rating) FROM Customers;
возвращает средний рейтинг клиентов – величину (1000 + 1500 + 1000) /3 (табл. 3.26). Таблица 3.26.Результат выполнения запроса
Исключить повторяющиеся значения при подсчете среднего можно с помощью параметра DISTINCT.
Например, запросSELECT AVG(DISTINCT rating) FROM Customers;
подсчитывает среднее только несовпадающих рейтингов – величину (1000 + + 1500) / 2; еще одно значение 1000, имеющееся в столбце rating, запросом игнорируется (табл. 3.27). Таблица 3.27.Результат выполнения запроса
Функцию AVG() можно использовать для отбора тех значений, которые больше среднего, или тех, которые меньше среднего.
Например, запросSELECT * FROM Customers WHERE rating > (SELECT AVG(rating) FROM Customers);
выводит информацию о клиентах, чей рейтинг выше среднего (см. результат запроса в табл. 3.12). Вложенный запрос возвращает средний рейтинг клиента (см. табл. 3.26), а внешний – отбирает строки таблицы Customers, в которых значение столбца rating больше значения, возвращенного подзапросом. Отметим, что в данном случае вложенный запрос возвращает единственное значение, поэтому с оператором «больше» нет необходимости использовать ключевое слово ANY или ALL (о них рассказывалось в подразделе «Операторы сравнения с результатами вложенного запроса»).
Теперь мы рассмотрим функцию нахождения максимального значения столбца.
MAX()Данная функция возвращает максимальное значение в столбце. Если в запросе вы укажете какое-либо условие отбора, то максимальное значение выбирается из строк, удовлетворяющих условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.
Например, запросSELECT MAX(rating) FROM Customers;
возвращает наибольший из рейтингов клиентов – 1500 (табл. 3.28). Таблица 3.28.Результат выполнения запроса
Функцию MAX() можно использовать для поиска строк, в которых достигается максимальное значение столбца.
Например, запросSELECT * FROM Customers WHERE rating = (SELECT MAX(rating) FROM Customers);
выводит информацию о клиентах, чей рейтинг равен максимальному (см. результат запроса в табл. 3.12).
Далее мы рассмотрим функцию нахождения минимального значения столбца.
MIN()Данная функция возвращает минимальное значение в столбце. Если в запросе вы укажете какое-либо условие отбора, то минимальное значение выбирается из строк, удовлетворяющих условию отбора. Если запросом не найдено ни одной строки или все значения в столбце равны NULL, то функция возвращает значение NULL.
Например, запросSELECT MIN(rating) FROM Customers;
возвращает наименьший из рейтингов клиентов – 1000 (табл. 3.29). Таблица 3.29.Результат выполнения запроса
Читать дальшеИнтервал:
Закладка: