КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 711583 томов
Объем библиотеки - 1394 Гб.
Всего авторов - 274185
Пользователей - 124995

Последние комментарии

Новое на форуме

Новое в блогах

Впечатления

pva2408 про Зайцев: Стратегия одиночки. Книга шестая (Героическое фэнтези)

Добавлены две новые главы

Рейтинг: 0 ( 0 за, 0 против).
medicus про Русич: Стервятники пустоты (Боевая фантастика)

Открываю книгу.

cit: "Мягкие шелковистые волосы щекочут лицо. Сквозь вязкую дрему пробивается ласковый голос:
— Сыночек пора вставать!"

На втором же предложении автор, наверное, решил, что запятую можно спиздить и продать.

Рейтинг: +2 ( 2 за, 0 против).
vovih1 про Багдерина: "Фантастика 2024-76". Компиляция. Книги 1-26 (Боевая фантастика)

Спасибо автору по приведению в читабельный вид авторских текстов

Рейтинг: +3 ( 3 за, 0 против).
medicus про Маш: Охота на Князя Тьмы (Детективная фантастика)

cit anno: "студентка факультета судебной экспертизы"


Хорошая аннотация, экономит время. С четырёх слов понятно, что автор не знает, о чём пишет, примерно нихрена.

Рейтинг: +1 ( 1 за, 0 против).
serge111 про Лагик: Раз сыграл, навсегда попал (Боевая фантастика)

маловразумительная ерунда, да ещё и с беспричинным матом с первой же страницы. Как будто какой-то гопник писал... бее

Рейтинг: +2 ( 2 за, 0 против).

MySQL: руководство профессионала [Алексей В Паутов] (fb2) читать постранично


 [Настройки текста]  [Cбросить фильтры]

Алексей В. Паутов
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.

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

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

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

1.2. Изменения типа данных DECIMAL

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


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

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

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


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

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

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


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

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

Максимальное значение 65 для M