Оглавление

Предисловие

1 Работа с клиентской программой mysql
1.1. Создание учетной записи пользователя MySQL
1.2. Создание базы данных и тестовой таблицы
1.3. Запуск и остановка mysql
1.4. Задание параметров соединения в файлах опций
1.5. Защита файлов опций
1.6. Комбинирование параметров файла опций с параметрами командной строки
1.7. Что делать, если не удается найти mysql
1.8. Установка переменных окружения
1.9. Создание запросов
1.10. Выбор базы данных
1.11. Отмена частично введенного запроса
1.12. Повторение и редактирование запросов
1.13. Автоматическое завершение ввода имен баз данных и таблиц
1.14. Использование в запросах переменных SQL
1.15. Чтение запросов из файла
1.16. Чтение запросов из других программ
1.17. Ввод запросов в командной строке
1.18. Использование копирования и вставки для формирования ввода mysql
1.19. Борьба с исчезновением с экрана вывода запроса
1.20. Перенаправление вывода запроса в файл или программу
1.21. Выбор формата вывода: таблица или элементы, разделенные табуляцией
1.22. Задание произвольного разделителя для столбцов вывода
1.23. Формирование HTML-вывода
1.24. Формирование XML-вывода
1.25. Исключение заголовков столбцов из вывода запроса
1.26. Нумерация строк вывода запроса
1.27. Улучшение читаемости длинных строк
1.28. Управление уровнем подробности mysql
1.30. Создание сценариев mysql из ранее выполненных запросов
1.31. Использование mysql в качестве калькулятора
1.32. Использование mysql в сценариях оболочки
2 Создание программы для MySQL
2.1. Соединение с сервером MySQL, выбор базы данных и отключение
2.2. Контроль ошибок
2.3. Создание библиотечных файлов
2.4. Запуск запросов и извлечение результатов
2.5. Перемещение по результирующему множеству
2.6. Использование в запросах подготовленных предложений и заполнителей
2.7. Использование в запросах специальных символов и значений NULL
2.8. Обработка значений NULL в результирующих множествах
2.9. Создание объектно-ориентированного интерфейса MySQL для PHP
2.10. Способы получения параметров соединения
2.11. Заключение и рекомендации

3 Выбор записей
3.1. Задание столбцов вывода
3.2. Решение проблем с неправильным порядком вывода столбцов
3.3. Присваивание имен столбцам вывода
3.4. Использование псевдонимов столбцов в программах
3.5. Объединение столбцов для формирования составных значений
3.6. Задание выбираемых строк
3.7. Инструкция WHERE и псевдонимы столбцов
3.8. Отображение результатов операций сравнения с целью контроля их выполнения
3.9. Инвертирование, или отрицание условий запроса
3.10. Удаление повторяющихся строк
3.11. Обработка значений NULL
3.12. Инвертирование условия для столбца, содержащего значения NULL
3.13. Использование в программах операций сравнения с участием NULL
3.14. Сопоставление значениям NULL других значений при выводе
3.15. Упорядочивание результирующего множества
3.16. Выбор начальных или конечных записей результирующего множества
3.17. Выбор строк из середины результирующего множества
3.18. Выбор соответствующих значений для инструкции LIMIT
3.19. Получение значений LIMIT из выражений
3.20. Что делать, если для инструкции LIMIT нужен "неправильный" порядок сортировки
3.21. Выбор результирующего множества в существующую таблицу
3.22. Создание таблицы из результирующего множества "на лету"
3.23. Безопасное перемещение записей из таблицы в таблицу
3.24. Создание временных таблиц
3.25. Клонирование таблицы
3.26. Формирование уникальных имен таблиц

4 Работа со строками
4.1. Создание строк, содержащих кавычки или другие специальные символы
4.2. Сохранение замыкающих пробелов в строковых столбцах
4.3. Проверка равенства и взаимного порядка строк
4.4. Разбиение и соединение строк
4.5. Проверка вхождения подстроки в строку
4.6. Поиск по образцу с помощью шаблонов SQL
4.7. Поиск по образцу с помощью регулярных выражений
4.8. Буквальная интерпретация метасимволов в шаблонах
4.9. Управление чувствительностью к регистру при сравнении строк
4.10. Управление чувствительностью к регистру при поиске по образцу
4.11. Поиск с помощью индекса FULLTEXT
4.12. FULLTEXT-поиск и короткие слова
4.13. Включение и исключение слов из FULLTEXT-поиска
4.14. Поиск фразы при помощи индекса FULLTEXT

