Числові типи даних. Огляд. Приклади
Зміст
Пошук на інших ресурсах:
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 | ------------------------------------------------
⇑
Споріднені теми
⇑