Эта книга, написанная специалистами компании MySQL AB, является всеобъемлющим справочником по языку SQL, который используется для организации запросов к базам данных, а также особенностях реализации стандарта SQL в сервере MySQL. По сути - это официальная документация фирмы-производителя. В книге рассмотрен весь спектр вопросов, касающихся языковой структуры, допустимых типов столбцов, операторов, операций и функций, а также существующих расширений MySQL; также представлена информация, предназначенная для опытных программистов и администраторов. Как известно, MySQL занимает лидирующие позиции среди множества систем управления базами данных с открытым исходным кодом. Благодаря высокой производительности и простоте настройки, богатому выбору API-интерфейсов, а также функциональным средствам работы с сетями, сервер MySQL стал одним из наиболее удачных вариантов для разработки Web-приложений, взаимодействующих с базами данных. Книга рассчитана на разработчиков Web-приложений и администраторов любой квалификации, а также на студентов и преподавателей соответствующих дисциплин.
Название: MySQL. Справочник по языку Автор: Компания MySQL AB Издательство: Вильямс Год: 2005 Страниц: 432 Формат: PDF Размер: 11,3 МБ ISBN: 5-8459-0804-3 Качество: Отличное
Содержание:
Об этой книге От издательства Глава 1. Общая информация 1.1. Что собой представляет это руководство 1.1.1. Соглашения, используемые в руководстве 1.2. Что такое система управления базами данных MySQL 1.2.1. История MySQL 1.2.2. Основные возможности MySQL 1.2.3. Стабильность MySQL 1.2.4. Размеры таблиц MySQL 1.2.5. Решение «проблемы 2000 года» 1.3. Компания MySQL AB 1.3.1. Бизнес-модель и услуги, оказываемые MySQL AB 1.3.1.1. Поддержка 1.3.1.2. Обучение и сертификация 1.3.1.3. Консультации 1.3.1.4. Коммерческие лицензии 1.3.1.5. Партнерство 1.3.2. Контактная информация 1.4. Поддержка и лицензирование MySQL 1.4.1. Поддержка, предоставляемая компанией MySQL AB 1.4.2. Авторские права и лицензии на MySQL 1.4.3. Лицензии на MySQL 1.4.3.1. Использование программного обеспечения MySQL по коммерческой лицензии 1.4.3.2. Бесплатное использование программного обеспечения MySQL по лицензии GPL 1.4.4. Логотипы и торговые марки MySQL AB 1.4.4.1. Оригинальный логотип MySQL 1.4.4.2. Логотипы MySQL, которые можно использовать без письменного разрешения 1.4.4.3. Когда необходимо иметь письменное разрешение на использование логотипов MySQL 1.4.4.4. Партнерские логотипы MySQL AB 1.4.4.5. Использование слова «MySQL» в печатном тексте и презентациях 1.4.4.6. Использование слова «MySQL» в названиях компаний и продуктов 1.5. План разработки MySQL 1.5.1. Кратко о MySQL 4.0 1.5.1.1. Возможности, доступные в MySQL 4.0 1.5.1.2. Встроенный сервер MySQL 1.5.2. Кратко о MySQL 4.1 1.5.2.1. Средства, доступные в MySQL 4.1 1.5.3. MySQL 5.0: Очередной разрабатываемый выпуск 1.6. MySQL и будущее (списки TODO) 1.6.1. Новые средства, запланированные для версии 4.1 1.6.2. Новые средства, запланированные для версии 5.0 1.6.3. Новые средства, запланированные для версии 5.1 1.6.4. Новые средства, запланированные на ближайшее будущее 1.6.5. Новые средства, запланированные на отдаленное будущее 1.6.6. Новые средства, которые не планируются к реализации 1.7. Источники информации по MySQL 1.7.1. Списки рассылки MySQL 1.7.1.1. Перечень списков рассылки MySQL 1.7.1.2. Как задавать вопросы и сообщать об ошибках 1.7.1.3. Как сообщать об ошибках и проблемах 1.7.1.4. Рекомендации по составлению ответов на вопросы из списков рассылки 1.7.2. Поддержка сообщества пользователей MySQL в IRC 1.8. Соответствие стандартам MySQL 1.8.1. Стандарты, которым соответствует MySQL 1.8.2. Выбор режимов SQL 1.8.3. Запуск MySQL в режиме ANSI 1.8.4. Расширения стандартного SQL в MySQL 1.8.5. Отличия MySQL от стандартного SQL 1.8.5.1. Подзапросы 1.8.5.2. Оператор SELECT INTO TABLE 1.8.5.3. Транзакции и атомарные операции 1.8.5.4. Хранимые процедуры и триггеры 1.8.5.5. Внешние ключи 1.8.5.6. Представления 1.8.5.7. '-' как начало комментария 1.8.6. Как MySQL работает с ограничениями 1.8.6.1. Ограничение PRIMARY KEY/UNIQUE 1.8.6.2. Ограничения NOT NULL и значения DEFAULT 1.8.6.3. Ограничения ENUM и SET 1.8.7. Известные ошибки и недостатки дизайна MySQL 1.8.7.1. Ошибки в версии 3.23, исправленные в более поздних версиях MySQL 1.8.7.2. Ошибки в версии 4.0, исправленные в более поздних версиях 1.8.7.3. Открытые ошибки и недостатки дизайна MySQL Глава 2. Структура языка 2.1. Литеральные значения 2.1.1. Строки 2.1.2. Числа 2.1.3. Шестнадцатеричные значения 2.1.4. Булевские значения 2.1.5. Значение NULL 2.2. Имена баз данных, таблиц, индексов, столбцов и псевдонимов 2.2.1. Идентификационные квалификаторы 2.2.2. Чувствительность идентификаторов к регистру 2.3. Пользовательские переменные 2.4. Системные переменные 2.4.1. Структурированные системные переменные 2.5. Синтаксис комментариев 2.6. Трактовка зарезервированных слов MySQL Глава 3. Поддержка наборов символов 3.1. Общие сведения о наборах символов и порядках сопоставления 3.2. Символьные наборы и порядки сопоставления MySQL 3.3. Определение символьного набора и порядка сопоставления по умолчанию 3.3.1. Наборы символов и порядки сопоставления на уровне сервера 3.3.2. Наборы символов и порядки сопоставления на уровне базы данных 3.3.2. Наборы символов и порядки сопоставления на уровне таблицы 3.3.4. Наборы символов и порядки сопоставления на уровне столбца 3.3.5. Примеры назначения символьного набора и порядка сопоставления 3.3.6. Наборы символов и порядки сопоставления на уровне соединения 3.3.7. Набор символов и порядок сопоставления строковых литералов 3.3.8. Применение COLLATE в операторах SQL 3.3.9. Приоритет конструкции COLLATE 3.3.10. Операция BINARY 3.3.11. Специальные случаи, в которых определение порядка сопоставления сложно 3.3.12. Порядок сопоставления должен подходить набору символов 3.3.13. Пример эффекта от порядка сопоставления 3.4. Операции, на которые влияет поддержка наборов символов 3.4.1. Результирующие строки 3.4.2. CONVERT () 3.4.3. CAST () 3.4.4. Операторы SHOW 3.5. Поддержка Unicode 3.6. UTF8 для метаданных 3.7. Совместимость с другими системами управления базами данных 3.8. Новый формат файлов определения символьных наборов 3.9. Национальный набор символов 3.10. Обновление символьных наборов от версии MySQL 4.0 3.10.1. Символьные наборы и соответствующие пары «символьный набор/порядок сопоставления» версии 4.1 3.10.2. Преобразование символьных столбцов версии 4.0. в формат версии 4.1 3.11. Наборы символов и порядки сопоставления, которые поддерживает MySQL 4.1 3.11.1. Символьные наборы Unicode 3.11.2. Западноевропейские наборы символов 3.11.3. Центрально-европейские наборы символов 3.11.4. Южно-европейские и средневосточные наборы символов 3.11.5. Балтийские наборы символов 3.11.6. Кириллические наборы символов 3.11.7. Азиатские наборы символов Глава 4. Типы столбцов 4.1. Обзор типов столбцов 4.1.1. Обзор числовых типов 4.1.2. Обзор типов даты и времени 4.1.3. Обзор строковых типов 4.2. Числовые типы 4.3. Типы даты и времени 4.3.1. Типы DATETIME, DATE и TIMESTAMP 4.3.1.1. Свойства TIMESTAMP в версиях MySQL, предшествующих 4.1 4.3.1.2. Свойства TIMESTAMP в MySQL версии 4.1 и выше 4.3.2. Тип TIME 4.3.3. Тип YEAR 4.3.4. Проблема двухтысячного года (Y2K) и типы данных 4.4. Строковые типы 4.4.1. Типы CHAR и VARCHAR 4.4.2. Типы BLOB и TEXT 4.4.3. Тип ENUM 4.4.4. Тип SET 4.5. Требования по хранению типов столбцов 4.6. Выбор правильного типа столбца 4.7. Использование типов столбцов их других систем управления базами данных Глава 5. Функции и операции 5.1. Операции 5.1.1. Скобки 5.1.2. Операции сравнения 5.1.3. Логические операции 5.1.4. Операции, чувствительные к регистру 5.2. Функции управления потоком выполнения 5.3. Строковые функции 5.3.1. Функции сравнения строк 5.4. Числовые функции 5.4.1. Арифметические операции 5.4.2. Математические функции 5.5. Функции даты и времени 5.6. Функции полнотекстового поиска 5.6.1. Булевский полнотекстовый поиск 5.6.2. Полнотекстовый поиск с расширением запроса 5.6.3. Ограничения полнотекстового поиска 5.6.4. Тонкая настройка полнотекстового поиска MySQL 5.6.5. Что планируется сделать для полнотекстового поиска 5.7. Функции приведения 5.8. Другие функции 5.8.1. Поразрядные функции 5.8.2. Функции шифрования 5.8.3. Информационные функции 5.8.4. Различные функции 5.9. Функции и модификаторы, применяемые в конструкции GROUP BY 5.9.1. Агрегатные функции GROUP BY 5.9.2. Модификаторы GROUP BY 5.9.3. GROUP BY со скрытыми полями Глава 6. Синтаксис операторов SQL 6.1. Операторы манипуляции данными 6.1.1. Синтаксис DELETE 6.1.2. Синтаксис DO 6.1.3. Синтаксис HANDLER 6.1.4. Синтаксис INSERT 6.1.4.1. Синтаксис INSERT… SELECT 6.1.4.2. Синтаксис INSERT DELAYED 6.1.5. Синтаксис LOAD DATA INFILE 6.1.6. Синтаксис REPLACE 6.1.7. Синтаксис SELECT 6.1.7.1. Синтаксис JOIN 6.1.7.2. Синтаксис UNION 6.1.8. Синтаксис подзапросов 6.1.8.1. Подзапрос, как скалярный операнд 6.1.8.2. Сравнения с использованием подзапросов 6.1.8.3. Подзапросы с ANY, IN и SOME 6.1.8.4. Подзапросы с ALL 6.1.8.5. Коррелированные подзапросы 6.1.8.6. EXISTS и NOT EXISTS 6.1.8.7. Подзапросы, возвращающие строку 6.1.8.8. Подзапросы в конструкции FROM 6.1.8.9. Ошибки подзапросов 6.1.8.10. Оптимизация подзапросов 6.1.8.11. Замена подзапросов соединениями для ранних версий MySQL 6.1.9. Синтаксис TRUNCATE 6.1.10. Синтаксис UPDATE 6.2. Операторы определения данных 6.2.1. Синтаксис ALTER DATABASE 6.2.2. Синтаксис ALTER TABLE 6.2.3. Синтаксис CREATE DATABASE 6.2.4. Синтаксис CREATE INDEX 6.2.5. Синтаксис CREATE TABLE 6.2.5.1. Создание внешних ключей 6.2.5.2. Неявные изменения спецификаций столбцов 6.2.6. Синтаксис DROP DATABASE 6.2.7. Синтаксис DROP INDEX 6.2.8. Синтаксис DROP TABLE 6.2.9. Синтаксис RENAME TABLE 6.3. Служебные операторы MySQL 6.3.1. Синтаксис DESCRIBE (получить информацию о столбцах) 6.3.2. Синтаксис USE 6.4. Операторы управления транзакциями и блокировкой MySQL 6.4.1. Синтаксис START TRANSACTION, COMMIT и ROLLBACK 6.4.2. Операторы, которые нельзя откатить 6.4.3. Операторы, вызывающие неявный COMMIT 6.4.4. Синтаксис SAVEPOINT и ROLLBACK TO SAVEPOINT 6.4.5. Синтаксис LOCK TABLES и UNLOCK TABLES 6.4.6. Синтаксис SET TRANSACTION 6.5. Операторы администрирования базы данных 6.5.1. Операторы управления учетными записями 6.5.1.1. Синтаксис DROP USER 6.5.1.2. Синтаксис GRANT и REVOKE 6.5.1.3. Синтаксис SET PASSWORD 6.5.2. Операторы обслуживания таблиц 6.5.2.1. Синтаксис ANALYZE TABLE 6.5.2.2. Синтаксис BACKUP TABLE 6.5.2.3. Синтаксис CHECK TABLE 6.5.2.4. Синтаксис CHECKSUM TABLE 6.5.2.5. Синтаксис OPTIMIZE TABLE 6.5.2.6. Синтаксис REPAIR TABLE 6.5.2.7. Синтаксис RESTORE TABLE 6.5.3. Синтаксис SET и SHOW 6.5.3.1. Синтаксис SET 6.5.3.2. Синтаксис SHOW CHARACTER SET 6.5.3.3. Синтаксис SHOW COLLATION 6.5.3.4. Синтаксис SHOW COLUMNS 6.5.3.5. Синтаксис SHOW CREATE DATABASE 6.5.3.6. Синтаксис SHOW CREATE TABLE 6.5.3.7. Синтаксис SHOW DATABASES 6.5.3.8. Синтаксис SHOW ENGINES 6.5.3.9. Синтаксис SHOW ERRORS 6.5.3.10. Синтаксис SHOW GRANTS 6.5.3.11. Синтаксис SHOW INDEX 6.5.3.12. Синтаксис SHOW INNODB STATUS 6.5.3.13. Синтаксис SHOW LOGS 6.5.3.14. Синтаксис SHOW PRIVILEGES 6.5.3.15. Синтаксис SHOW PROCESSLIST 6.5.3.16. Синтаксис SHOW STATUS 6.5.3.17. Синтаксис SHOW TABLE STATUS 6.5.3.18. Синтаксис SHOW TABLES 6.5.3.19. Синтаксис SHOW VARIABLES 6.5.3.20. Синтаксис SHOW WARNINGS 6.5.4. Другие операторы администрирования 6.5.4.1. Синтаксис CACHE INDEX 6.5.4.2. Синтаксис FLUSH 6.5.4.3. Синтаксис KILL 6.5.4.4. Синтаксис LOAD INDEX INTO CACHE 6.5.4.5. Синтаксис RESET 6.6. Операторы репликации 6.6.1. Операторы SQL для управления главными серверами 6.6.1.1. Синтаксис PURGE MASTER LOGS 6.6.1.2. Синтаксис RESET MASTER 6.6.1.3. Синтаксис SET SQL_LOG_BIN 6.6.1.4. Синтаксис SHOW BINLOG EVENTS 6.6.1.5. Синтаксис SHOW MASTER LOGS 6.6.1.6. Синтаксис SHOW MASTER STATUS 6.6.1.7. Синтаксис SHOW SLAVE HOSTS 6.6.2. SQL-операторы для управления подчиненными серверами 6.6.2.1. Синтаксис CHANGE MASTER TO 6.6.2.2. Синтаксис LOAD DATA FROM MASTER 6.6.2.3. Синтаксис LOAD TABLE имятаблицы FROM MASTER 6.6.2.4. Синтаксис MASTER_POS_WAIT () 6.6.2.5. Синтаксис RESET SLAVE 6.6.2.6. Синтаксис SET GLOBAL SQL_SLAVE_SKIP_COUNTER 6.6.2.7. Синтаксис SHOW SLAVE STATUS 6.6.2.8. Синтаксис START SLAVE 6.6.2.9. Синтаксис STOP SLAVE Глава 7. Пространственные расширения в MySQL 7.1. Введение 7.2. Геометрическая модель OpenGIS 7.2.1. Иерархия геометрических классов 7.2.2. Класс Geometry 7.2.3. Класс Point 7.2.4. Класс Curve 7.2.5. Класс LineString 7.2.6. Класс Surface 7.2.7. Класс Polygon 7.2.8. Класс GeometryCollection 7.2.9. Класс Multipoint 7.2.10. Класс MultiCurve 7.2.11. Класс MultiLineString 7.2.12. Класс MultiSurface 7.2.13. Класс MultiPolygon 7.3. Поддерживаемые форматы пространственных данных 7.3.1. Формат WKT 7.3.2. Формат WKB 7.4. Создание базы данных MySQL для работы с пространственными данными 7.4.1. Типы пространственных данных MySQL 7.4.2. Создание пространственных значений 7.4.2.1. Создание геометрических значений с помощью WKT-функций 7.4.2.2. Создание геометрических значений с помощью WKB-функций 7.4.2.3. Создание геометрических значений с помощью специальных MySQL-функций 7.4.3. Создание пространственных столбцов 7.4.4. Заполнение пространственных столбцов 7.4.5. Выборка пространственных данных 7.4.5.1. Выборка пространственных данных во внутреннем формате 7.4.5.2. Выборка пространственных данных в WKT-формате 7.4.5.3. Выборка пространственных данных в WKB-формате 7.5. Анализ пространственной информации 7.5.1. Функции преобразования формата геометрических объектов 7.5.2. Геометрические функции 7.5.2.1. Общие функции геометрических объектов 7.5.2.2. Функции Point 7.5.2.3. Функции LineString 7.5.2.4. Функции MultiLineString 7.5.2.5. Функции Polygon 7.5.2.6. Функции MultiPolygon 7.5.2.7. Функции GeometryCollection 7.5.3. Функции для создания новых геометрий из существующих 7.5.3.1. Геометрические функции для создания новых геометрий 7.5.3.2. Пространственные операторы 7.5.4. Функции для проверки пространственных отношений между геометрическими объектами 7.5.5. Отношение минимальных ограничивающих прямоугольников 7.5.6. Функции для проверки пространственных отношений между геометриями 7.6. Оптимизация пространственного анализа 7.6.1. Создание пространственных индексов 7.6.2. Использование пространственного индекса 7.7. Соответствие и совместимость MySQL 7.7.1. Функции геоинформационных систем, которые пока не реализованы Глава 8. Хранимые процедуры и функции 8.1. Синтаксис хранимой процедуры 8.1.1. Обслуживание хранимых процедур 8.1.1.1. CREATE PROCEDURE и CREATE FUNCTION 8.1.1.2. ALTER PROCEDURE и ALTER FUNCTION 8.1.1.3. DROP PROCEDURE и DROP FUNCTION 8.1.1.4. SHOW CREATE PROCEDURE и SHOW CREATE FUNCTION 8.1.2. SHOW PROCEDURE STATUS и SHOW FUNCTION STATUS 8.1.3. Оператор CALL 8.1.4. Составной оператор BEGIN… END 8.1.5. Оператор DECLARE 3 8.1.6. Переменные в хранимых процедурах 8.1.6.1. Локальные переменные DECLARE 8.1.6.2. Оператор установки переменных SET 8.1.6.3. Оператор SELECT 8.1.7. Условия и обработчики 8.1.7.1. Условия DECLARE 8.1.7.2. Обработчики DECLARE 8.1.8. Курсоры 8.1.8.1. Объявление курсоров 8.1.8.2. Оператор открытия курсора OPEN 8.1.8.3. Оператор выборки курсора FETCH 8.1.8.4. Оператор закрытия курсора CLOSE 8.1.9. Конструкции управления потоком данных 8.1.9.1. Оператор IF 8.1.9.2. Оператор CASE 8.1.9.3. Оператор LOOP 8.1.9.4. Оператор LEAVE 8.1.9.5. Оператор ITERATE 8.1.9.6. Оператор REPEAT 8.1.9.7. Оператор WHILE Глава 9. Обработка ошибок в MySQL 9.1. Возвраты по ошибке 9.2. Сообщения об ошибках Приложение А. Поиск и устранение проблем с запросами А.1. Проблемы, связанные с запросами А.1.1. Чувствительность к регистру во время поиска А.1.2. Проблемы при использовании столбцов DATE А.1.3. Проблемы со значениями NULL А.1.4. Проблемы с псевдонимами столбцов А.1.5. Сбой оператора ROLLBACK при работе с нетранзакционными таблицами А.1.6. Удаление строк из связанных таблиц А.1.7. Решение проблем с несовпадающими строками А.1.8. Проблемы при сравнении чисел с плавающей запятой А.2. Проблемы, связанные с оптимизатором А.3. Проблемы, связанные с определением таблиц А.3.1. Проблемы с ALTER TABLE А.3.2. Изменение порядка столбцов в таблице А.3.3. Проблемы с TEMPORARY TABLE Приложение Б. Регулярные выражения MySQL Предметный указатель