5 Работа с датами и временем
5.1. Изменение формата даты MySQL
5.2. Определение форматов отображения даты и времени
5.3. Определение текущей даты или времени
5.4. Разбиение дат и времени на части с помощью функций форматирования
5.5. Разбиение дат и времени с помощью функций извлечения составляющих
5.6. Разбиение дат и времени с помощью строковых функций
5.7. Синтез дат и времени с помощью функций форматирования
5.8. Синтез дат и времени с помощью функций извлечения составляющих
5.9. Объединение даты и времени в значение дата-и-время
5.10. Преобразование времени в секунды и обратно
5.11. Преобразование дат в дни и обратно
5.12. Преобразование значений дата-и-время в секунды и обратно
5.13. Сложение значений времени
5.14. Вычисление интервалов между значениями времени
5.15. Разбиение интервалов времени на составляющие
5.16. Добавление значения времени к дате
5.17. Вычисление интервалов между датами
5.18. Стандартизация не-совсем-ISO-строк
5.19. Вычисление возраста
5.20. Смещение даты на заданную величину
5.21. Нахождение первого и последнего дней месяца
5.22. Вычисление длины месяца
5.23. Получение одной даты из другой заменой подстроки
5.24. Определение дня недели для даты
5.25. Определение дат для дней текущей недели
5.26. Определение дат для дней других недель
5.27. Вычисления для високосных годов
5.28. Обработка даты и времени как чисел
5.29. Обработка в MySQL строк как значений времени
5.30. Выбор записей по временным характеристикам
5.31. Использование значений TIMESTAMP
5.32. Регистрация времени последнего изменения строки
5.33. Регистрация времени создания записи
5.34. Вычисления со значениями TIMESTAMP
5.35. Вывод значений TIMESTAMP в удобном для чтения виде

6 Сортировка результатов запроса
6.1. Использование ORDER BY для сортировки результатов запроса
6.2. Сортировка частей таблицы
6.3. Сортировка результатов выражения
6.4. Сортировка одного набора значений и вывод другого
6.5. Сортировка и значения NULL
6.6. Сортировка и чувствительность к регистру
6.7. Сортировка по дате
6.8. Сортировка по календарному дню
6.9. Сортировка по дню недели
6.10. Сортировка по времени дня
6.11. Сортировка по подстрокам значений столбцов
6.12. Сортировка по подстрокам фиксированной длины
6.13. Сортировка по подстрокам переменной длины
6.14. Сортировка имен хостов по доменам
6.15. Сортировка IP-адресов в числовом порядке
6.16. Размещение определенных значений в начале или конце упорядоченного списка
6.17. Сортировка в порядке, определенном пользователем
6.18. Сортировка значений ENUM

7 Формирование итогов
7.1. Суммирование с помощью функции COUNT()
7.2. Суммирование при помощи функций MIN() и MAX()
7.3. Суммирование при помощи функций SUM() и AVG()
7.4. Использование ключевого слова DISTINCT для удаления дубликатов
7.5. Поиск значений, связанных с минимальным и максимальным значениями
7.6. Управление чувствительностью к регистру функций MIN() и MAX()
7.7. Разбиение итогов на подгруппы
7.8. Итоги и значения NULL
7.9. Выбор групп только с определенными характеристиками
7.10. Устанавливаем уникальность значения
7.11. Группирование по результатам выражения
7.12. Классификация некатегориальных данных
7.13. Управление порядком вывода итоговой информации
7.14. Нахождение наибольшего и наименьшего из итоговых значений
7.15. Итоги по датам
7.16. Одновременная работа с итогами по группам и общим итогом
7.17. Формирование отчета, содержащего итоговую информацию и список

8 Изменение таблицы с помощью предложения ALTER TABLE
8.1. Удаление, добавление и перемещение столбца
8.2. Изменение определения или имени столбца
8.3. Предложение ALTER TABLE, значения NULL и значения по умолчанию
8.4. Изменение значения столбца по умолчанию
8.5. Изменение типа таблицы
8.6. Переименование таблицы
8.7. Добавление и удаление индексов
8.8. Удаление дубликатов путем добавления индекса
8.9. Использование предложения ALTER TABLE для нормализации таблицы

