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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



 

Введение

 

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

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

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

 

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

 

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

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

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

 

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

 

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

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

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

 

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

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

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

 

Типы числовых значений

 

Контекст математической точности для операций с точным значением включает типы данных с точным значением (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.

 



Поделиться:


Последнее изменение этой страницы: 2021-01-14; просмотров: 76; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.98.13 (0.005 с.)