Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / БД / Базы данных Учебник Окончательный вариант!!!.doc
Скачиваний:
209
Добавлен:
22.05.2015
Размер:
1.77 Mб
Скачать

4.2.1.4.Numeric (числовой)

ISO SQL: 2003 стандарт определяет два числовых типа. Каждый числовой тип имеет несколько различных типов данных. Стандартные числовые типы и связанные с ними ключевые слова:

Точный числовой тип:

NUMERIC(g,f)

DECIMAL(g,f) может быть сокращено доDEC

SMALLINT

INTEGERможет быть сокращено доINT

BIGINT

Ориентировочный числовой тип:

FLOAT(p)

REAL

DOUBLE PRECISION

MySQL поддерживает следующие типы данных, за одним исключением - DOUBLE PRECISION тип данных просто с именем DOUBLE. Стандарт SQL был расширен, чтобы добавить дополнительные числовые типы данных:

Точный числовой тип:

TINYINT

MEDIUMINT

BIT(x)

SERIAL

Поля DECIMAL определяется с помощью синтаксиса DECIMAL (G, F). Первый аргумент (G) определяет общее количество цифр, а второй аргумент (F) определяет количество цифр после запятой. DECIMA L и NUMERI C в MySQL реализованы как один и тот же тип. Они применяются

для хранения значений, которые должны быть точными, например, для денежных величин. Когда объявляется столбец одного из этих типов, ей можно указать (и обычно так и делается) точность (precision) и масштаб (scale). Например:

salary DECIMAL(5,2)

В этом примере 5 - это точность, а 2 - масштаб. Точность представляет количество

значащих десятичных разрядов, а масштаб - количество разрядов после десятичной точки. Целые размеры и диапазоны

Для типов столбцов с плавающей точкой MySQL использует четыре байта для значений одинарной точности и восемь для значений двойной точности.

Целочисленные типы данных TINYINT, SMALLINT, INT, MEDIUMINT, и BIGINT. Таблица показывает размеры и диапазоны для целых типов данных:

Размеры и диапазоны для целочисленного типа данных

Наименование типа

Знаковый диапазон

Безнаковый диапазон

Размер

TINYINT

–128 to 127

0 - 255

1 байт

SMALLINT

–32,768 до 32,767

0 - 65,535

2 байта

MEDIUMINT

–8,388,608 до 8,388,607

0 - 16,777,215

3 байта

INT

–2,147,483,648 до

2,147,483,647

0 - 4,294,967,295

4 байта

BIGINT

–9,223,372,036,854,775,808 до

9,223,372,036,854,775,807

0 -

18,446,744,073,709,551,615

8 байт

Размер и диапазон FLOAT

Тип FLOA T применяется для представления приближенных числовых типов данных.

Стандарт SQL позволяет указывать необязательную спецификацию точности (но не диапазон экспоненты) в битах в скобках, следом за ключевым словом FLOAT . Реализация MySQL также поддерживает эту спецификацию точности, но значение точности используется только для указания хранимого размера. Точность от 0 до 23 обеспечивает тип столбца FLOAT одинарной точности. Точность от 24 до 53 - тип столбца DOUBLE двойной точности.

Числовые типы

Наименование типа данных

Принадлежность к SQL стандарту

Фиксированная/переменная длина

Размер

Атрибуты

NUMERIC

принадлежит

фиксированная

см «DECIMAL»

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL SIGNED

UNSIGNED

ZEROFILL

DECIMAL

принадлежит

фиксированная

см «DECIMAL»

DEFAULT

NOT NULL

NULL SIGNED

UNSIGNED

ZEROFILL

TINYINT

не принадлежит

фиксированная

1 байт

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL

SERIAL DEFAULT

VALUE

SIGNED

UNSIGNED

ZEROFILL

SMALLINT

принадлежит

фиксированная

2 байта

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL

SERIAL DEFAULT

VALUE

SIGNED

UNSIGNED

ZEROFILL

INT

принадлежит

фиксированная

3 байта

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL

SERIAL DEFAULT

VALUE

SIGNED

UNSIGNED

ZEROFILL

MEDIUMIT

принадлежит

переменная

4 байта

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL

SERIAL DEFAULT

VALUE

SIGNED

UNSIGNED

ZEROFILL

BEGINT

принадлежит

фиксированная

8 байт

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL

SERIAL DEFAULT

VALUE

SIGNED

UNSIGNED

ZEROFILL

FLOAT

принадлежит

фиксированная

4 байта

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL SIGNED

UNSIGNED

ZEROFILL

DOUBLE

принадлежит

фиксированная

8 байт

AUTO_INCREMENT

DEFAULT

NOT NULL

NULL SIGNED

UNSIGNED

ZEROFILL

BIT

не принадлежит

переменная

см « BIT размер и диапазон»

DEFAULT

NOT NULL

NULL

REAL

принадлежит

REAL является псевдонимом для DOUBLE or FLOAT, в зависимости от sql_mode.

SERIAL

не принадлежит

SERIAL является псевдонимом для BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE KEY.

Соседние файлы в папке БД