Типи даних SQL Server із прикладами
Що таке тип даних?
A Тип даних на сервері SQL визначається як тип даних, які може зберігати будь-який стовпець або змінна. Це тип даних, які зберігає об’єкт, як-от ціле число, символ, рядок тощо. Створюючи будь-яку таблицю чи змінну, окрім вказівки назви, ви також установлюєте тип даних, які вона зберігатиме.
Як використовувати тип даних MS SQL
- Потрібно заздалегідь визначити тип даних, які може зберігати стовпець або змінна. Визначення типу даних також обмежує користувача від введення будь-яких неочікуваних або недійсних даних.
- Ви можете ефективно використовувати пам’ять, призначивши відповідний тип даних змінній або стовпцю, який виділить лише необхідний обсяг системної пам’яті для даних відповідного стовпця.
- MS SQL пропонує широку категорію основних типів даних у SQL відповідно до потреб користувача, таких як дата, двійкові зображення тощо.
Навіщо використовувати DataTypes?
Давайте візьмемо простий зразок Сторінка реєстрації програми веб-сайту. Три поля введення: ім’я, прізвище та контактний номер.
Тут слід зазначити, що в режимі реального часу:
- «Ім’я/Прізвище» завжди буде алфавітна.
- “Контакт” завжди буде числовий.
- З наведеного вище малюнка варто визначити «Ім’я/Прізвище» як характер та “Контакт” як ціле.
Очевидно, що в будь-якій програмі всі поля мають той чи інший тип даних. Наприклад, цифри, букви, дата та багато іншого.
Також зауважте, що різні типи даних мають різні вимоги до пам’яті. Тому доцільніше визначити стовпець або змінна з типом даних, який він матиме для ефективного використання пам’яті.
Тип даних доступний у MS SQL Server
Ось список типів даних сервера MS SQL:
MS SQL сервер підтримують такі категорії типів даних:
- Точна цифра
- Приблизне числове
- Дата і час
- Рядки символів
- Рядки символів Unicode
- Двійкові рядки
- Інші типи даних
Точні числові типи даних у SQL
Exact numeric має дев’ять типів підтипів даних на сервері SQL.
Точні числові типи даних
Тип даних | Описи конструкції | Нижня межа | Верхня межа | пам'ять |
---|---|---|---|---|
bigint | Він зберігає цілі числа в заданому діапазоні | −2^63 (−9,223,372 036,854,775,808 XNUMX, XNUMX XNUMX XNUMX XNUMX) | 2^63−1 (−9,223,372, 036,854,775,807) | 8 байт |
Int | Він зберігає цілі числа в заданому діапазоні | −2^31 (−2,147 483,648 XNUMX, XNUMX XNUMX XNUMX XNUMX) | 2^31−1 (−2,147, 483,647) | 4 байт |
smallint | Він зберігає цілі числа в заданому діапазоні | −2^15 (−32,767 XNUMX) | 2^15 (−32,768 XNUMX) | 2 байт |
tinyint | Він зберігає цілі числа в заданому діапазоні | 0 | 255 | Байт 1 |
біт | Він може приймати значення 0, 1 або NULL. | 0 | 1 | 1 байт/8 біт стовпець |
десятковий знак | Використовується для масштабу та чисел із фіксованою точністю | −10^38+1 | 10^381−1 | 5-17 байт |
числовий | Використовується для масштабу та чисел із фіксованою точністю | −10^38+1 | 10^381−1 | 5-17 байт |
гроші | Використані грошові дані | −922,337, 203, 685,477.5808 | +922,337, 203, 685,477.5807 | 8 байт |
малі гроші | Використані грошові дані | -214,478.3648 | +214,478.3647 | 4 байт |
Точні типи числових даних в SQL-сервер з прикладами:
Запит:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Вихід
2
синтаксис
Десятковий (P,S)
Тут,
- P — точність
- S - масштаб
Запит:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Вихід
2.31
Приблизні типи числових даних у SQL
SQL Приблизно числова категорія включає значення з плаваючою комою та дійсні значення. Ці типи даних у SQL здебільшого використовуються в наукових розрахунках.
Приблизний числовий тип даних
Тип даних | Описи конструкції | Нижня межа | Верхня межа | пам'ять | Точність |
---|---|---|---|---|---|
float(n) | Використовується для числа з плаваючою точністю | −1.79E+308 | 1.79 + 308 | Залежить від значення n | 7 Digit |
реальний | Використовується для числа з плаваючою точністю | −3.40E+38 | 3.40 + 38 | 4 байт | 15 Digit |
Syntax: FLOAT [(n)]
Тут, n це кількість бітів, які використовуються для зберігання мантиси плавати число в науковій нотації. За замовчуванням значення n дорівнює 53.
Коли користувач визначає тип даних, наприклад float, n має бути значенням від 1 до 53.
SQL Server лікує n як одне з двох можливих значень. Якщо 1<=n<=24, n розглядається як 24. Якщо 25<=n<=53, n розглядається як 53.
Приклад запиту:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Вихід
22.1234
Типи даних дати та часу в SQL
Він зберігає дані типу Дата і час.
Тип даних «Дата й час».
Тип даних | Описи конструкції | Розмір зберігання | Точність | Нижній діапазон | Верхній діапазон |
---|---|---|---|---|---|
DateTime | Використовується для визначення дати й часу з 1 січня 1753 року до 31 грудня 9999 року. Має точність 3.33 мілісекунди. | 8 байт | Округлено до .000, .003, .007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Використовується для визначення дати та часу з 1 січня 0001 року до 31 грудня 9999 року. Має точність 100 наносекунд | 4 байти, фіксовано | 1 хвилин | 1900-01-01 | 2079-06-06 |
дата | Використовується лише для зберігання дати з 1 січня 0001 року до 31 грудня 9999 року | 3 байти, фіксовано | 1 день | 0001-01-01 | 9999-12-31 |
час | Використовується для зберігання лише значень часу з точністю до 100 наносекунд. | 5 байт | 100 наносекунди | 00:00:00.0000000 | 23:59:59.9999999 |
datetimeoffset | Подібно до datatime, але має зміщення часового поясу | 10 байт | 100 наносекунди | 0001-01-01 | 9999-12-31 |
datetime2 | Використовується для вказівки дати та часу з 1 січня 0001 по 31 грудня 9999 | 6 байт | 100 наносекунди | 0001-01-01 | 9999-12-31 |
Приклад запиту:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Вихід
'2030-01-01'
Типи даних символьних рядків у SQL
Ця категорія пов'язана з типом персонажа. Це дозволяє користувачеві визначати тип даних символу, який може мати фіксовану та змінну довжину. Він має чотири типи даних. Нижче наведено типи даних SQL-сервера символьного рядка з прикладами.
Типи даних символьних рядків
Тип даних | Описи конструкції | Нижня межа | Верхня межа | пам'ять |
---|---|---|---|---|
бак | Це рядок символів із фіксованою шириною. Він зберігає максимум 8,000 символів. | 0 символів | 8000 символів | n байт |
varchar | Це рядок символів зі змінною шириною | 0 символів | 8000 символів | n байт + 2 байти |
varchar (макс.) | Це рядок символів зі змінною шириною. Він зберігає максимум 1,073,741,824 XNUMX XNUMX XNUMX символів. | 0 символів | 2^31 символ | n байт + 2 байти |
текст | Це рядок символів зі змінною шириною. Він зберігає максимум 2 ГБ текстових даних. | 0 символів | 2,147,483,647 символів | n байт + 4 байти |
Приклад запиту:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Вихід
Це символьний тип даних
Типи даних рядків символів Unicode в SQL
У цій категорії зберігається повний діапазон символів Unicode, які використовують кодування UTF-16.
Типи даних рядків символів Unicode
Тип даних | Описи конструкції | Нижня межа | Верхня межа | пам'ять |
---|---|---|---|---|
nchar | Це рядок Unicode фіксованої ширини | 0 символів | 4000 символів | 2 рази на n байт |
нварчар | Це рядок Unicode змінної ширини | 0 символів | 4000 символів | 2 рази на n байтів + 2 байти |
ntext | Це рядок Unicode змінної ширини | 0 символів | 1,073,741,823 символів | 2 довжини струни |
Приклад запиту:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Вихід
Це тип даних nCharacter
Двійкові рядкові типи даних у SQL
Ця категорія містить двійковий рядок фіксованої та змінної довжини.
Двійкові рядкові типи даних
Тип даних | Описи конструкції | Нижня межа | Верхня межа | пам'ять |
---|---|---|---|---|
двійковий | Це двійковий рядок фіксованої ширини. Він зберігає максимум 8,000 байт. | 0 байт | 8000 байт | n байт |
варбінарний | Це двійковий рядок змінної ширини. Він зберігає максимум 8,000 байт | 0 байт | 8000 байт | Фактична довжина введених даних + 2 байти |
зображення | Це двійковий рядок змінної ширини. Він зберігає максимум 2 Гб. | 0 байт | 2,147,483,647 байт |
Приклад запиту:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Вихід
0x000C
Інші типи даних у SQL
Це інші різні типи даних SQL-сервера з описом нижче:
Тип даних | Описи конструкції |
---|---|
Курсор | Його результатом є стовпець sp_cursor_list та sp_describe_cursor. Повертає назву змінної курсору. |
Рядкова версія | Це версія штампує рядки таблиці. |
Ієрархія | Цей тип даних представляє позицію в ієрархії |
Унікальний ідентифікатор | Перетворення з символьного виразу. |
Sql_variant | Він зберігає значення підтримуваних типів даних SQL server. |
XML | Він зберігає дані XML у стовпці. |
Тип просторова геометрія | Він представляє дані в плоскій системі координат. |
Тип просторова географія | Він представляє дані в навколоземній системі координат. |
таблиця | Він зберігає набір результатів для подальшої обробки. |
Цікаві факти!
- Тип даних CHAR є швидшим за тип даних SQL VARCHAR під час отримання даних.
Підсумки
- Кожен стовпець у таблицях визначає свій тип даних під час створення таблиці.
- Існує шість основних категорій і ще одна різна категорія. Інше різне має дев'ять підкатегорій SQL-сервер доступні типи та розміри даних.