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.

  • 🔢 Numérico exato: bigint, int, smallint, tinyint, bit, decimal, numeric, money e smallmoney armazenam números inteiros e de ponto fixo precisos.
  • 〰️ Numérico aproximado: float e real armazenam valores aproximados de ponto flutuante usados ​​em cálculos científicos.
  • 📅 Data e hora: datetime, smalldatetime, date, time, datetimeoffset e datetime2 armazenam valores temporais.
  • 🔤 Caracteres e Unicode: char, varchar e text armazenam texto; nchar, nvarchar e ntext armazenam texto Unicode.
  • 🖼️ Binário e outros: Os tipos binary, varbinary e image armazenam dados em bytes; cursor, xml e uniqueidentifier atendem a necessidades especiais.
  • 🧠 Escolher WiseLy: A correspondência de cada coluna com o menor tipo adequado melhora a eficiência do armazenamento e a integridade dos dados.

Tipos de dados do SQL Server com exemplos

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.

Exemplo de formulário de inscrição definindo Nome e Sobrenome como caracteres e Contato como um número inteiro

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.

Grupo de diagramasping Os tipos de dados do MS SQL Server são divididos em sete 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.

Perguntas Frequentes

VARCHAR armazena caracteres não Unicode usando um byte cada, enquanto NVARCHAR armazena caracteres Unicode usando dois bytes cada. Escolha NVARCHAR quando uma coluna precisar conter vários idiomas ou símbolos fora de uma única página de código; caso contrário, VARCHAR usa menos espaço de armazenamento.

Use DECIMAL (ou NUMERIC) quando os valores precisarem ser exatos, como em moedas ou medidas, pois armazenam precisão fixa. Use FLOAT para valores científicos aproximados, onde pequenas diferenças de arredondamento são aceitáveis ​​e uma ampla faixa de valores é mais importante do que a exatidão.

Sim. No SQL Server, DECIMAL e NUMERIC são funcionalmente idênticos. Ambos aceitam precisão e escala e armazenam números de ponto fixo exatos, portanto, as duas palavras-chave são intercambiáveis. Você pode usar o nome que sua equipe preferir para facilitar a leitura.

CHAR é um tipo de comprimento fixo que preenche valores menores com espaços, de modo que cada valor utilize a largura declarada. VARCHAR é de comprimento variável e armazena apenas os caracteres inseridos mais dois bytes. Use CHAR para códigos uniformes e VARCHAR para textos de comprimento variável.

Sim. Travas deslizantes portáteis ALTERAR A TABELA O comando `table_name ALTER COLUMN column_name new_type` altera o tipo de dados de uma coluna. A alteração só terá sucesso se os valores existentes forem convertidos corretamente para o novo tipo; caso contrário, falhará. Portanto, teste as conversões e faça backup dos dados primeiro.

O tipo de dados VARCHAR(n) padrão armazena até 8,000 caracteres. O tipo VARCHAR(max) armazena até cerca de 2 GB (2^31-1 bytes) e destina-se a textos extensos que excedam 8,000 caracteres. Utilize VARCHAR(max) somente quando os valores puderem realmente atingir esse tamanho.

Sim. Travas deslizantes portáteis Copiloto do GitHub Pode sugerir tipos de dados de coluna e gerar instruções DECLARE e CREATE TABLE a partir de prompts em linguagem natural. Sempre confirme os requisitos de precisão, escala, comprimento e Unicode em relação aos seus dados antes de aplicar as sugestões em produção.

Ferramentas de IA e aprendizado de máquina analisam dados de amostra para recomendar tipos, precisão e comprimentos adequados, sinalizar colunas muito grandes que desperdiçam espaço de armazenamento e detectar incompatibilidades durante migrações. Elas aceleram o projeto do esquema enquanto o desenvolvedor confirma as escolhas finais.

Resuma esta postagem com: