- •Глава 3. Учебное пособие по MySql
- •3.1. Подсоединение к серверу и отсоединение от него
- •3.2. Ввод запросов
- •3.3. Создание и использование базы данных
- •3.3.1. Создание и выбор базы данных
- •3.3.2. Создание таблицы
- •3.3.3. Загрузка данных в таблицу
- •3.3.4. Выборка информации из таблицы
- •3.3.4.1. Выборка всех данных
- •3.3.4.2. Выборка определенных строк
- •3.3.4.3. Выборка определенных столбцов
- •3.3.4.4. Сортировка строк
- •3.3.4.5. Вычисление дат
- •3.3.4.6. Работа с значениями null
- •3.3.4.7. Сравнение по шаблонам
- •3.3.4.8. Подсчет строк
- •3.3.4.9. Использование нескольких таблиц
- •3.4. Получение информации о базах данных и таблицах
- •3.5. Примеры стандартных запросов
- •3.5.1. Максимальное значение столбца
- •3.5.2. Строка, содержащая максимальное значение некоторого столбца
- •3.5.3. Максимальное значение столбца для группы
- •3.5.4. Строка, содержащая максимальное значение некоторого столбца
- •3.5.5. Использование пользовательских переменных
- •3.5.6. Использование внешних ключей
- •3.5.7. Поиск по двум ключам
- •3.5.8. Подсчет посещений за день
- •3.5.9. Использование атрибута auto_increment
- •3.6. Использование mysql в пакетном режиме
- •3.7. Запросы проекта 'Близнецы' (Twin Project)
- •3.7.1. Поиск нераспределенных близнецов
- •3.7.2. Вывод таблицы состояний пар близнецов
- •3.8. Использование MySql совместно с Apache
3.7.2. Вывод таблицы состояний пар близнецов
Каждый опрос оканчивается кодом состояния, называющимся event (``событие''). Приведенный здесь запрос выводит данные обо всех парах близнецов, объединенные по полю event. Таблица наглядно показывает, с каким количеством пар близнецов работа полностью завершена, а в каком количестве пар работа с одним близнецом завершена, а с другим - нет и т.п.
SELECT
t1.event,
t2.event,
COUNT(*)
FROM
lentus AS t1,
lentus AS t2,
twin_project AS tp
WHERE
/* We are looking at one pair at a time */
t1.id = tp.id
AND t1.tvab=tp.tvab
AND t1.id = t2.id
/* Just the sceening survey */
AND tp.survey_no = 5
/* This makes each pair only appear once */
AND t1.tvab='1' AND t2.tvab='2'
GROUP BY
t1.event, t2.event;
3.8. Использование MySql совместно с Apache
Существуют программы, позволяющие проводить идентификацию пользователей с помощью базы данных MySQL, а также записывать журналы в таблицу MySQL.
Формат записи журналов Apache можно привести в легко понятную MySQL форму, введя в файл настроек Apache следующие строки:
LogFormat \
"\"%h\",%{%Y%m%d%H%M%S}t,%>s,\"%b\",\"%{Content-Type}o\", \
\"%U\",\"%{Referer}i\",\"%{User-Agent}i\""
В MySQL же можно сделать примерно следующее:
LOAD DATA INFILE '/local/access_log' INTO TABLE table_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
