В SQL каждый столбец (в таблице) имеет свой тип данных, который ограничивает то, что может храниться в столбце. Например, если тип данных столбца — INT
, то в этом столбце могут храниться только целочисленные значения, такие как 0
, 1
, -1
и т.д.
Различные СУБД поддерживают различные типы данных. Рассмотрим одни из наиболее часто используемых типов данных в SQL Server, MySQL, PostgreSQL и Oracle.
Типы данных в SQL Server
Целочисленные типы данных
Тип данных | Описание |
BIT | Может содержать один бит (0 или 1) или NULL. |
TINYINT | Может содержать числа в диапазоне от 0 до 255. |
SMALLINT | Может содержать числа в диапазоне от -32,768 до 32,767. |
INT | Может содержать числа в диапазоне от -2,147,483,648 до 2,147,483,647. |
BIGINT | Может содержать числа в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807. |
Строковые типы данных
Тип данных | Описание |
CHAR(n) | Может содержать символы фиксированной длины (n — это фиксированная длина, максимум 8000 символов). |
VARCHAR(n) | Может содержать символы n длины (n — это переменная длины, максимум 8000 символов). |
TEXT | Может содержать символы размером до 2 ГБ. |
IMAGE | Может содержать двоичную строку размером до 2 ГБ. |
Типы данных Даты и Времени
Тип данных | Описание |
DATETIME | Может содержать дату и время от 1 января 1753 года до 31 декабря 9999 года. |
DATETIME2 | Может содержать дату и время от 1 января 0001 года до 31 декабря 9999 года. |
DATE | Может содержать только дату от 1 января 0001 года до 31 декабря 9999 года. |
TIME | Может содержать только время. |
Примечание: SQL Server поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию SQL Server.
Типы данных в MySQL
Целочисленные типы данных
Тип данных | Описание |
BIT(n) | Может содержать n-битные значения (n может варьироваться от 1 до 64). |
TINYINT | Может содержать числа в диапазоне от -128 до 127. |
SMALLINT | Может содержать числа в диапазоне от -32,768 до 32,767. |
MEDIUMINT | Может содержать числа в диапазоне от -8,388,608 до 8,388,607. |
INT | Может содержать числа в диапазоне от -2,147,483,648 до 2,147,483,647. |
BIGINT | Может содержать числа в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807. |
Строковые типы данных
Тип данных | Описание |
CHAR(n) | Может содержать символы фиксированной длины (n — это фиксированная длина, максимум 8000 символов). |
VARCHAR(n) | Может содержать символы n длины (n — это переменная длины, максимум 8000 символов). |
BINARY(n) | Может содержать двоичные строки фиксированной длины (n — это фиксированная длина). |
VARBINARY(n) | Может содержать двоичные строки заданной длины (n — это переменная длины). |
TINYTEXT | Может содержать до 255 символов. |
TEXT(n) | Может содержать символы размером до 65,535 байт. |
MEDIUMTEXT | Может содержать до 16,777,215 символов. |
LONGTEXT | Может содержать до 4,294,967,295 символов. |
BLOB(n) | Может содержать большие двоичные объекты размером до 65,535 байт. |
MEDIUMBLOB | Может содержать большие двоичные объекты размером до 16,777,215 байт. |
LONGBLOB | Может содержать большие двоичные объекты размером до 4,294,967,295 байт. |
Типы данных Даты и Времени
Тип данных | Описание |
DATE | Может содержать дату в формате ГГГГ-ММ-ДД и в диапазоне от 1000-01-01 до 9999-12-31. |
DATETIME | Может содержать дату и время в формате ГГГГ-ММ-ДД чч:мм:сс. |
TIME | Может содержать только время в формате чч:мм:сс и в диапазоне от -838:59:59 до 838:59:59. |
YEAR | Может содержать год в 4-значном формате и в диапазоне от 1901 до 2155. |
TIMESTAMP | Может содержать временную метку от текущего часового пояса до UTC. |
Примечание: MySQL поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию MySQL.
Типы данных в PostgreSQL
Целочисленные типы данных
Тип данных | Описание |
SMALLINT | Может содержать числа в диапазоне от -32,768 до 32,767. |
INTEGER | Может содержать числа в диапазоне от -2,147,483,648 до 2,147,483,647. |
BIGINT | Может содержать числа в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807. |
DECIMAL | Может содержать числа с 131072 цифр до десятичной точки и 16383 цифр после десятичной точки. |
SMALLSERIAL | Может содержать автоматически увеличивающиеся числа от 1 до 32767. |
SERIAL | Может содержать автоматически увеличивающиеся числа от 1 до 2147483647. |
BIGSERIAL | Может содержать автоматически увеличивающиеся числа от 1 до 9223372036854775807. |
Строковые типы данных
Тип данных | Описание |
CHAR(n) | Может содержать символы фиксированной длины (n — это фиксированная длина). |
VARCHAR(n) | Может содержать символы n длины (n — это переменная длины). |
TEXT | Может содержать символы без ограничений. |
Типы данных Даты и Времени
Тип данных | Описание |
TIMESTAMP | Может содержать дату и время. |
DATE | Может содержать только дату. |
TIME | Может содержать только время. |
Примечание: PostgreSQL поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию PostgreSQL.
Типы данных в Oracle
Целочисленные типы данных
Тип данных | Описание |
NUMBER | Может содержать числа. |
Строковые типы данных
Тип данных | Описание |
CHAR(n) | Может содержать символы фиксированной длины, размером до 2000 байт (n — это фиксированная длина). |
VARCHAR(n) | Может содержать символы n длины, размером до 4000 байт (n — это переменная длины). |
LONG | Может содержать символы размером до 2 ГБ. |
Типы данных Даты и Времени
Тип данных | Описание |
TIMESTAMP | Может содержать дату и время. |
DATE | Может содержать только дату от 1 января 4712 до н.э. до 31 декабря 9999 н.э. |
TIME | Может содержать только время. |
Примечание: Oracle поддерживает множество других типов данных. Чтобы узнать больше, читайте документацию Oracle.