Для начала разберём что такое «типы данных».
Типы данных определяют: какие значения могут храниться в столбце и сколько они будут занимать места в памяти. При создании таблицы для всех ее столбцов необходимо указать определенный тип данных.
Основные используемые в SQL типы можно условно разделить на несколько категорий:
- Целочисленные типы;
- Дробные типы;
- Символьные типы;
- Денежные типы;
- Временные типы(дата/время);
Целочисленные типы данных
Тип данных | Описание |
---|---|
INTEGER/INT(size) | Хранение целочисленных значений, образующих диапазон [-2^31; 2^31-1] |
SMALLINT (size) | Характеризуется увеличенным диапазоном хранимых значений в размере от -32 768 до 32 767 |
TINYINT (size) | Служит для хранения чисел в диапазоне от -128 до 127 |
MEDIUMINT (size) | Используется для хранения чисел размерностью от -2^23 до 2^23-1 |
BIGINT (size) | Охватывает диапазон целочисленных значений, начиная с -2^63 и заканчивая 2^63-1 |
Дробные типы данных
Тип данных | Описание |
---|---|
FLOAT (size, d) | Позволяет содержать дробные числа указываемой точности d. |
DOUBLE (size, d) | Используется для хранения дробных чисел с двоичной точностью. |
DECIMAL (size, d) | Хранение дробных значений в виде строк. |
Символьный тип данных
Тип данных | Описание |
---|---|
CHAR(size) | Используется для хранения строк. Параметр в скобках позволяет фиксировать длину хранимой строки. Максимальный размер в байтах, который можно задать для строки, – 255. |
VARCHAR (size) | Аналогично предыдущему типу позволяет хранить строки длиной до 255 символов. Однако отличие от CHAR в том, что для хранения значения данного типа выделяется требуемое количество памяти. То есть для строки, состоящей из 5-ти символов, потребуется 6 байт памяти. В первом же случае память для значения будет выделена согласно указанному параметру. |
NCHAR(size) | Строковые данные постоянной длины в Юникоде. n определяет длину строки и должно иметь значение от 1 до 4000. Размер при хранении составляет удвоенное значение size в байтах. Рекомендуется использовать nchar, если размеры элементов данных в столбцах предполагаются сходные. |
NVARCHAR (size| max) | Строковые данные переменной длины в Юникоде. Size определяет длину строки и может иметь значение от 1 до 4000. Значение max указывает, что максимальный размер при хранении составляет 2^31-1 символов (2 ГБ). Рекомендуется использовать nvarchar, если размеры элементов данных в столбцах предполагаются различные. |
TEXT | Данные переменной длины не в Юникоде в кодовой странице сервера и с максимальной длиной строки 2^31-1 (2 147 483 647). |
NTEXT | Данные переменной длины в кодировке Юникод с максимальной длиной строки 2^30 - 1 (1 073 741 823) байт. |
Денежный тип данных
Тип данных | Описание |
---|---|
MONEY | Данные переменной длины не в Юникоде в кодовой странице сервера и с максимальной длиной строки 2^31-1 (2 147 483 647). |
SMALL-MONEY | Представляет такие же значения, что и тип MONEY, но длиной в 4 байта. |
Временные типы(дата/время)
Тип данных | Описание |
---|---|
DATE | Главное предназначение - хранение даты в формате ГОД-МЕСЯЦ-ДЕНЬ (“ГГГГ-MM-ДД” или "уууу-mm-dd" ). |
TIME | Позволяет заносить в ячейку таблицы временные значения. Все значения задаются форматом «hh:mm:ss». |
DATETIME | Объединяет функции предыдущих двух типов. Формат хранения представлен следующим образом: «уууу-mm-dd hh:mm:ss». |
TIMESTAMP | Сохраняет дату и время, исчисляемое количеством секунд, прошедших начиная с полуночи 1.01.1970 года и до заданного значения. |
Примеры использования типов данных
Рассмотрим на примере, как использовать типы данных в SQL.
1 2 3 4 5 6 |
CREATE TABLE Checks( id INT NOT NULL, Name VARCHAR (50) NOT NULL, DataToDay DATE NOT NULL, Cost FLOAT NOT NULL ); |
Создадим таблицу Чеки, в которой будет хранится основная информация о покупке.
Первая строка нас пока не интересует(она будет разобрана в другом уроке: «SQL: Create Table»).
id — является счётчиком(она хранит в себе индивидуальный номер чека), следовательно принадлежит к целочисленному типу данных, поэтому делаем её INT или же INTEGER. NOT NULL — говорит о том, что переменная не может быть пустой.
В Name — будем хранить название товара. Так как столбец будет хранить символы используем VARCHAR. После указания типа выделяем память, под название( в нашем случаи это (50)).
Следующие столбцы таблицы создаются по аналогии.