Анатолий Мотев СанктПетербург бхвпетербург 2006 удк 681 06 ббк 32. 973. 26018. 2 М85
Скачать 4.25 Mb.
|
Анатолий Мотев Санкт-Петербург «БХВ-Петербург» 2006 УДК 681.3.06 ББК 32.973.26-018.2 М85 Мотев А. А. М85 Уроки MySQL. Самоучитель. — СПб.: БХВ-Петербург, 2006. — 208 с.: ил. ISBN 5-94157-658-7 Книга посвящена использованию СУБД MySQL для разработки интер- нет-проектов. В виде уроков рассмотрены все необходимые этапы работы с базами данных: от проектирования структуры до реализации приложений на языке PHP, позволяющих манипулировать данными. Изложенный мате- риал сопровождается многочисленными примерами, комментариями и уп- ражнениями. Показано, как создать гостевую книгу, форум, регистрацию пользователей, интернет-магазин и другие сложные элементы web-сайта. К книге прилагается компакт-диск, который содержит учебную базу данных и скрипты, описанные в книге, а также дистрибутивы MySQL и другие про- граммы, распространяемые по лицензии GNU/GPL. Для программистов УДК 681.3.06 ББК 32.973.26-018.2 Группа подготовки издания: Главный редактор Екатерина Кондукова Зам. главного редактора Игорь Шишигин Зав. редакцией Григорий Добин Редактор Татьяна Темкина Компьютерная верстка Ольги Сергиенко Корректор Зинаида Дмитриева Дизайн серии Инны Тачиной Оформление обложки Елены Беляевой Зав. производством Николай Тверских Лицензия ИД № 02429 от 24.07.00. Подписано в печать 22.03.06. Формат 70 100 1 / 16 Печать офсетная. Усл. печ. л. 16,77. Тираж 3000 экз. Заказ № "ÁÕÂ-Петербург", 194354, Санкт-Петербург, ул. Есенина, 5Б. Санитарно-эпидемиологическое заключение на продукцию № 77.99.02.953.Д.006421.11.04 от 11.11.2004 г. выдано Федеральной службой по надзору в сфере защиты прав потребителей и благополучия человека. Отпечатано с готовых диапозитивов в ГУП "Типография "Наука" 199034, Санкт-Петербург, 9 линия, 12 ISBN 5-94157-658-7 © Мотев А. А., 2006 © Оформление, издательство "БХВ-Петербург", 2006 Îãëàâëåíèå Предисловие ........................................................................................................... 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 Îãëàâëåíèå 4 Урок 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 Îãëàâëåíèå 5 Удаление индекса ....................................................................................................... 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 Îãëàâëåíèå 6 Тип 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 |