Создание веб-приложения, сочетающего в себе проектирование и создание баз данных, работу со сторонними форматами данных, программирование в NET и веб-разработку, страница 8

Итоговые функции. Используются для получения итоговых данных по таблицам, например, когда надо просуммировать какие-либо данные без их выборки. Итоговые функции еще называют статистическими, агрегатными или суммирующими. Эти функции обрабатывают набор строк для подсчета и возвращения одного значения. Таких функций всего пять:

·  AVG() Функция возвращает среднее значение столбца.

·  COUNT() Функция возвращает число строк в столбце.

Если указать count(*), функция вернет число непустых строк запроса.

·  MAX() Функция возвращает самое большое значение в столбце.

·  MIN() Функция возвращает самое маленькое значение в столбце.

·  SUM() Функция возвращает сумму значений столбца.

Вместе с итоговыми функциями зачастую используется оператор GROUP BY, позволяющий группировать выборку по каким-либо критериям (столбцам).

Функции даты и времени. Используются для управления значениями даты и времени, например, для возвращения разницы между датами.

·  PERIOD_ADD(P,N)

Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает величину в формате YYYYMM. Следует учитывать, что аргумент периода P не является значением даты:

mysql> SELECT PERIOD_ADD(9801,2);

        -> 199803

·  PERIOD_DIFF(P1,P2)

Возвращает количество месяцев между периодами P1 и P2. P1 и P2 должны быть в формате YYMM или YYYYMM. Следует учитывать, что аргументы периода P1 и P2 не являются значениями даты:

mysql> SELECT PERIOD_DIFF(9802,199703);

        -> 11

·  NOW()

Возвращает текущую дату и время как величину в формате YYYY-MM-DD HH:MM:SS или YYYYMMDDHHMMSS, в зависимости от того, в каком контексте используется функция - в строковом или числовом:

mysql> SELECT NOW();

        -> '1997-12-15 23:50:26'

mysql> SELECT NOW() + 0;

        -> 19971215235026

Другие функции. Возвращают различную другую (служебную)  информацию.

•  FOUND_ROWS()

Возвращает количество строк, которые возвратила бы последняя команда SELECT SQL_CALC_FOUND_ROWS ... при отсутствии ограничения оператором LIMIT.

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;

mysql> SELECT FOUND_ROWS();

•  INET_ATON (expr)

Учитывая точки в представлении IPv4-адреса сети в формате строки, возвращает целое число, представляющее числовое значение адреса сети в виде набора байтов (Big Endian). INET_ATON () возвращает NULL, если адрес введен в неверном формате.

MySQL> SELECT INET_ATON ('10 .0.5.9 ');

        -> 167773449

Для этого примера, возвращаемое значение рассчитывается как 10 × 2563 × 0 + 2562 + 5 × 256 + 9.

INET_ATON () может вернуть, или нет ненулевой результат для краткой формы IP-адреса (например, ‘127.1’ как представление адреса ‘127 .0.0.1’). Поэтому функция INET_ATON () не должна использоваться для таких адресов.

Внимание!

Для хранения значений, порожденных INET_ATON (), используется тип столбца INT UNSIGNED, а не INT. Если использовать тип INT, то значения, соответствующие IP-адресу, для которого первый октет больше 127 не будут сохранены.

•  INET_NTOA (expr)

Используя числовое представление IPv4-адреса в виде порядка байт, возвращает IP-адрес в виде бинарной строки. INET_NTOA () возвращает NULL, если expr имеет неверный формат.

MySQL> SELECT INET_NTOA (167773449);

        -> '10 .0.5.9 '

1.3  Организация хранения данных проекта

Все данные проекта хранятся в одной базе данных – powerplay. Данная база данных является реляционной. Все таблицы в базе данных связаны друг с другом по каким-либо полям. Всего в ходе работы было создано 22 таблицы, включая «технические таблицы». 4 таблицы предназначены для проведения конкретного турнира, и при создании нового турнира, должны быть созданы 4 таблицы идентичной структуры, 12 общих таблиц, обеспечивающих проведение любого турнира и 6 таблиц, поддерживающих функционирование систем сайта (Рис. 1.6.). Полный текст запросов создания всех таблиц находится в Приложении 1.

Рисунок 1.6. – Список таблиц БД проекта.