Виктор Гольцман - MySQL 5.0. Библиотека программиста
- Название:MySQL 5.0. Библиотека программиста
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Виктор Гольцман - MySQL 5.0. Библиотека программиста краткое содержание
Эта книга предназначена для всех, кто желает освоить СУБД MySQL. Для ее чтения вам не нужны никакие специальные знания – достаточно быть пользователем Windows. Вы узнаете, как установить и запустить MySQL, как создать собственную базу данных, как работать с данными при помощи команд SQL, как администрировать базу данных и оптимизировать ее работу. Разработчики веб-приложений на языках PHP, Perl и Java найдут в этой книге полезные сведения по использованию базы данных MySQL в соответствующих приложениях. Для всех операций, которые вам предстоит выполнить, приводятся подробные пошаговые инструкции, все основные действия поясняются на примере учебной базы данных.
MySQL 5.0. Библиотека программиста - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Таким же образом можно подсчитать количество заказов каждого клиента, максимальную, минимальную и среднюю сумму заказа и др.
Другой пример – запрос, возвращающий имена клиентов с одинаковым значением рейтинга:SELECT GROUP_CONCAT(name),rating FROM Customers GROUP BY rating;
Этот запрос группирует клиентов по значению рейтинга и выводит имена клиентов в каждой группе (табл. 3.39). Таблица 3.39.Результат выполнения запроса
Если указано ключевое слово WITH ROLLUP, то обобщенные значения выводятся как для отдельных групп строк, так и для всех в совокупности строк.
Например, запросSELECT customer_id, SUM(amount) FROM Orders GROUP BY customer_id WITH ROLLUP;
возвращает, помимо общей суммы заказов каждого клиента, сумму всех заказов (табл. 3.40). Таблица 3.40.Результат выполнения запроса
В этой таблице, по сравнению с табл. 3.38, появилась итоговая строка, содержащая общую сумму всех заказов.
В запросе с параметром GROUP BY вы можете использовать условия как для отбора отдельных строк перед группировкой, так и для отбора групп строк. Если требуется выбрать из таблицы строки, удовлетворяющие какому-либо критерию, а затем объединить в группы только эти строки, то применяется параметр WHERE, который должен быть указан перед параметром GROUP BY.
Например, запросSELECT customer_id, COUNT(amount) FROM Orders
WHERE amount>5000
GROUP BY customer_id;позволяет подсчитать, сколько заказов на сумму более 5000 сделал каждый клиент (табл. 3.41). Сначала выбираются строки таблицы Orders (Заказы), для которых выполнено условие amount>5 0 0 0, далее эти строки группируются по значению столбца customer_id (клиент), и после этого вычисляется количество строк в каждой из групп. Таблица 3.41.Результат выполнения запроса
Для отбора групп строк служит параметр HAVING, о котором будет идти речь в следующем подразделе.
Параметр HAVING
Параметр HAVING позволяет задать условие отбора для групп строк. Он аналогичен параметру WHERE, но указывается после параметра GROUP BY и применяется к агрегированным строкам. В условии отбора параметра HAVING можно использовать значения столбцов, выводимых запросом, в том числе значения агрегатных функций.
Например, если требуется вывести общую сумму заказов для каждого клиента, кроме тех клиентов, для кого эта сумма меньше 20 000, выполните запросSELECT customer_id, SUM(amount) FROM Orders
GROUP BY customer_id
HAVING SUM(amount)> = 20000;Условие SUM(amount) > = 20 000 позволяет отобрать только те группы строк, в которых общая сумма заказа равна или превышает 20 000 (табл. 3.42). Таблица 3.42.Результат выполнения запроса
Итак, вы изучили запросы с групповыми функциями, позволяющими получать из таблиц обобщенные данные. Далее мы кратко рассмотрим некоторые полезные функции, оперирующие числовыми величинами.3.3. Числовые операторы и функции
В данном разделе вы узнаете об основных операторах и функциях, используемых для арифметических, алгебраических и тригонометрических вычислений. Наиболее часто используемыми являются арифметические операторы.
Арифметические операторы
В выражениях вы можете использовать следующие арифметические операторы:
• а + b.
Оператор сложения. Возвращает сумму операндов a и b.
• а – b.
Оператор вычитания. Возвращает разность операндов a и b.
При использовании с одним операндом меняет его знак, например – (3 + 2) = -5.
• а * b.
Оператор умножения. Возвращает произведение операндов a и b.
• а / b.
Оператор деления. Возвращает частное от деления a на b.
• а DIV b.
Оператор деления c остатком, или целочисленного деления. Возвращает целую часть частного от деления a на b. Например,:
• 7 DIV 2 = 3,
• (-7) DIV 2 = -3,
• 7 DIV (-2) = -3,
• (-7) DIV (-2) = 3.
• a % b.
Оператор вычисления остатка. Возвращает остаток от целочисленного деления a на b: величину a % b = a – b x (a DIV b). Например,:
• 7 % 2 = 1,
• (– 7) % 2 = -1,
• 7 % (-2) = 1,
• (-7) % (-2) = -1.
В следующем подразделе мы рассмотрим алгебраические функции.
Алгебраические функции
В выражениях вы можете использовать следующие алгебраические функции:
• ABS(x).
Возвращает абсолютную величину (модуль) числа x. Например, ABS(10) = ABS(-10) = 10.
• CEIL(x), CEILING(x).
Функция округления в большую сторону. Возвращает наименьшее из целых чисел, которые больше или равны x. Например,:
• CEIL(12345.6789) = 12346,
• CEIL(-12345.6789) = -12345.
• CRC32(\'Символьное значение\').
Функция вычисляет контрольную сумму для последовательности символов с помощью алгоритма CRC32. Подробнее об алгоритмах CRC вы можете прочитать здесь: http://ru.wikipedia.org/wiki/CRC32. Например, CRC32(\'Beк живи – век учись\') = 4171076480.
• EXP(x).
Экспонента. Возвращает ex (экспоненту числа x).
• FLOOR(x).
Функция округления в меньшую сторону. Возвращает наибольшее из целых чисел, не превосходящих x. Например,:
• FLOOR(12345.6789) = 12345,
• FLOOR(-12345.6789) = -12346.
• LN(x), LOG(x).
Возвращает Inx (натуральный логарифм числа x). Таким образом, LN(EXP(y)) = y.
• LOG10(x).
Возвращает log10x (логарифм числа x по основанию 10). Например, LOG10(100) = 2.
• LOG2(x).
Возвращает log2x (логарифм числа x по основанию 2). Например, LOG2(16) = 4.
• LOG(a,x).
Возвращает logax (логарифм числа x по основанию a). Например, LOG(2,16) = LOG2(16) = 4.
• MOD(a,b).
Синоним выражения a % b, возвращает остаток от целочисленного деления a на b.
• PI().
Возвращает число π = 3,14159….
• POW(x,y), POWER(x,y).
Функция возведения в степень. Возвращает xy.
Например, POW(2, 10) = 1024.
• RAND().
Возвращает случайное число в интервале от 0 до 1.
• RAND(x).
Возвращает псевдослучайное число в интервале от 0 до 1, при этом целое число x используется как начальное значение генератора псевдослучайных чисел. Возвращаемое значение при этом предопределено, например, RAND(2 0) всегда возвращает значение 0,1588826125104 7.
• ROUND(x).
Функция округления до целого. Возвращает целое число, ближайшее к x.
• ROUND(x, n).
Функция округления. Если n > 0, возвращает ближайшее к x число с n знаками после разделителя. Если n = 0, возвращает ближайшее к x целое число: ROUND(x,0) = ROUND(x). Если n < 0, возвращает ближайшее к x целое число, заканчивающееся на n нулей. Например,:
ROUND(12345.6789,2) = 12345.68,
ROUND(12345.6789,0) = 12346,
ROUND(12345.6789,-2) = 12300,
ROUND(-12345.6789,2) = -12345.68.
• SIGN(x).
Функция получения знака. Возвращает значение 1, если x > 0, значение 0, если х = 0, и значение – 1, если x < 0.
• SQRT(x).
Возвращает √x (квадратный корень из x).
• TRUNCATE(x, n).
Функция отбрасывания «лишних» цифр. Если n > 0, возвращается число, состоящее из целой части числа x и n его первых знаков после разделителя. Если n = 0, возвращается целая часть x. Если n < 0, возвращается число, в котором последние n цифр заменены нулями. Например,:
Читать дальшеИнтервал:
Закладка: