Числовые типы данных. Обзор. Примеры
Содержание
- 1. Обзор числовых типов данных
- 2. Тип данных bit. Пример
- 3. Типы данных DECIMAL или NUMERIC. Пример
- 4. Типы данных float или real. Пример
- 5. Типы данных int, bigint, smallint, tinyint. Пример
- 6. Типы money и smallmoney. Пример
- Связанные темы
Поиск на других ресурсах:
1. Обзор числовых типов данных
В Microsoft SQL Server поддерживаются следующие числовые типы данных:
- bit – целочисленный тип данных, который может принимать 1, 0 или NULL;
- decimal или numeric – тип с фиксированной точностью и масштабом;
- float или real – типы приближенных числовых данных;
- int, bigint, smallint, tinyint – целочисленные типы данных;
- money, smallmoney – типы, представляющие денежные (валютные) значения.
⇑
2. Тип данных bit. Пример
Тип данных bit определяет данные, которые могут принимать 0, 1 или Null. Нулевые значения воспринимаются как 0 (ноль), а любые ненулевые значения воспринимаются как 1. Значение Null это не нулевое значение, то есть оно не равно 0.
-- Создать таблицу с типом данных bit CREATE TABLE [Flags] ( Flag1 BIT Not Null, Flag2 BIT Not Null, Flag3 BIT Not Null ); INSERT INTO [Flags] VALUES ( 5, 0, 15 ); INSERT INTO [Flags] VALUES ( 0, 0, 11 ); INSERT INTO [Flags] VALUES ( 1, 100, 1 ); SELECT * FROM [Flags]
Результат
------------------------ Flag1 | Flag2 | Flag3 | ------------------------ 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | ------------------------
Как видно из примера, при попытке записать отрицательные значения или значения больше 1 результирующее значение все равно остается равно 1.
⇑
3. Типы данных DECIMAL или NUMERIC. Пример
Типы данных DECIMAL и NUMERIC определяют цифры с фиксированной точностью и масштабом.
Общая форма объявления этих типов данных следующая:
DECIMAL[(p[,s])] NUMERIC[(p[,s])]
здесь
- p – точность (precision). Это максимальное общее количество десятичных разрядов. Значение p может колебаться от 1 до 38. По умолчанию p = 18;
- s – масштаб. Это максимальное количество десятичных разрядов, размещенных справа от десятичной запятой. Масштаб должен иметь значение от 0 до p, т.е. 0 ≤ s ≤ p. По умолчанию s=0.
Пример.
-- Создать таблицу с типами данных DECIMAL и NUMERIC CREATE TABLE [Numbers] ( Column1 DECIMAL(10,0), Column2 DEC(10,2), -- это синоним к DECIMAL Column3 NUMERIC(8,4), Column4 DECIMAL, Column5 NUMERIC ); INSERT INTO [Numbers] VALUES ( 1.23, 1.234, 1234.567, 12.34, 12345 ); SELECT * FROM [Numbers];
Результат
--------------------------------------------------- Column1 | Column2 | Column3 | Column4 | Column5 | --------------------------------------------------- 1 | 1.23 | 1234.5670 | 12 | 12345 | ---------------------------------------------------
⇑
4. Типы данных float или real. Пример
Типы float и real являются приближенными типами данных, используемыми для числовых данных с плавающей запятой. Данные этих типов считаются приближенными и не могут быть отображены точно. Общее объявление типов согласно синтаксису следующее
float[(n)] real
Здесь n – количество битов, используемых для отображения мантисс числа в формате float. Это значение отображает точность данных и формат хранения. Значение n может быть от 1 до 53.
В соответствии со значением n устанавливается точность. Все это оотображается в следующей таблице.
Значение n | Точность | Объем памяти |
1..24 | 7 знаков | 4 байта |
25..53 | 15 знаков | 8 байт |
Тип real есть синонимом к типу
float(24)
Пример. В примере создается таблица, содержащая объявления типов float и real
-- Создать таблицу с типами данных FLOAT и REAL CREATE TABLE [FloatNumbers] ( Column1 FLOAT, Column2 REAL, -- это синоним к FLOAT(24) Column3 FLOAT(1), -- минимальная точность, 4 байта Column4 FLOAT(53), -- максимальная точность, 8 байт Column5 FLOAT(10), -- 4 байта ); INSERT INTO [FloatNumbers] VALUES ( 1234.56789, 1234.56789, 1234.56789, 12.3456789, 12.3456789 ); SELECT * FROM [FloatNumbers];
Результат
----------------------------------------------------------- Column1 | Column2 | Column3 | Column4 | Column5 | ----------------------------------------------------------- 1234.56789 | 1234.568 | 1234.568 | 12.3456789 | 12.34568 | -----------------------------------------------------------
⇑
5. Типы данных int, bigint, smallint, tinyint. Пример
Типы данных int, bigint, smallint, tinyint – это целочисленные типы данных. Характеристики типов определяются согласно нижеследующей таблице.
Тип данных | Диапазон | Представление диапазона | Память, байт |
bigint | -9 223 372 036 854 775 808 . . 9 223 372 036 854 775 807 | -263..263-1 | 8 |
int | -2 147 483 648 . . 2 147 483 647 | -231..231-1 | 4 |
smallint | -32 768 . . 32 767 | -215..215-1 | 2 |
tinyint | 0 . . 255 | -20-1..28-1 | 1 |
Базовым типом сохранения целочисленных значений есть int.
Пример.
-- Создать таблицу с целочисленными типами данных CREATE TABLE [IntNumbers] ( Column1 BIGINT, -- 8 байт Column2 INT, -- 4 байта Column3 SMALLINT, -- 2 байта Column4 TINYINT, -- 1 байт ); INSERT INTO [IntNumbers] VALUES ( 1234567890, 1234567, 12345, 123 ); SELECT * FROM [IntNumbers];
Результат
---------------------------------------------- Column1 | Column2 | Column3 | Column4 | ---------------------------------------------- 1234567890 | 1234567 | 12345 | 123 | ----------------------------------------------
⇑
6. Типы money и smallmoney. Пример
Типы данных money и smallmoney используются для представления денежных (валютных) значений. Эти типы имеют точность до одной десятитысячной денежной единицы.
Тип данных money занимает 8 байт памяти и может снабжать числа из следующего диапазона:
–922,337,203,685,477.5808 .. 922,337,203,685,477.5807
Тип данных smallmoney занимает 4 байта и может снабжать числа из диапазона:
-214 748,3648 ... 214 748,3647
В этих типах для того, чтобы отделить целые денежные единицы от дробных, используется символ ‘,’ (запятая).
Пример.
-- Создать таблицу с денежными типами данных CREATE TABLE [DemoMoney] ( Column1 MONEY, Column2 SMALLMONEY, Column3 MONEY, Column4 SMALLMONEY ); INSERT INTO [DemoMoney] VALUES ( $249500123.99, $9.58, 123456.78, 0.01 ); SELECT * FROM [DemoMoney];
Результат
------------------------------------------------ Column1 | Column2 | Column3 | Column4 | ------------------------------------------------ 249500123.99 | 9.58 | 123456.78 | 0.01 | ------------------------------------------------
⇑
Связанные темы
- Ресурс Microsoft
- Создание таблиц. Оператор CREATE TABLE. Примеры
- Модификация таблиц. Оператор ALTER TABLE. Примеры
⇑