Tipos de dados do SQL Server com exemplos
⚡ Resumo Inteligente
Os tipos de dados do SQL Server definem o tipo de valor que uma coluna ou variável pode armazenar, como inteiro, decimal, caractere, data ou binário. Escolher o tipo correto garante dados válidos e utiliza a memória de forma eficiente.

O que é tipo de dados?
Um tipo de dados em MS SQL Server é definido como o tipo de dados que qualquer coluna ou variável pode armazenar. É o tipo de dados que um objeto contém, como inteiro, caractere ou string. Ao criar qualquer mesa or variávelAlém de especificar o nome, você também define o tipo de dados que serão armazenados.
Como usar o tipo de dados MS SQL
É necessário definir, antecipadamente, o tipo de dados que uma coluna ou variável pode armazenar. Determinar o tipo de dados também impede que o usuário insira dados inesperados ou inválidos.
Você pode usar a memória de forma eficiente atribuindo um tipo de dados apropriado a uma variável ou coluna, o que aloca apenas a quantidade necessária de memória do sistema para os dados dessa coluna.
O MS SQL oferece uma ampla gama de tipos de dados básicos em SQL Para atender às necessidades do usuário, como data, binário, imagens e muito mais.
Por que usar DataTypes?
Considere o exemplo de uma página de cadastro simples para um aplicativo de website. Os três campos de entrada são Nome, Sobrenome e Número de contato.
Aqui, cabe observar que, em cenários reais:
- “Nome/Sobrenome” será sempre em ordem alfabética.
- O campo “Contato” será sempre numérico.
O exemplo abaixo ilustra esses campos em um formulário de inscrição.
Pela imagem acima, faz sentido definir "Nome/Sobrenome" como um caractere e "Contato" como um número inteiro.
É evidente que em qualquer aplicação, todos os campos contêm um ou outro tipo de dado, por exemplo, numérico, alfabético, data e muitos outros.
Observe também que diferentes tipos de dados têm diferentes requisitos de memória. Portanto, para um uso eficiente da memória, faz mais sentido definir a coluna ou variável com o tipo de dados que ela armazenará.
Tipo de dados disponível no MS SQL Server
Segue a lista de tipos de dados do MS SQL Server. O MS SQL Server suporta as seguintes categorias de tipos de dados:
- Numérico exato
- Numérico aproximado
- Data e hora
- Sequências de caracteres
- Sequências de caracteres Unicode
- Sequências binárias
- Outros tipos de dados
O diagrama abaixo agrupa os tipos de dados do MS SQL Server nessas categorias.
Tipos de dados numéricos exatos em SQL
O tipo de dados numérico exato possui nove subtipos no SQL Server. Cada um armazena números inteiros ou de ponto fixo dentro de um intervalo definido.
| Tipo de dados | Descrição | Limite inferior | Limite superior | Memória |
|---|---|---|---|---|
| grande | Ele armazena números inteiros no intervalo fornecido | −2^63 (−9,223,372,036,854,775,808) | 2^63−1 (9,223,372,036,854,775,807) | 8 bytes |
| int | Ele armazena números inteiros no intervalo fornecido | −2^31 (−2,147,483,648) | 2^31−1 (2,147,483,647) | 4 bytes |
| smallint | Ele armazena números inteiros no intervalo fornecido | −2^15 (−32,768) | 2^15−1 (32,767) | 2 bytes |
| minúsculo | Ele armazena números inteiros no intervalo fornecido | 0 | 255 | Byte 1 |
| bocado | Pode assumir valores 0, 1 ou NULL. | 0 | 1 | 1 byte / coluna de 8 bits |
| decimal | Usado para escala e números de precisão fixa | −10^38+1 | 10^38−1 | 5 a 17 bytes |
| numérico | Usado para escala e números de precisão fixa | −10^38+1 | 10^38−1 | 5 a 17 bytes |
| dinheiro | Utilizado para dados monetários | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 | 8 bytes |
| dinheiro pequeno | Utilizado para dados monetários | -214,478.3648 | +214,478.3647 | 4 bytes |
Tipos de dados numéricos exatos no SQL Server com exemplos:
Inquérito:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Saída:
2
Sintaxe:
Decimal (P,S)
Aqui, P representa a precisão e S a escala.
Inquérito:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Saída:
2.31
Tipos de dados numéricos aproximados em SQL
A categoria numérica aproximada do SQL inclui valores de ponto flutuante e valores reais. Esses tipos de dados são usados principalmente em cálculos científicos.
| Tipo de dados | Descrição | Limite inferior | Limite superior | Memória | Precisão |
|---|---|---|---|---|---|
| flutuar (n) | Usado para um número de precisão flutuante | −1.79E+308 | 1.79 308 + | Depende do valor de n | 15 dígitos |
| tua escola | Usado para um número de precisão flutuante | −3.40E+38 | 3.40 38 + | 4 bytes | 7 dígitos |
O tipo float utiliza a seguinte sintaxe:
Syntax: FLOAT [(n)]
Aqui, n é o número de bits usados para armazenar a mantissa do número de ponto flutuante em notação científica. Por padrão, o valor de n é 53.
Ao definir um tipo de dados como float, n deve ser um valor entre 1 e 53. O SQL Server trata n como um de dois valores possíveis: se 1 <= n <= 24, n é tratado como 24; se 25 <= n <= 53, n é tratado como 53.
Consulta de exemplo:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Saída:
22.1234
Tipos de dados de data e hora em SQL
Esta categoria armazena dados do tipo data e hora.
| Tipo de dados | Descrição | Tamanho de armazenamento | Precisão | Faixa inferior | Faixa superior |
|---|---|---|---|---|---|
| DateTime | Usado para especificar uma data e hora de 1º de janeiro de 1753 a 31 de dezembro de 9999. Tem uma precisão de 3.33 milissegundos. | 8 bytes | Arredondado para incrementos de 000, 003, 007 | 1753-01-01 | 9999-12-31 |
| data pequena | Utilizado para especificar uma data e hora no período de 1 de janeiro de 1900 a 6 de junho de 2079. Possui uma precisão de 1 minuto. | 4 bytes, fixo | minutos 1 | 1900-01-01 | 2079-06-06 |
| dados | Utilizado para armazenar apenas datas entre 1 de janeiro de 0001 e 31 de dezembro de 9999. | 3 bytes, fixo | Dia 1 | 0001-01-01 | 9999-12-31 |
| tempo | Utilizado para armazenar apenas valores de tempo com precisão de 100 nanossegundos. | 5 bytes | 100 nanossegundos | 00:00:00.0000000 | 23:59:59.9999999 |
| deslocamento de data e hora | Semelhante a datetime, mas com um deslocamento de fuso horário. | 10 bytes | 100 nanossegundos | 0001-01-01 | 9999-12-31 |
| datahora2 | Usado para especificar uma data e hora de 1º de janeiro de 0001 a 31 de dezembro de 9999 | 6 bytes | 100 nanossegundos | 0001-01-01 | 9999-12-31 |
Consulta de exemplo:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Saída:
'2030-01-01'
Tipos de dados de cadeias de caracteres em SQL
Esta categoria relaciona-se com tipos de caracteres. Permite definir dados de caracteres de comprimento fixo e variável. Possui quatro tipos de dados. Abaixo estão os tipos de dados de cadeia de caracteres com exemplos.
| Tipo de dados | Descrição | Limite inferior | Limite superior | Memória |
|---|---|---|---|---|
| carbonizar | É uma sequência de caracteres com largura fixa. Ele armazena no máximo 8,000 caracteres. | 0 caracteres | 8000 caracteres | n bytes |
| varchar | Esta é uma sequência de caracteres com largura variável. | 0 caracteres | 8000 caracteres | n bytes + 2 bytes |
| varchar (máx.) | Esta é uma sequência de caracteres com largura variável. Ele armazena no máximo 1,073,741,824 caracteres. | 0 caracteres | 2 ^ 31 caracteres | n bytes + 2 bytes |
| texto | Trata-se de uma cadeia de caracteres com largura variável. Ela armazena um máximo de 2 GB de dados de texto. | 0 caracteres | 2,147,483,647 caracteres | n bytes + 4 bytes |
Consulta de exemplo:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Saída:
Este é o tipo de dados de caractere
Tipos de dados de cadeias de caracteres Unicode em SQL
Esta categoria armazena toda a gama de caracteres Unicode, que utilizam a codificação de caracteres UTF-16.
| Tipo de dados | Descrição | Limite inferior | Limite superior | Memória |
|---|---|---|---|---|
| nchar | É uma sequência Unicode de largura fixa. | 0 caracteres | 4000 caracteres | 2 vezes n bytes |
| nvarchar | É uma sequência Unicode de largura variável. | 0 caracteres | 4000 caracteres | 2 vezes n bytes + 2 bytes |
| ntext | É uma sequência Unicode de largura variável. | 0 caracteres | 1,073,741,823 caracteres | 2 vezes o comprimento da corda |
Consulta de exemplo:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Saída:
Este é o tipo de dados nCharacter
Tipos de dados de string binária em SQL
Esta categoria contém cadeias binárias de comprimento fixo e variável.
| Tipo de dados | Descrição | Limite inferior | Limite superior | Memória |
|---|---|---|---|---|
| binário | É uma cadeia binária de largura fixa. Ela armazena um máximo de 8,000 bytes. | 0 bytes | 8000 bytes | n bytes |
| varbinário | Trata-se de uma sequência binária de largura variável. Ela armazena um máximo de 8,000 bytes. | 0 bytes | 8000 bytes | O comprimento real dos dados inseridos + 2 bytes |
| imagem | Trata-se de uma sequência binária de largura variável. Ela armazena um máximo de 2 GB. | 0 bytes | 2,147,483,647 bytes | - |
Consulta de exemplo:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Saída:
0x000C
Outros tipos de dados em SQL
Estes são os outros tipos de dados do SQL Server, com suas respectivas descrições abaixo:
| Tipo de dados | Descrição |
|---|---|
| Cursor | Sua saída é uma coluna contendo sp_cursor_list e sp_describe_cursor. Ela retorna o nome da variável do cursor. |
| Versão em linha | Ele registra a versão das linhas da tabela. |
| Hierarquia | Este tipo de dado representa uma posição em uma hierarquia. |
| Identificador único | Armazena um GUID, geralmente convertido a partir de uma expressão de caracteres. |
| Sql_variant | Ele armazena valores de tipos de dados suportados pelo SQL Server. |
| XML | Ele armazena dados XML em uma coluna. |
| Tipo de geometria espacial | Ele representa dados em um sistema de coordenadas planas. |
| Tipo de Geografia Espacial | Ele representa dados no sistema de coordenadas terrestres redondos. |
| mesa | Ele armazena um conjunto de resultados para processamento posterior. |
Fatos interessantes!
- O tipo de dados CHAR é mais rápido que o tipo de dados VARCHAR na recuperação de dados, porque sua largura fixa evita problemas de comprimento.ping.