9 Получение и использование метаданных
9.1. Определение количества строк, обработанных запросом
9.2. Получение метаданных результирующего множества
9.3. Определение наличия или отсутствия результирующего множества
9.4. Форматирование результатов запроса для отображения
9.5. Получение информации о структуре таблицы
9.6. Получение информации о столбцах ENUM и SET
9.7. Способы получения информации о таблицах, не зависящие от СУБД
9.8. Применение информации о структуре таблицы
9.9. Вывод списков таблиц и баз данных
9.10. Проверка существования таблицы
9.11. Проверка существования базы данных
9.12. Получение метаданных сервера
9.13. Создание приложений, адаптирующихся к версии сервера MySQL
9.14. Определение текущей базы данных
9.15. Определение текущего пользователя MySQL
9.16. Мониторинг сервера MySQL
9.17. Определение типов таблиц, поддерживаемых сервером

10 Импорт и экспорт данных
10.1. Импорт с помощью LOAD DATA и утилиты mysqlimport
10.2. Определение местоположения файла данных
10.3. Указание формата файла данных
10.4. Использование кавычек и специальных символов
10.5. Импорт файлов в формате CSV
10.6. Чтение файлов, полученных из разных операционных систем
10.7. Обработка дубликатов индексированных записей
10.8. Расширение диагностики в LOAD DATA
10.9. Не преувеличивайте возможности LOAD DATA
10.10. Пропуск строк в файле данных
10.11. Определение порядка ввода столбцов
10.12. Пропуск столбцов файла данных
10.13. Экспорт результатов запроса из MySQL
10.14. Экспорт таблиц в виде необработанных данных
10.15. Экспорт содержимого таблиц или определений в SQL-формат
10.16. Копирование таблиц и баз данных на другой сервер
10.17. Создание собственных программ экспорта
10.18. Преобразование файлов данных из одного формата в другой
10.19. Извлечение и перестановка столбцов файлов данных
10.20. Проверка корректности и преобразование данных
10.21. Проверка корректности. Прямое сравнение
10.22. Проверка корректности. Сравнение с образцом
10.23. Образцы для широкой классификации
10.24. Образцы для числовых значений
10.25. Образцы для дат и времени
10.26. Образцы для адресов электронной почты и URL
10.27. Проверка корректности при помощи метаданных таблицы
10.28. Проверка корректности при помощи справочной таблицы
10.29. Преобразование двузначных значений года в четырехзначные
10.30. Проверка корректности составляющих даты и времени
10.31. Создание утилит для обработки дат
10.32. Использование дат с недостающими частями
10.33. Преобразование дат при помощи SQL
10.34. Использование временных таблиц для преобразования дат
10.35. Обработка значений NULL
10.36. Определение структуры таблицы для файла данных
10.37. Диагностическая утилита для LOAD DATA
10.38. Обмен данными между MySQL и Microsoft Access
10.39. Обмен данными между MySQL и Microsoft Excel
10.40. Обмен данными между MySQL и FileMaker Pro
10.41. Экспорт результатов запроса в XML
10.42. Импорт XML в MySQL
10.43. Эпилог

11 Формирование и использование последовательностей
11.1. Использование AUTO_INCREMENT для создания столбца последовательности
11.2. Генерирование значений последовательности
11.3. Выбор типа для столбца последовательности
11.4. Удаление записей и формирование последовательности
11.5. Извлечение значений последовательности
11.6. Стоит ли повторно упорядочивать столбец
11.7. Расширение диапазона последовательности
11.8. Перенумерация существующей последовательности
11.9. Повторное использование последних значений последовательности
11.10. Управление изменением нумерации строк
11.11. Как начать последовательность с определенного значения
11.12. Добавление последовательности в существующую таблицу
11.13. Создание последовательностей с помощью столбца AUTO_INCREMENT
11.14. Управление несколькими столбцами AUTO_INCREMENT одновременно
11.15. Использование значений AUTO_INCREMENT для связывания таблиц
11.16. Генераторы однострочных последовательностей
11.17. Формирование повторяющихся последовательностей
11.18. Последовательная нумерация строк вывода запроса

