Математика | ||||
Дюбуа, Поль. Д95 MySQL : Пер. с англ. : Уч. пос. — М. : Издательский дом "Вильяме", 2001. — 816 с. : ил. — Парал. тит. англ. ISBN 5-8459-0158-8 (рус.) В книге описана одна из самых популярных реляционных систем управления базами данных MySQL. Вместо простого обзора возможностей MySQL, автор показывает, как можно максимально эффективно использовать эту СУБД. На примере двух тестовых баз данных он приводит рецепты решения проблем, с которыми вы обязательно столкнетесь при практическом использовании MySQL. Вы научитесь интегрировать MySQL с программными средствами, разработанными сторонними компаниями, такими как компиляторы языков РНР и Perl, которые позволяют с помощью запросов к базе данных создавать динамические Web-страницы. Кроме того, здесь приведен обширный справочник по типам столбцов, операторам, функциям, синтаксическим конструкциям языка SQL, интерфейсам С API, Peri DBI и PHP API. В книге предоставлена уникальная информация, которую вряд ли можно получить где-нибудь еще. Книга рассчитана на пользователей и разработчиков систем кли-: ент/сервер на основе MySQL. | ||||
Оглавление ЧАСТЬ I. ИСПОЛЬЗОВАНИЕ СУБД MYSQL 37 Глава 1. Знакомство с СУБД MySQL и SQL 38 Глава 2. Работа с данными в MySQL 119 Глава 3. Синтаксис и использование языка SQL 185 Глава 4. Оптимизация запросов 227 ЧАСТЬ П. ПРОГРАММНЫЕ ИНТЕРФЕЙСЫ СУБД MYSQL 251 Глава 5. Введение в программирование в СУБД MySQL 252 Глава 6. Программный интерфейс MySQL С API 275 Глава 7. Программный интерфейс Perl API 333 Глава 8. Интерфейс API для языка написания сценариев РНР 412 ЧАСТЬ III. АДМИНИСТРИРОВАНИЕ MYSQL " 453 Глава 9. Введение в администрирование MySQL 454 Глава 10. Каталог данных MySQL 460 Глава 11. Общее администрирование MySQL 479 Глава 12. Безопасность 518 Глава 13. Поддержка и восстановление баз данных ,540 ЧАСТЫУ. ПРИЛОЖЕНИЯ 555 Приложение А. Получение и инсталляция программного обеспечения 556 Приложение Б. Типы столбцов 576 Приложение В. Операторы и функции 586 Приложение Г. Синтаксис SQL ' 631 Приложение Д. Программы MySQL 668 Приложение Е. Программный интерфейс приложений С 707 Приложение Ж. Программный интерфейс DBI языка написания сценариев Perl 741 Приложение 3. Программный интерфейс языка РНР 761 Приложение И. Утилиты независимых разработчиков 784 Приложение К. Провайдеры услуг Internet 787 Предметный указатель , 801 Содержание Об авторе jy О рецензентах 17 Предисловие j n Благодарности 20 Ждем ваших отзывов! 21 Введение 22 Все-таки, почему MySQL? 24 Если вы уже работаете с другой СУБД 26 Инструментарий, поставляемый с MySQL 27 Можно ли получить MySQL бесплатно? 28 Для кого предназначена эта книга 30 Как написана эта книга 30 Часть I. Использование СУБД MySQL 30 Часть II. Программные интерфейсы СУБД MySQL 31 Часть III. Администрирование MySQL 31 Часть IV. Приложения 32 Как читать эту книгу 32 Версии программного обеспечения, которые упоминаются в этой книге 34 Соглашения, используемые в этой книге 34 Дополнительные источники 35 ЧАСТЬ I. ИСПОЛЬЗОВАНИЕ СУБД MYSQL 37 Глава 1. Знакомство с СУБД MySQL и SQL 38 Назначение СУБД MySQL 39 Пример базы данных 43 "Историческая Лига" 44 Проект "Учет успеваемости" 47 Каким образом пример базы данных можно использовать в конкретном случае 47 Основная терминология баз данных 48 Структурная терминология 48 Терминология языка запросов SQL 51 Терминология архитектуры СУБД MySQL 51 Учебный курс по СУБД MySQL 53 с Предварительные требования 53. ример тестовой базы данных 55 становка и завершение связи с сервером 55 вод запросов 57 оздание базы данных 59 Создание таблиц 61 Дополнение таблиц 77 Выборка информации 80 Удаление и модификация существующих записей 107 Модификация структуры таблиц 109 Как работать с mysql ПО Упрощение процесса подключения ПО Упрощение процесса создания запросов 113 Что дальше? 118 Глава 2. Работа с данными в MySQL 119 Типы данных СУБД MySQL 121 Цифровые данные 121 Строковые (символьные) данные 121 Календарные данные 122 Пустое значение (Null) 123 Типы столбцов СУБД MySQL 123 Типы столбцов 124 Цифровые типы столбцов 127 Строковые типы столбцов ; 139 Календарные типы столбцов 150 Выбор типа столбца 157 Данные какого типа будут храниться в столбце? 160 Каков диапазон значений? 163 Как повысить производительность и эффективность 164 Каким образом сравниваются значения? 167 Как учесть внутреннюю зависимость при выборе типа столбца 168 Вычисление выражений и преобразование типов 169 Правила написания выражений 170 Глава 3. Синтаксис и использование языка SQL 185 СУБД MySQL: преимущества и недостатки 186 Правила присвоения имен в СУБД MySQL 187 Ссылка на элементы баз данных 188 Чувствительность к регистру в операторах SQL 189 Создание, удаление и выборка баз данных 190 Оператор CREATE DATABASE 190 Оператор DROP DATABASE 191 Оператор USE 191 Создание, удаление, индексирование и изменение структуры таблицы 192 Оператор CREATE TABLE 192 Оператор DROP TABLE 197 Создание и удаление индексов 198 Оператор ALTER TABLE 202 Получение информации о базах данных и таблицах 205 Выборка записей 206 Тривиальное объединение 208 Полное объединение 208 Левое объединение 210 Комментарии 211 Разные решения 212 Преобразование вложенных выборок в объединения 212 Проверка отсутствующих значений в таблице 214 Выполнение операции UNION 216 Добавление столбца с непрерывной последовательностью значений 217 Упорядочение или переупорядочение существующих столбцов 217 Сортировка в произвольном порядке 218 Таблица со счетчиком 218 Проверка таблицы на существование 219 Возможности, которые не поддерживает СУБД MySQL 220 Глава 4. Оптимизация запросов 227 Индексирование 228 Преимущества индексирования 228 Недостатки индексирования 231 Выбор индекса 232 Оптимизатор MySQL 234 Как работает оптимизатор 235 . Подавление оптимизации 238 Выбор типа столбцов и эффективность запросов 240 Эффективная загрузка данных 243 Проблемы планирования и блокировки 246 Оптимизация для администраторов 249 ~- ; Параметры сервера 249 Проблема аппаратной платформы 250 ЧАСТЬ II. ПРОГРАММНЫЕ ИНТЕРФЕЙСЫ СУБД MYSQL 251 Глава 5. Введение в программирование в СУБД MySQL 252 Интерфейсы API для СУБД MySQL 258 Интерфейс API для языка С 259 Интерфейс Perl DBI API 260 Интерфейс PHP API 263 Выбор API-интерфейса . 264 Среда выполнения 265 Производительность 266 Я Глава 6. Программный интерфейс MySQL С API 275 Общая процедура создания клиентских программ 277 Основные требования к системе 277 Компилирование и редактирование связей клиентской программы 278 Client 1 — подключение к серверу 279 Client2 — добавление диагностики ошибок . 281 Client3 —модульный стиль программирования 285 Client4 — получение параметров соединения во время выполнения 292 Доступ к содержимому конфигурационного файла 293 Синтаксический анализ аргументов командной строки 296 Обработка запросов 305 Обработка запросов, не возвращающих результатов 306 Обработка запросов, возвращающих результаты 307 Обработка общих запросов 311 Альтернативные методы обработки запросов 313 Сравнение возможностей mysql_store_result() и mysql_use_result() 315 Метаданные результирующего запроса 317 Clients — программа интерактивного ввода запросов , 322 Разное 323 Выполнение вычислений на основе данных, полученных в результирующем наборе 324 Кодирование проблемных данных в запросах 326 Обработка изображений 328 Получение информации из таблицы 329 Наиболее часто встречающиеся ошибки при программировании клиентских программ , 329Глава 7. Программный интерфейс Perl API 333 Свойства сценариев языка Perl 334 Основы интерфейса базы данных Perl ' • 335 Типы данных интерфейса DBI 335 Простой DBI-сценарий 336 Обработка ошибок 341 Обработка запросов, не возвращающих результирующего набора данных 345 Обработка запросов, возвращающих результирующий набор данных 346 Подготовка интерфейса к работе 371 Генерация каталога общества "Историческая Лига" 372 Рассылка напоминаний об истечении срока членства 379 Редактирование записей о членах "Исторической Лиги" 384 Подбор членов "Исторической Лиги" по общности интересов 389 Размещение каталога "Исторической Лиги" на Web-узле 390Работа с интерфейсом DBI в Web-приложениях 393 Настройка сервера Apache для работы с CGI-сценариями 394 Краткое знакомство с модулем CGI.pm 396 Подключение к серверу MySQL Server из Web-сценария 401 Броузер базы данных samp_db 403 Броузер проекта "Учета успеваемости'' 407 Подбор членов "Исторической Лиги" по общности научных интересов 410 Глава 8. Интерфейс API для языка написания сценариев РНР 412 Характеристики сценария, написанного на языке РНР 413 Основы языка РНР 413 Работа с функциями и включаемыми файлами 420 Web-страница с простейшим запросом 425 Обработка результатов запроса 427 Обработка ошибок 432 Проблема кавычек 433 Работа с РНР 434 Ввод оценок учащихся 435 Викторина "Президенты США" 443 Интерактивное редактирование данных о членах "Исторической Лиги" 446 ЧАСТЬ III. АДМИНИСТРИРОВАНИЕ MYSQL 453 Глава 9. Введение в администрирование MySQL 454 Обзор задач администрирования 455 Общее администрирование 456 Безопасность 458 Отладка и поддержка баз данных 459 Глава 10. Каталог данных MySQL 460 Размещение каталога данных 461 Структура каталога данных 463 Как обеспечивается доступ к данным сервера MySQL 463 Представление баз данных 465 Представление таблиц баз данных 466 Ограничения операционной системы на имена баз данных и таблиц • 467 Влияние структуры каталога данных на производительностьсистемы 468 Файлы состояния MySQL 470 Перемещение содержимого каталога данных 473 Методы перемещения 474 Определение эффекта перемещения 475 Перемещение каталога данных 476 Перемещение баз данных 476 Перемещение таблиц баз данных 477 Перемещение файлов состояния 478 Глава 11. Общее администрирование MySQL 479 Защита новой инсталляции MySQL 480 Настройка процедур запуска и завершения работы сервера MySQL 482 Запуск сервера MySQL непривилегированным пользователем 482 Методы запуска сервера 485 Определение опций запуска 486' Завершение работы сервера 487 Когда нельзя подключиться к серверу 488 Управление пользовательскими учетными записями 490 Создание новых пользователей и предоставление привилегий 491 Отмена привилегий и удаление пользователей 497 Ведение файлов журналов , 499 Резервирование и копирование баз данных 503 Резервирование и копирование баз данных с помощью программы mysqldump 505 Использование методов прямого копирования 508 Репликация баз данных . 509 Восстановление данных из архивов 509 Восстановление базы данных 510 Восстановление отдельных таблиц 511 Настройка сервера 511 Запуск нескольких серверов 514 Инсталляция и настройка нескольких серверов 515 Процедуры запуска нескольких серверов 515 Обновление MySQL 516 Глава 12. Безопасность 518 Внутренняя безопасность: защита доступа к каталогу данных 519 Внешняя безопасность: защита сетевого доступа 522 Структура и содержимое таблиц разрешений MySQL 523 Как сервер управляет доступом клиентов 528 Проверка запроса 531 Порядок сравнения столбцов 533 Как минимизировать риск при работе с таблицами разрешений 534 Установка пользователей без помощи оператора GRANT 535 Глава 13. Поддержка и восстановление баз данных 540 Проверка и восстановление таблиц баз данных 541 Синтаксис утилит myisamchk и isamchk 542 Проверка таблиц 543 Восстановление таблиц 543 Как исключить возможность одновременного доступа к таблицам сервера MySQL и утилит 546 Ускорение работы утилит myisamchk и isamchk 549 Планирование превентивной поддержки 550 Периодическая проверка таблиц с помощью программы сгоп 552 Проверка таблиц во время загрузки системы 553 ЧАСТЬ IV. ПРИЛОЖЕНИЯ 555 Приложение А. Получение и инсталляция программного обеспечения 556 Выбор компонентов для инсталляции 557 Получение программного обеспечения 558 Выбор инсталлируемой версии 558 Инсталляция MySQL в системе UNIX 560 Еще об инсталляций MySQL 561 Создание учетной записи для пользователя MySQL 561 Получение и инсталляция дистрибуции MySQL 562 Инициализация каталога данных и таблиц разрешений 566 Запуск сервера 567 Инсталляция поддержки Perl DBI 567 Инсталляция РНР и Apache 569 Инсталляция MySQL в Windows 571 Инсталляция дистрибуции клиентской программы или клиент/сервера 572 Инсталляция MyODBC 573 Инсталляция поддержки Perl DBI 574 Инсталляция РНР и Apache 575 Получение и инсталляция дистрибуции базы данных samp_db 575 Приложение Б. Типы столбцов 576 Числовые типы 577 Строковые типы 580 Типы даты и времени 583 Приложение В. Операторы и функции 586 Операторы 588 Приоритет операторов ' 588 Операторы группировки 588 Арифметические операторы 589 Операторы сравнения 590 Битовые операторы 594 Логические операторы 595 Операторы преобразования 596 Операторы сравнения с образцом 596 Функции 600 Функции сравнения 600 ! j Числовые функции 602 Строковые функции 607 Функции даты и времени 615 Суммирующие функции 624 Другие функции • 625Приложение Г. Синтаксис SQL 631 Операторы SQL 632 ALTER TABLE 632 CREATE DATABASE 634 CREATE FUNCTION 634 CREATE INDEX 635 CREATE TABLE 635 DELETE 639 DESCRIBE 640 DROP DATABASE 640 DROP FUNCTION 641 DROP INDEX 641 DROP TABLE 641 EXPLAIN 641 FLUSH 642 Оператор GRANT 642 INSERT 645 KILL 646 LOAD DATA 647 LOCK TABLES 651 OPTIMIZE TABLE 651 REPLACE 652 REVOKE 652 SELECT 653 SET 656 SHOW 659 UNLOCK TABLES 664 UPDATE 665 USE 665 Синтаксис комментариев 665 Приложение Д. Программы MySQL 668 Определение программных опций 669 Стандартные опции программы MySQL 670 Конфигурационные файлы 672 Переменные среды 675 Утилиты isamchk и myisamchk 676 Использование 677 Стандартные опции, поддерживаемые утилитами isamchk и myisanchk 678 Общие опции утилит isamchk и myisamchk 678 Специальные опции утилиты myisamchk 680 Переменные утилит isamchk и myisamchk 681 Утилиты myisampack и pack_isam 681 Использование 682 Стандартные опции, поддерживаемые утилитами myisampack и packjsam 682 Общие опции утилит myisampack и pack_isam 682 Специальные опции pack_isam 683 Утилита mysql 683 Использование ' 685 Стандартные опции, поддерживаемые программой mysql 685 Специальные опции mysql 685 Переменные mysql 687 Команды mysql 687 Сценарий mysql.server 688 Использование 688 Сценарий mysqlaccess 689 Использование 689 Стандартные опции, поддерживаемые сценарием mysqlaccess 689 Специальные опции mysqlaccess 689 Программа mysqladmin 690 Использование 690 Стандартные опции, поддерживаемые утилитой mysqladmin 690 Специальные опции mysqadmin 690 Команды mysqladmin 691 Программа mysqlbug 693 Использование 693 Программа mysqld 693 Использование 694 Стандартные опции, поддерживаемые программой mysqld 694 Специальные опции mysqld 694 Переменные mysqld 698 Программа mysqldump 700 Использование 700 Стандартные опции, поддерживаемые программой mysqldump 701 Специальные опции mysqldump 701 Опции форматирования данных 702 Переменные mysqldump 703 Программа mysqlimport 703 Использование 703 Стандартные опции, поддерживаемые утилитой mysqlimport 704 Специальные опции mysqlimport 704 . Опции форматирования данных 704 Программа mysqlshow 705 Использование 705 Стандартные опции, поддерживаемые программой mysqlshow 706 Специальные опции mysqlshow 706 Программа safe_mysqld • 706Использование 706 Приложение Е. Программный интерфейс приложений С 707 Компилирование и редактирование связей 708 Типы данных программного интерфейса приложений С 708 Скалярные типы данных 709 Нескалярные типы данных 709 Макросы доступа 714 Функции программного интерфейса приложений С 714 Функции управления соединением 715 Функции состояния и диагностики ошибок 721 Функции создания и выполнения запросов 721 Функции обработки результирующих наборов 724 Информационные функции 734 Административные функции 736 Функции отладки 737 Исключенные функции 737 Приложение Ж. Программный интерфейс DBI языка написания сценариев Perl 741 Написание сценариев 742 Методы интерфейса DBI 742 Методы класса DBI 744 Методы дескрипторов баз данных 747 Методы дескрипторов операторов 749 Методы общих дескрипторов 752 Специальные административные методы MySQL 753 Функции утилит интерфейса DBI 754 Атрибуты интерфейса DBI . 755 Общие атрибуты дескрипторов 755 Динамические атрибуты 756 Специальные атрибуты дескрипторов баз данных MySQL 756 Атрибуты дескрипторов операторов 757 Специальные атрибуты дескрипторов операторбв MySQL 758 Переменные среды интерфейса DBI 760 Приложение 3. Программный интерфейс языка РНР 761 Написание сценариев РНР 762 Функции 763 Программы управления соединением ' 764 Программы состояния и диагностики ошибок 765 Программы построения и выполнения запросов 767 Программы обработки результирующих наборов 770 Программы баз данных 782 Предисловие Г Когда мне предложили рецензировать книгу Пола, я даже не предполагал, что мне еще придется писать и предисловие. Я всегда придерживался мнения, что программисту нельзя писать книги, даже если это книги для программистов. Может я и имею малую толику таланта писать программный код, который потом работает, но, к счастью, есть такие люди, как Пол, которые могут объяснять доступным языком вещи, которые многие пользователи просто не понимают. Мы работали над тем, как сделать MySQL еще эффективнее и быстрее, но у MySQL есть такие возможности, которые можно изучить только на практике. Более года Пол работал над руководством по MySQL, изучая принципы работы СУБД MySQL. В этой книге он делится своим опытом и знаниями с вами. (При желании вы тоже можете подключиться к работе по созданию интерактивного справочного руководства по СУБД MySQL, даже если в данный момент вы не совсем понимаете принципы работы СУБД MySQL.) Руководство по MySQL всегда рассматривалось в ТсХ как технический справочник по MySQL. Нам всегда не доставало руководства пользователя, в котором бы излагались технические концепции в более легкодоступной форме. Эта книга отлично восполняет этот пробел! Одной из самых важнейших задач СУБД MySQL является максимально возможная совместимость со старыми версиями. Поэтому есть уверенность, что, невзирая на очень высокие темпы развития MySQL, большая часть концепций, изложенных в этой книге, будет актуальна достаточно длительный период времени. Не желая злоупотреблять вашим вниманием, я все же хотел бы поблагодарить свою жену Кэрол за ее невероятное долготерпение на протяжении всех трех лет моей работы над проектом MySQL; моих детей Макса и Ми за понимание того факта, что даже если их папа есть дома, то фактически он отсутствует. Также хочу поблагодарить Дэвида за его бесценный совет написать о MySQL и Аллана Ларсона (Allan Larson) за предоставленную мне возможность это сделать. Я всегда мог рассчитывать на помощь и поддержку со стороны действующей команды MySQL: Яни Толонена, Синими Миливоевича (Sinisa Milivojevic), Анпги Халонена (Antti Halonen) и Тону Самуэля (Топи Samuel). Наконец, я бы хотел поблагодарить тех людей, которые работали над написанием программного интерфейса и клиентских программ, выпускали дополнения и прекрасные отчеты об ошибках, которые помогли нам создать СУБД MySQL в том виде, в котором она есть сегодня. Михаэль Видениус Гельсингфорс (Helsinefors). 1999 г. Цена: 300руб. |
||||