ebook img

MySQL. Сборник рецептов PDF

1057 Pages·2007·14.339 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview MySQL. Сборник рецептов

mysql_last.qxd 05.10.04 13:32 Page 1 О Решения и примеры для разработчиков х в баз данных MySQL Myат S ы Q в L ае MySQL. Сборник рецептов 4.т 0 ОХВАТЫВАЕТMYSQL 4.0 «MySQL. Сборник рецептов» – это всеобъемлющий сборник задач, решений ипрактических примеров, который будет полезен каждому пользователю M MySQL. Особенность предлагаемых примеров в том, что они решают задачи, ежедневно возникающие у программистов. Каждой задаче, обсуждаемой вкниге, соответствует проработанное решение или рецепт с небольшим фрагментом кода, который можно вставлять прямо в приложение. Но «MySQL. Сборник рецептов» – это не просто сборник фрагментов кода для выполнения операций копиро& y вания и вставки. Работа каждого фрагмента подробно поясняется, что позволяет разо& браться, как и почему все это работает, и применить приемы к схожим ситуациям. S Издание содержит сотни примеров – от простых решений, которые послужат вам в каче& стве напоминаний, до обработки множества SQL&операторов, которые должны выпол& Q няться вместе как единое целое. На веб&сайте книги находятся все сценарии, написанные для API таких языков, как Perl, Python, Java и PHP. В книге обсуждаются: L • Использование сценариев в сочетании с MySQL для чтения запросов из файла MySQL • Формирование запросов, решающих часто встречающиеся задачи • Создание сценариев MySQL для Web С • Взаимодействие с сервером б • Изменение структуры таблиц за счет добавления, удаления или изменения столбцов о • Импорт данных из внешних источников р • Экспорт данных для последующего использования внешними программами н • Выявление, подсчет и удаление дубликатов, а также предотвращение их появления и Сборник рецептов • Вычисление различных статистических характеристик, распределений плотности, к регрессий и корреляций В этой книге не рассматривается создание больших законченных приложений. Она во& р оружит вас набором готовых приемов для решения конкретных задач и пригодится даже е опытным разработчикам MySQL – им не придется писать весь код с нуля. Предлагаемый ц метод «обучения на ходу» поможет пользователям любого уровня полнее реализовать возможности MySQL. е Поль Дюбуа– один из ведущих соавторов «MySQL Reference Manual» – знаменитого се& п тевого учебника, годами осуществляющего поддержку администраторов и разработчи& т ков баз данных MySQL. Помимо руководства Дюбуа написал ряд книг: «Using csh & tsch» и «Software Portability with imake» (O'Reilly), а также «MySQL» и «MySQL and Perl for the Web». о в Êàòåãîðèÿ: Áàçû äàííûõ/MySQL Издательство «Символ(cid:15)Плюс» Д юП Óðîâåíü ïîäãîòîâêè ÷èòàòåëåé: Ñðåäíèé (812) 324(cid:15)5353, (095) 945(cid:15)8100 бо ул аь www.symbol.ru Поль Дюбуа MySQL Cookbook Paul DuBois MySQL Сборник рецептов Поль Дюбуа Санкт(cid:6)Петербург–Москва 2007 Поль Дюбуа MySQL. Сборник рецептов Перевод П.Шера Главный редактор А.Галунов Зав. редакцией Н.Макарова Научный редактор М.Деркачев Редактор В.Кузнецов Корректор И.Чернова Верстка Н.Гриценко Дюбуа П. MySQL. Сборник рецептов.– Пер. с англ.– СПб: Символ(cid:30)Плюс, 2006.– 1056с., ил. ISBN 5(cid:30)93286(cid:30)070(cid:30)7 «MySQL. Сборник рецептов» Поля Дюбуа – это всеобъемлющий сборник задач, ежедневно возникающих у программистов, их решений и практических приме(cid:30) ров. Сборник будет полезен всем пользователям MySQL независимо от уровня их подготовки. Каждой задаче, обсуждаемой в книге, соответствует прорабо(cid:30) танное решение или рецепт с небольшим фрагментом кода, который можно вставлять прямо в приложение. Работа каждого фрагмента подробно поясня(cid:30) ется, что позволяет разобраться, как и почему все это работает, и применить готовые приемы к схожим ситуациям. Материал книги пригодится и опыт(cid:30) ным разработчикам MySQL – им не придется писать весь код с нуля. Издание содержит сотни примеров – от простых решений, которые послужат напоминанием, до обработки множества SQL(cid:30)операторов, которые должны выполняться вместе как единое целое. На веб(cid:30)сайте книги находятся все сце(cid:30) нарии, написанные для API таких языков, как Perl, Python, Java и PHP. Вкниге обсуждаются: использование сценариев для чтения запросов из фай(cid:30) ла; формирование запросов; создание сценариев MySQL для Web; взаимодей(cid:30) ствие с сервером; изменение структуры таблиц за счет добавления, удаления или изменения столбцов; импорт и экспорт данных; выявление, подсчет и уда(cid:30) ление дубликатов, а также предотвращение их появления; вычисление раз(cid:30) личных статистических характеристик. ISBN 5(cid:1)93286(cid:1)070(cid:1)7 ISBN 0(cid:1)596(cid:1)00145(cid:1)2 (англ) © Издательство Символ(cid:30)Плюс, 2004 Authorized translation of the English edition © 2002 O’Reilly Media, Inc. This trans(cid:30) lation is published and sold by permission of O’Reilly Media, Inc., the owner of all rights to publish and sell the same. Все права на данное издание защищены Законодательством РФ, включая право на полное или час(cid:30) тичное воспроизведение в любой форме. Все товарные знаки или зарегистрированные товарные зна(cid:30) ки, упоминаемые в настоящем издании, являются собственностью соответствующих фирм. Издательство«Символ(cid:30)Плюс».199034,Санкт(cid:30)Петербург,16линия,7, тел.(812) 324(cid:30)5353, [email protected]. Лицензия ЛП N 000054 от 25.12.98. Налоговая льгота – общероссийский классификатор продукции ОК 005(cid:30)93, том 2; 953000 – книги и брошюры. Подписано в печать 06.09.2006. Формат 70×1001 /16. Печать офсетная. Объем 66 печ.л. Доп. тираж 1000 экз. Заказ № Отпечатано с готовых диапозитивов в ГУП «Типография «Наука» 199034, Санкт(cid:30)Петербург, 9 линия, 12. Оглавление Предисловие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 1. Работа с клиентской программой mysql. . . . . . . . . . . . . . . . . . . . . . . . . . . .28 1.1. Создание учетной записи пользователя MySQL . . . . . . . . . . . . . . . . . . .29 1.2. Создание базы данных и тестовой таблицы. . . . . . . . . . . . . . . . . . . . . . .31 1.3. Запуск и остановка mysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 1.4. Задание параметров соединения в файлах опций. . . . . . . . . . . . . . . . . .34 1.5. Защита файлов опций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 1.6. Комбинирование параметров файла опций с параметрами командной строки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 1.7. Что делать, если не удается найти mysql . . . . . . . . . . . . . . . . . . . . . . . . .38 1.8. Установка переменных окружения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 1.9. Создание запросов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 1.10. Выбор базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 1.11. Отмена частично введенного запроса . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 1.12. Повторение и редактирование запросов. . . . . . . . . . . . . . . . . . . . . . . . . .45 1.13. Автоматическое завершение ввода имен баз данных и таблиц . . . . . .47 1.14. Использование в запросах переменных SQL . . . . . . . . . . . . . . . . . . . . . .48 1.15. Чтение запросов из файла. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 1.16. Чтение запросов из других программ. . . . . . . . . . . . . . . . . . . . . . . . . . . .53 1.17. Ввод запросов в командной строке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54 1.18. Использование копирования и вставки для формирования ввода mysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 1.19. Борьба с исчезновением с экрана вывода запроса. . . . . . . . . . . . . . . . . .56 1.20. Перенаправление вывода запроса в файл или программу. . . . . . . . . . .57 1.21. Выбор формата вывода: таблица или элементы, разделенные табуляцией. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 1.22. Задание произвольного разделителя для столбцов вывода. . . . . . . . . .59 1.23. Формирование HTML(cid:30)вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 1.24. Формирование XML(cid:30)вывода. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62 1.25. Исключение заголовков столбцов из вывода запроса . . . . . . . . . . . . . .63 1.26. Нумерация строк вывода запроса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64 1.27. Улучшение читаемости длинных строк. . . . . . . . . . . . . . . . . . . . . . . . . .65 1.28. Управление уровнем подробности mysql . . . . . . . . . . . . . . . . . . . . . . . . .67 1.29. Протоколирование интерактивных сеансов mysql. . . . . . . . . . . . . . . . .67 6 Оглавление 1.30. Создание сценариев mysql из ранее выполненных запросов. . . . . . . . .68 1.31. Использование mysql в качестве калькулятора . . . . . . . . . . . . . . . . . . .69 1.32. Использование mysql в сценариях оболочки. . . . . . . . . . . . . . . . . . . . . .71 2. Создание программы для MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77 2.1. Соединение с сервером MySQL, выбор базы данных и отключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 2.2. Контроль ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96 2.3. Создание библиотечных файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104 2.4. Запуск запросов и извлечение результатов . . . . . . . . . . . . . . . . . . . . . .116 2.5. Перемещение по результирующему множеству . . . . . . . . . . . . . . . . . .133 2.6. Использование в запросах подготовленных предложений и заполнителей. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134 2.7. Использование в запросах специальных символов и значений NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 2.8. Обработка значений NULL в результирующих множествах. . . . . . . .148 2.9. Создание объектно(cid:30)ориентированного интерфейса MySQL для PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152 2.10. Способы получения параметров соединения. . . . . . . . . . . . . . . . . . . . .167 2.11. Заключение и рекомендации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183 3. Выбор записей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184 3.1. Задание столбцов вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186 3.2. Решение проблем с неправильным порядком вывода столбцов. . . . .187 3.3. Присваивание имен столбцам вывода. . . . . . . . . . . . . . . . . . . . . . . . . . .188 3.4. Использование псевдонимов столбцов в программах. . . . . . . . . . . . . .191 3.5. Объединение столбцов для формирования составных значений . . . .192 3.6. Задание выбираемых строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193 3.7. Инструкция WHERE и псевдонимы столбцов. . . . . . . . . . . . . . . . . . . .197 3.8. Отображение результатов операций сравнения с целью контроля их выполнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197 3.9. Инвертирование, или отрицание условий запроса. . . . . . . . . . . . . . . .198 3.10. Удаление повторяющихся строк. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200 3.11. Обработка значений NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202 3.12. Инвертирование условия для столбца, содержащего значения NULL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203 3.13. Использование в программах операций сравнения с участием NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204 3.14. Сопоставление значениям NULL других значений при выводе. . . . .205 3.15. Упорядочивание результирующего множества . . . . . . . . . . . . . . . . . .207 3.16. Выбор начальных или конечных записей результирующего множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 3.17. Выбор строк из середины результирующего множества. . . . . . . . . . .211 Оглавление 7 3.18. Выбор соответствующих значений для инструкции LIMIT . . . . . . . .213 3.19. Получение значений LIMIT из выражений . . . . . . . . . . . . . . . . . . . . . .215 3.20. Что делать, если для инструкции LIMIT нужен «неправильный» порядок сортировки . . . . . . . . . . . . . . . . . . . . . . . . . .216 3.21. Выбор результирующего множества в существующую таблицу . . . .218 3.22. Создание таблицы из результирующего множества «на лету». . . . . .219 3.23. Безопасное перемещение записей из таблицы в таблицу . . . . . . . . . .221 3.24. Создание временных таблиц. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223 3.25. Клонирование таблицы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 3.26. Формирование уникальных имен таблиц . . . . . . . . . . . . . . . . . . . . . . .227 4. Работа со строками. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 4.1. Создание строк, содержащих кавычки или другие специальные символы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230 4.2. Сохранение замыкающих пробелов встроковых столбцах. . . . . . . . .232 4.3. Проверка равенства и взаимного порядка строк. . . . . . . . . . . . . . . . . .233 4.4. Разбиение и соединение строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234 4.5. Проверка вхождения подстроки в строку . . . . . . . . . . . . . . . . . . . . . . .238 4.6. Поиск по образцу с помощью шаблонов SQL. . . . . . . . . . . . . . . . . . . . .238 4.7. Поиск по образцу с помощью регулярных выражений . . . . . . . . . . . .241 4.8. Буквальная интерпретация метасимволов в шаблонах. . . . . . . . . . . .246 4.9. Управление чувствительностью крегистру при сравнении строк. . .249 4.10. Управление чувствительностью крегистру при поиске по образцу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253 4.11. Поиск с помощью индекса FULLTEXT. . . . . . . . . . . . . . . . . . . . . . . . . .256 4.12. FULLTEXT(cid:30)поиск и короткие слова . . . . . . . . . . . . . . . . . . . . . . . . . . . .261 4.13. Включение и исключение слов из FULLTEXT(cid:30)поиска . . . . . . . . . . . .262 4.14. Поиск фразы при помощи индекса FULLTEXT . . . . . . . . . . . . . . . . . .264 5. Работа с датами и временем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267 5.1. Изменение формата даты MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270 5.2. Определение форматов отображения даты и времени . . . . . . . . . . . . .271 5.3. Определение текущей даты или времени. . . . . . . . . . . . . . . . . . . . . . . .273 5.4. Разбиение дат и времени на части с помощью функций форматирования. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274 5.5. Разбиение дат и времени с помощью функций извлечения составляющих. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276 5.6. Разбиение дат и времени с помощью строковых функций . . . . . . . . .279 5.7. Синтез дат и времени с помощью функций форматирования. . . . . . .280 5.8. Синтез дат и времени с помощью функций извлечения составляющих. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281 5.9. Объединение даты и времени в значение дата(cid:30)и(cid:30)время. . . . . . . . . . . .283 5.10. Преобразование времени в секунды и обратно . . . . . . . . . . . . . . . . . . .283 8 Оглавление 5.11. Преобразование дат в дни и обратно . . . . . . . . . . . . . . . . . . . . . . . . . . . .285 5.12. Преобразование значений дата(cid:30)и(cid:30)время в секунды и обратно . . . . . .286 5.13. Сложение значений времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288 5.14. Вычисление интервалов между значениями времени. . . . . . . . . . . . .289 5.15. Разбиение интервалов времени на составляющие . . . . . . . . . . . . . . . .290 5.16. Добавление значения времени к дате . . . . . . . . . . . . . . . . . . . . . . . . . . .292 5.17. Вычисление интервалов между датами . . . . . . . . . . . . . . . . . . . . . . . . .295 5.18. Стандартизация не(cid:30)совсем(cid:30)ISO(cid:30)строк. . . . . . . . . . . . . . . . . . . . . . . . . . .297 5.19. Вычисление возраста. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299 5.20. Смещение даты на заданную величину . . . . . . . . . . . . . . . . . . . . . . . . .302 5.21. Нахождение первого и последнего дней месяца . . . . . . . . . . . . . . . . . .304 5.22. Вычисление длины месяца. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307 5.23. Получение одной даты из другой заменой подстроки . . . . . . . . . . . . .308 5.24. Определение дня недели для даты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309 5.25. Определение дат для дней текущей недели . . . . . . . . . . . . . . . . . . . . . .310 5.26. Определение дат для дней других недель. . . . . . . . . . . . . . . . . . . . . . . .311 5.27. Вычисления для високосных годов. . . . . . . . . . . . . . . . . . . . . . . . . . . . .313 5.28. Обработка даты и времени как чисел . . . . . . . . . . . . . . . . . . . . . . . . . . .317 5.29. Обработка в MySQL строк как значений времени. . . . . . . . . . . . . . . . .318 5.30. Выбор записей по временным характеристикам . . . . . . . . . . . . . . . . .319 5.31. Использование значений TIMESTAMP . . . . . . . . . . . . . . . . . . . . . . . . .323 5.32. Регистрация времени последнего изменения строки. . . . . . . . . . . . . .324 5.33. Регистрация времени создания записи . . . . . . . . . . . . . . . . . . . . . . . . .325 5.34. Вычисления со значениями TIMESTAMP . . . . . . . . . . . . . . . . . . . . . . .327 5.35. Вывод значений TIMESTAMP в удобном для чтения виде . . . . . . . . .328 6. Сортировка результатов запроса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329 6.1. Использование ORDER BY для сортировки результатов запроса . . .330 6.2. Сортировка частей таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335 6.3. Сортировка результатов выражения. . . . . . . . . . . . . . . . . . . . . . . . . . . .336 6.4. Сортировка одного набора значений и вывод другого . . . . . . . . . . . . .338 6.5. Сортировка и значения NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343 6.6. Сортировка и чувствительность к регистру. . . . . . . . . . . . . . . . . . . . . .345 6.7. Сортировка по дате. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347 6.8. Сортировка по календарному дню. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348 6.9. Сортировка по дню недели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351 6.10. Сортировка по времени дня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353 6.11. Сортировка по подстрокам значений столбцов. . . . . . . . . . . . . . . . . . .354 6.12. Сортировка по подстрокам фиксированной длины . . . . . . . . . . . . . . .354 6.13. Сортировка по подстрокам переменной длины. . . . . . . . . . . . . . . . . . .357 6.14. Сортировка имен хостов по доменам. . . . . . . . . . . . . . . . . . . . . . . . . . . .362 Оглавление 9 6.15. Сортировка IP(cid:30)адресов в числовом порядке. . . . . . . . . . . . . . . . . . . . . .365 6.16. Размещение определенных значений в начале или конце упорядоченного списка . . . . . . . . . . . . . . . . . . . . .367 6.17. Сортировка в порядке, определенном пользователем . . . . . . . . . . . . .369 6.18. Сортировка значений ENUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370 7. Формирование итогов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374 7.1. Суммирование с помощью функции COUNT() . . . . . . . . . . . . . . . . . . .376 7.2. Суммирование при помощи функций MIN() и MAX() . . . . . . . . . . . . .379 7.3. Суммирование при помощи функций SUM() и AVG() . . . . . . . . . . . . .380 7.4. Использование ключевого слова DISTINCT для удаления дубликатов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .382 7.5. Поиск значений, связанных с минимальным и максимальным значениями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .385 7.6. Управление чувствительностью к регистру функций MIN() и MAX() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389 7.7. Разбиение итогов на подгруппы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .390 7.8. Итоги и значения NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .395 7.9. Выбор групп только с определенными характеристиками. . . . . . . . .398 7.10. Устанавливаем уникальность значения. . . . . . . . . . . . . . . . . . . . . . . . .399 7.11. Группирование по результатам выражения . . . . . . . . . . . . . . . . . . . . .400 7.12. Классификация некатегориальных данных . . . . . . . . . . . . . . . . . . . . .402 7.13. Управление порядком вывода итоговой информации . . . . . . . . . . . . .406 7.14. Нахождение наибольшего и наименьшего из итоговых значений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .408 7.15. Итоги по датам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .409 7.16. Одновременная работа с итогами по группам и общим итогом . . . . .413 7.17. Формирование отчета, содержащего итоговую информацию и список. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .416 8. Изменение таблицы с помощью предложения ALTER TABLE . . . . . . .419 8.1. Удаление, добавление и перемещение столбца. . . . . . . . . . . . . . . . . . .421 8.2. Изменение определения или имени столбца . . . . . . . . . . . . . . . . . . . . .422 8.3. Предложение ALTER TABLE, значения NULL и значения по умолчанию. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424 8.4. Изменение значения столбца по умолчанию. . . . . . . . . . . . . . . . . . . . .426 8.5. Изменение типа таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427 8.6. Переименование таблицы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .428 8.7. Добавление и удаление индексов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .429 8.8. Удаление дубликатов путем добавления индекса. . . . . . . . . . . . . . . . .432 8.9. Использование предложения ALTER TABLE для нормализации таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434 10 Оглавление 9. Получение и использование метаданных. . . . . . . . . . . . . . . . . . . . . . . . .440 9.1. Определение количества строк, обработанных запросом . . . . . . . . . .441 9.2. Получение метаданных результирующего множества . . . . . . . . . . . .443 9.3. Определение наличия или отсутствия результирующего множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .452 9.4. Форматирование результатов запроса для отображения. . . . . . . . . . .453 9.5. Получение информации о структуре таблицы . . . . . . . . . . . . . . . . . . .457 9.6. Получение информации о столбцах ENUM и SET . . . . . . . . . . . . . . . .465 9.7. Способы получения информации о таблицах, не зависящие от СУБД. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .467 9.8. Применение информации о структуре таблицы . . . . . . . . . . . . . . . . . .469 9.9. Вывод списков таблиц и баз данных. . . . . . . . . . . . . . . . . . . . . . . . . . . .476 9.10. Проверка существования таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . .478 9.11. Проверка существования базы данных . . . . . . . . . . . . . . . . . . . . . . . . .479 9.12. Получение метаданных сервера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479 9.13. Создание приложений, адаптирующихся к версии сервера MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .480 9.14. Определение текущей базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . .482 9.15. Определение текущего пользователя MySQL . . . . . . . . . . . . . . . . . . . .482 9.16. Мониторинг сервера MySQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .484 9.17. Определение типов таблиц, поддерживаемых сервером . . . . . . . . . . .485 10. Импорт и экспорт данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .488 10.1. Импорт с помощью LOAD DATA и утилиты mysqlimport. . . . . . . . . .493 10.2. Определение местоположения файла данных. . . . . . . . . . . . . . . . . . . .494 10.3. Указание формата файла данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .497 10.4. Использование кавычек и специальных символов. . . . . . . . . . . . . . . .498 10.5. Импорт файлов в формате CSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .499 10.6. Чтение файлов, полученных из разных операционных систем. . . . .500 10.7. Обработка дубликатов индексированных записей. . . . . . . . . . . . . . . .501 10.8. Расширение диагностики в LOAD DATA. . . . . . . . . . . . . . . . . . . . . . . .501 10.9. Не преувеличивайте возможности LOAD DATA. . . . . . . . . . . . . . . . . .502 10.10. Пропуск строк в файле данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .504 10.11. Определение порядка ввода столбцов. . . . . . . . . . . . . . . . . . . . . . . . . . .504 10.12. Пропуск столбцов файла данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .505 10.13. Экспорт результатов запроса из MySQL. . . . . . . . . . . . . . . . . . . . . . . . .506 10.14. Экспорт таблиц в виде необработанных данных. . . . . . . . . . . . . . . . . .509 10.15. Экспорт содержимого таблиц или определений в SQL(cid:30)формат . . . . .510 10.16. Копирование таблиц и баз данных на другой сервер . . . . . . . . . . . . . .512 10.17. Создание собственных программ экспорта . . . . . . . . . . . . . . . . . . . . . .513 10.18. Преобразование файлов данных из одного формата в другой. . . . . . .518

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.