MySQL: руководство профессионала

MySQL: руководство профессионала

Алексей В. Паутов

Описание

Это практическое руководство, основанное на заметках автора, посвященных MySQL версий 4 и 5. Материал структурирован, с указанием специфических особенностей каждой версии. Он дополняет книгу "MySQL: Руководство администратора", ориентируясь на ту же целевую аудиторию. Автор, Алексей В. Паутов, предлагает глубокое понимание точной математики, числовой обработки и контроля над недопустимыми значениями в MySQL. Подробно рассматриваются типы числовых значений, изменения типа данных DECIMAL, максимальное число цифр, формат хранения и требования к памяти. Особое внимание уделяется вопросам совместимости с более старыми версиями MySQL. Материал подготовлен в рамках некоммерческого проекта RussianLDP:MySQL, с обязательной ссылкой на автора и проект при использовании.

<p>Алексей В. Паутов</p><empty-line></empty-line><p>MySQL: руководство профессионала</p><p>Введение</p>

Это не совсем книга. Просто по ходу работы и изучения пакета у меня накопилось немало заметок, которые я в конце концов собрал воедино и опубликовал с оглавлением и под единым названием.

Данные заметки относятся к версиям 4 и 5 пакета MySQL. По ходу текста особо отмечены места, относящиеся к специфической версии пакета. Необходимо также отметить, что эти заметки логически продолжают книгу MySQL: Руководство администратора и ориентированы на ту же аудиторию.

Данный материал подготовлен Паутовым Алексеем в рамках некоммерческого проекта RussianLDP:MySQL. При любом использовании ссылка на автора и проект обязательна!

<p>Глава 1. Точная математика</p>

MySQL 5.1 обеспечивает поддержку для точной математики: числовая обработка значения, которая приводит к чрезвычайно точным результатам, и высокой степени контроль над недопустимыми значениями. Точность основана на этих двух свойствах:

SQL-режимы, которые управляют тем, как строг сервер относительно принятия или отклонения недопустимых данных.

MySQL-библиотека для арифметики с фиксированной запятой.

Эти свойства имеют несколько импликаций для числовых операций:

Точные вычисления : для получения точного значения вычисления не представляют ошибки с плавающей запятой. Вместо этого, используется высокая точность. Например, число типа .0001 обрабатывается как точное значение, а не как приближенное, и суммирование этого 10000 раз производит результат точно 1, а не значение, близкое к 1.

Четкое поведение округления : для чисел высокой точности результат ROUND зависит только от параметра, а не от относящихся к окружению факторах типа того, как основная библиотека C работает.

Независимость от платформы: операции на точных числовых значениях дают тот же самый результат на различных платформах, типа Windows и Unix.

Контроль над обработкой недопустимых значений: переполнение и деление на нуль обнаруживаются и могут обрабатываться как ошибки. Например, Вы можете обрабатывать значение, которое является слишком большим для столбца, как ошибку, а не как наличие значения, усеченного так, чтобы попасть внутрь диапазона типа данных столбца. Точно так же Вы можете обрабатывать деление на нуль как ошибку, а не как операцию, которая производит результат NULL. Выбор подхода определен установкой переменной системы sql_mode.

Важный результат этих свойств: MySQL 5.1 обеспечивает высокую степень согласия со стандартом SQL.

Следующее обсуждение покрывает несколько аспектов того, как работает высокая точность (включая возможные несовместимости со старыми прикладными программами). В конце есть некоторые примеры.

<p id="aRan_1726054398">1.1. Типы числовых значений</p>

Контекст математической точности для операций с точным значением включает типы данных с точным значением (DECIMAL и целочисленные типы) и числовые литералы с точным значением. Типы данных с приблизительным значением и числовые литералы все еще обработаны как числа с плавающей запятой.

Числовые литералы с точным значением имеют целочисленную, дробную части или обе. Они могут быть со знаком или без него. Примеры: 1, .2, 3.4, -5, -6.78, +9.10.

Числовые литералы с приблизительным значением представляются в экспоненциальном формате с мантиссой и экспонентой. Любая из частей или обе могут иметь знак. Примеры: 1.2E3, 1.2E-3, -1.2E3, -1.2E-3.

