Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

РН 5.

Здійснювати супроводження інформації


ПК 1. Здатність застосовувати у роботі з оброблення інформації систему
управління базами даних для створення, збереження та управління даними
для відповідної системи
Тема 1. Системи управління базами даних для створення, збереження та
управління даними для відповідної системи
Тема уроку 4. Типи даних
Мета: оволодіти знаннями про типи даних, розвити навики роботи з
типами даних, виховувати засобами уроку впевненість у своїх силах.
Тип уроку: засвоєння нових знань.
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 – це цілочисельні типи даних.
Характеристики типів визначаються згідно з нижченаведеною таблицею.
Тип Представлення
даних Діапазон діапазону Пам’ять, байт

-9 223 372 036 854 775 80
8 . .
bigint 9 223 372 036 854 775 807 -263..263-1 8

-2 147 483 648 . .
int 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];

You might also like