12 Использование нескольких таблиц
12.1. Соединение строк одной таблицы со строками другой
12.2. Соединение таблиц разных баз данных
12.3. Ссылка на имена столбцов вывода соединения в программе
12.4. Нахождение строк одной таблицы, соответствующих строкам другой
12.5. Нахождение строк, которым не соответствуют никакие строки другой таблицы
12.6. Нахождение строк с минимальным и максимальным значениями в группе
12.7. Вычисление рейтинга команд
12.8. Вывод списков для записей "главная-подчиненная" и итогов
12.9. Заполнение пустых мест в списке с помощью соединения
12.10. Отношение "многие-ко-многим"
12.11. Сравнение таблицы с самой собой
12.12. Вычисление разности между последовательными строками
12.13. Нарастающий итог и скользящее среднее
12.14. Управление порядком вывода запроса с помощью соединения
12.15. Преобразование подзапросов в операции соединения
12.16. Параллельный выбор записей из нескольких таблиц
12.17. Вставка записей в таблицу, включающую значения из другой
12.18. Обновление одной таблицы на основе значений другой
12.19. Создание справочной таблицы с помощью соединения
12.20. Удаление связанных строк в нескольких таблицах
12.21. Выявление и удаление несвязанных записей
12.22. Одновременное использование нескольких серверов MySQL

13 Статистические методы
13.1. Получение описательных статистических показателей
13.2. Групповые описательные статистические показатели
13.3. Получение частотного распределения
13.4. Подсчет отсутствующих значений
13.5. Вычисление линейной регрессии и коэффициентов корреляции
13.6. Генерация случайных чисел
13.7. Рандомизация набора строк
13.8. Случайный выбор из набора строк
13.9. Присваивание рангов

14 Обработка повторяющихся записей
14.1. Предотвращение появления дубликатов в таблице
14.2. Обработка дубликатов на этапе создания записи
14.3. Подсчет и выявление дубликатов
14.4. Устранение дубликатов из результата запроса
14.5. Устранение дубликатов из результата самообъединения
14.6. Удаление дубликатов из таблицы

15 Выполнение транзакций
15.1. Проверка поддержки транзакций
15.2. Выполнение транзакций средствами SQL
15.3. Выполнение транзакций в программах
15.4. Использование транзакций в программах на Perl
15.5. Использование транзакций в программах на PHP
15.6. Использование транзакций в программах на Python
15.7. Использование транзакций в программах на Java
15.8. Альтернативы транзакциям

16 Знакомство с MySQL для Web
16.1. Основы формирования веб-страницы
16.2. Запуск веб-сценариев на сервере Apache
16.3. Запуск веб-сценариев на сервере Tomcat
16.4. Кодирование специальных символов для Web

17 Внедрение результатов запросов в веб-страницы
17.1. Представление результатов запроса в виде абзацев
17.2. Представление результатов запроса в виде списков
17.3. Представление результатов запроса в виде таблиц
17.4. Представление результатов запроса в виде гиперссылок
17.5. Создание навигационного индекса
17.6. Хранение изображений и других двоичных данных
17.7. Извлечение изображений и других двоичных данных
17.8. Работа с баннерами
17.9. Использование результатов запроса для загрузки файлов

18 Обработка ввода через Web с помощью MySQL
18.1. Создание форм в сценариях
18.2. Создание элементов формы с возможностью выбора одного значения
18.3. Создание элементов формы с возможностью выбора нескольких значений
18.4. Загрузка в форму записи базы данных
18.5. Получение входных данных через Web
18.6. Проверка корректности ввода через Web
18.7. Использование ввода через Web для формирования запросов
18.8. Обработка загружаемых файлов
18.9. Выполнение поиска и получение результатов
18.10. Формирование ссылок на предыдущую и следующую страницы
18.11. Сортировка результатов запроса по произвольному столбцу
18.12. Счетчики посещаемости веб-страниц
18.13. Журнал доступа к веб-странице
18.14. Ведение журнала Apache с помощью MySQL

19 Управление веб-сеансами с помощью MySQL
19.1. Хранение сеансов в MySQL: приложения на Perl
19.2. Хранение сеансов в MySQL: менеджер сеансов PHP
19.3. Хранение сеансов в MySQL: Tomcat
A. Получение программного обеспечения MySQL
B. JSP и Tomcat для начинающих
C. Справочная информация

Алфавитный указатель