Книга посвящена использованию СУБД MySQL для разработки интернет-проектов. В виде уроков рассмотрены все необходимые этапы работы с базами данных: от проектирования структуры до реализации приложений на языке PHP, позволяющих манипулировать данными. Изложенный материал сопровождается многочисленными примерами, комментариями и упражнениями. Показано, как создать гостевую книгу, форум, регистрацию пользователей, интернет-магазин и другие сложные элементы web-сайта.
Оглавление Предисловие 8 О чем эта книга 8 Как пользоваться книгой 9 Введение 10 Что такое базы данных и где они используются 11 Базы данных и приложения 12 Базы данных и Интернет 12 Другие СУБД среднего масштаба 13 PostgreSQL 13 GNU SQL 14 Beagle 14 Модели данных 14 Иерархическая модель 15 Сетевая модель 15 Реляционная модель 16 Немного терминологии 17 ЧАСТЬ I. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 19 Урок 1. Анализ предметной области, проблемы и пути их решения 21 Урок 2 Физическое проектирование таблиц, виды связей, нормализация 23 Первая нормальная форма (1НФ) 24 Ключи и связи 25 Ссылочная целостность 28 Вторая нормальная форма (2НФ) 28 Третья нормальная форма (3НФ) 28 Урок 3. Типы данных и типы таблиц 34 Числа 35 Целые числа (типы TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT) 35 Числа с плавающей точкой (типы DOUBLE и FLOAT) 37 Тип NUMERIC (DECIMAL) 37 Текст 38 Тип CHAR 38 Тип VARCHAR 39 Типы TEXT и BLOB 40 Дата и время 41 Тип YEAR 41 Тип TIME 41 Типы DATE, DATETIME и TIMESTAMP 42 Списки 45 Тип ENUM (перечисление) 45 Тип SET (множество) 46 Выбор типа данных для поля 48 Имена баз данных, таблиц и полей 50 Имена баз данных 50 Имена таблиц 50 Имена полей и обращение к полю 50 Чувствительность имен к регистру букв 51 Типы таблиц 51 ISAM 52 MyISAM 53 HEAP 53 BDB или BerkeleyDB 53 InnoDB 54 MERGE 54 ЧАСТЬ II. MYSQL 59 Урок 4. Установка MySQL под Windows 61 Урок 5. Утилиты MySQL 68 Урок 6. Использование командной строки для обращения к БД 70 ЧАСТЬ III. ФОРМИРОВАНИЕ ЗАПРОСОВ К БД. ЯЗЫК SQL 77 Урок 7. Создание и удаление таблиц 79 Создание таблиц 79 Подробнее об индексировании 81 Недостатки 82 Создание индекса 83 Удаление индекса 84 Правильный выбор поля для индексирования 85 Удаление и переименование таблиц 85 Урок 8. Изменение структуры таблицы 88 Урок 9. Добавление данных в таблицу 98 Урок 10. Удаление данных 103 Сравнение по шаблону 106 Расширенные регулярные выражения 108 Логические операторы 112 Урок 11. Изменение данных 113 Урок 12. Выборка данных (оператор SELECT) 116 Выборка всех данных 116 Выборка из определенных полей 116 Исключение дубликатов 117 Ограничение вывода 118 Выборка определенных записей 119 Оператор IN 120 Оператор BETWEEN ... AND ... 121 Выборка с упорядочением 122 Группировка 125 Использование функций и операций при выборке данных 126 Групповые функции 130 Примеры использования некоторых функций 130 Объединение данных из нескольких таблиц 135 Использование других объединений (JOIN) 138 Использование вложенных запросов 141 Простые вложенные запросы 142 Вложенные запросы в предложениях EXISTS и NOT EXISTS 144 Вложенные запросы в предложениях IN и NOT IN 145 Объединение UNION 147 Удаление и обновление нескольких таблиц 150 Несколько слов о транзакциях 151 ЧАСТЬ IV. PHP И MYSQL 153 Урок 13. PHP в HTML 155 Урок 14. Основы языка PHP 157 Переменные 157 Тип integer 158 Тип floating point 158 Тип string 158 Тип object 159 Тип array 160 Операции 160 Арифметические операции 160 Логические операции 161 Конкатенация 161 Сравнение 161 Структуры управления 162 if / elseif 162 for и foreach 163 while 164 switch 164 Функции 165 Пользовательские функции 166 Встроенные функции 166 Урок 15. Отображение и вставка данных 167 Урок 16. Обработка результатов запроса 174 Урок 17. Получение данных из формы 180 ПРИЛОЖЕНИЯ 183 Приложение 1. Список зарезервированных слов MySQL 185 Приложение 2. Интерфейс PHP API для MySQL 187 mysql_affected_rows 187 mysql_close 187 mysql_connect 188 mysql_create_db 189 mysql_data_seek 189 mysql_db_query 189 mysql_drop_db 189 mysql_errno 190 mysql_error 190 mysql_escape_string 190 mysql_fetch_array 190 mysql_fetch_assoc 191 mysql_fetch_field 191 mysql_fetch_lengths 192 mysql_fetch_object 192 mysql_fetch_row 192 mysql_field_flags 193 mysql_field_len 194 mysql_field_name 194 mysql_field_seek 194 mysql_field_table 194 mysql_field_type 195 mysql_free_result 195 mysql_list_dbs 195 mysql_list_fields 195 mysql_list_processes 196 mysql_list_tables 196 mysql_num_fields 196 mysql_num_rows 196 mysql_pconnect 196 mysql_ping 197 mysql_query 197 mysql_result 198 mysql_select_db 198 Информационные функции 198 Приложение 3. Ответы на вопросы и задания для самоконтроля 200 Урок 3 200 Урок 7 200 Урок 8 201 Урок 17 201 Приложение 4. Описание компакт-диска 204 Предметный указатель 205 6 Оглавление 7 Оглавление