Два числа, которые выглядят одинаково, могут не быть оба точными или приблизительными. Например, 2.34 представляет собой число с точным значением (с фиксированной запятой), в то время как 2.34E0 задает число с приблизительным значением (с плавающей запятой).

Тип данных DECIMAL является типом с фиксированной запятой, и вычисления точны. В MySQL тип DECIMAL имеет несколько синонимов: NUMERIC, DEC, FIXED. Целочисленные типы также типы с точным значением.

Типы данных FLOAT и DOUBLE являются типами с плавающей запятой, и вычисления приблизительны. В MySQL типы, которые являются синонимичными с FLOAT или DOUBLE, это DOUBLE PRECISION и REAL.

<p id="aRan_4307625847">1.2. Изменения типа данных DECIMAL</p>

Этот раздел обсуждает характеристики типа данных DECIMAL (и синонимов) в MySQL 5.1, со специфическим отношением к следующим темам

Максимальное число цифр

Формат хранения

Требования к памяти

Ненормативное MySQL расширение к верхнему диапазону столбцов DECIMAL

Возможные несовместимости с прикладными программами, которые написаны для старых версий MySQL, отмечены в этом разделе.

Синтаксис объявления для столбца DECIMAL: DECIMAL(M,D). Диапазоны значений для параметров в MySQL 5.1 следующие:

M: максимальное число цифр (точность). Это имеет диапазон от 1 до 65. Старые версии MySQL позволяли диапазон от 1 до 254.

D: число цифр направо от десятичной точки (масштаб). Это имеет диапазон от 0 до 30 и должно быть не больше, чем M.

Похожие книги

97 этюдов для архитекторов программных систем

Нил Форд, Билл де Ора

Архитекторы программного обеспечения играют ключевую роль в успехе проектов. Книга "97 Этюдов для архитекторов программных систем" предлагает практические советы от ведущих специалистов. Она охватывает широкий спектр тем, от решения распространенных проблем до создания эффективных команд. Авторы, включая Билла де Ору, Майкла Хайгарда и Нила Форда, делятся своим опытом, предлагая решения для повышения качества и эффективности работы в сфере разработки ПО. Книга является ценным ресурсом для всех, кто хочет улучшить свои навыки проектирования архитектуры программных систем и добиться успеха в IT-профессии.

BPwin и Erwin. CASE-средства для разработки информационных систем

Сергей Владимирович Маклаков

Эта книга – практическое руководство по созданию информационных систем с помощью CASE-средств BPwin и ERwin. Она детально описывает методы структурного анализа и проектирования моделей данных, необходимые для практической работы. Книга наглядно демонстрирует применение CASE-технологий для автоматизации этапов анализа, проектирования и кодогенерации информационных систем. Идеально подходит для системных аналитиков, проектировщиков, администраторов баз данных, а также студентов, изучающих основы системного анализа и проектирования информационных систем. Вы научитесь использовать BPwin и ERwin для эффективного управления сложными проектами, моделирования бизнес-процессов и создания качественных отчетов.

MySQL: руководство профессионала

Алексей В Паутов, Алексей В. Паутов

Это практическое руководство по MySQL, основанное на заметках автора, посвященных версиям 4 и 5. Оно предоставляет глубокое понимание работы с базами данных MySQL, особенно в отношении точной математики и типов данных. Особое внимание уделено местам, специфичным для каждой версии. Материал логически продолжает предыдущее руководство «MySQL: Руководство администратора» и ориентирован на ту же аудиторию. Автор Алексей В. Паутов, используйте ссылку на автора и проект RussianLDP:MySQL при любом использовании.

Программирование. Принципы и практика использования C++ Исправленное издание

Бьёрн Страуструп, Ирина Сергеевна Козлова

Это переработанное издание популярной книги по C++ от автора языка. Книга подробно описывает язык программирования C++, предоставляя практические примеры и подходы к решению задач. В ней освещены как базовые, так и продвинутые концепции, включая стандартную библиотеку шаблонов (STL), пространства имен, механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Добавлены новые приложения по локализации и безопасной обработке исключений. Книга подходит для программистов, преподавателей, студентов и всех, кто хочет изучить C++.