Tipos de dados do SQL Server: Varchar, numérico, data e hora (exemplos T-SQL)

Índice:

Anonim

O que é tipo de dados?

Um tipo de dados é definido como o tipo de dados que qualquer coluna ou variável pode armazenar no MS SQL Server.

Ao criar qualquer tabela ou variável, além de especificar o nome, você também define o tipo de dados que armazenará.

Como usar o tipo de dados MS SQL

  • Você precisa definir com antecedência o tipo de dados que uma coluna ou variável pode armazenar. A determinação do tipo de dados também restringe o usuário de inserir quaisquer dados inesperados ou inválidos.
  • Você pode fazer uso eficiente da memória atribuindo um tipo de dados apropriado à variável ou coluna que alocará apenas a quantidade necessária de memória do sistema para os dados da respectiva coluna.
  • O MS SQL oferece uma ampla categoria de tipos de dados de acordo com as necessidades do usuário. Como data, imagens binárias, etc.

Neste tutorial, você aprenderá:

  • O que é tipo de dados?
    • Como usar o tipo de dados MS SQL
  • Por que usar DataTypes?
    • Numérico Exato
    • Numérico Aproximado
    • Data e hora
    • Strings de personagem
    • Strings de caracteres Unicode
    • String Binária
    • Outros tipos de dados

Por que usar DataTypes?

Vamos dar uma amostra da página de inscrição simples do aplicativo do site. Três campos de entrada são Nome, Sobrenome e Número de contato.

Aqui, devemos observar que em tempo real:

  • "Nome / Sobrenome" sempre será alfabético .
  • "Contato" sempre será numérico .

  • A partir da imagem acima, vale a pena definir "Nome / Sobrenome" como um caractere e " Contato" como um inteiro .

É evidente que em qualquer aplicação, todos os campos possuem um ou outro tipo de dado. Por exemplo, numérico, alfabético, data e muito mais.

Além disso, observe que tipos de dados diferentes têm requisitos de memória diferentes. Portanto, faz mais sentido definir a coluna ou variável com o tipo de dados que ela conterá para o uso eficiente da memória.

Tipo de dados disponível em MS SQL

O servidor MS SQL suporta as seguintes categorias de tipo de dados:

  • Numérico exato
  • Aproximado numérico
  • Data e hora
  • Cadeias de caracteres
  • Strings de caracteres Unicode
  • Strings binárias
  • Outros tipos de dados
Tipos de dados MSQL

Numérico Exato

Numérico exato tem nove tipos de subtipos de dados. Tipos de dados numéricos exatos

Tipo de dados Descrição Limite inferior Limite superior Memória
bigint 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.767) 2 15 (-32.768) 2 bytes
tinyint Ele armazena números inteiros no intervalo fornecido 0 255 1 byte
mordeu Pode ter 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 381−1 5 a 17 bytes
numérico Usado para escala e números de precisão fixa -10 38 + 1 10 381−1 5 a 17 bytes
dinheiro Dados monetários usados -922.337, 203, 685.477.5808 +922.337, 203, 685.477.5807 8 bytes
dinheirinho Dados monetários usados -214.478,3648 +214.478.3647 4 bytes

Exemplos:

Consulta:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Produto: 2

Sintaxe: Decimal (P, S)

Aqui,

  • P é precisão
  • S é escala

Consulta:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal

Produto: 2,31

Numérico Aproximado

A categoria numérica aproximada inclui ponto flutuante e valores reais. Eles são usados ​​principalmente em cálculos científicos. Tipo de dados numéricos aproximados

Tipo de dados Descrição Limite inferior Limite superior Memória Precisão
float (n) Usado para um número de precisão flutuante -1,79E + 308 1,79E + 308 Depende do valor de n 7 dígitos
real Usado para um número de precisão flutuante -3,40E + 38 3,40E + 38 4 bytes 15 dígitos
Syntax: FLOAT [(n)] 

Aqui, n é o número de bits usados ​​para armazenar a mantissa do número flutuante em notação científica. Por padrão, o valor de n é 53.

Quando o usuário define 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.1234PRINT @Datatype_Float

Saída: 22.1234

Data e hora

Ele armazena dados do tipo Data e hora. Tipo de dados de data e hora

Tipo de dados Descrição Tamanho de armazenamento Precisão Faixa Inferior Faixa Superior
Data hora 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 0,000, 0,003, 0,007 1753-01-01 9999-12-31
smalldatetime Usado para especificar uma data e hora de 1º de janeiro de 0001 a 31 de dezembro de 9999. Tem uma precisão de 100 nanossegundos 4 bytes, fixo 1 minuto 01-01-1900 06/06/2079
encontro Usado para armazenar apenas a data de 1º de janeiro de 0001 a 31 de dezembro de 9999 3 bytes, fixo 1 dia 0001-01-01 9999-12-31
Tempo Usado para armazenar apenas valores de tempo com uma precisão de 100 nanossegundos. 5 bytes 100 nanossegundos 00: 00: 00.0000000 23: 59: 59,9999999
datetimeoffset Semelhante ao datatime, mas tem uma diferença de fuso horário 10 bytes 100 nanossegundos 0001-01-01 9999-12-31
datetime2 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

Resultado: '2030-01-01'

Strings de personagem

Esta categoria está relacionada a um tipo de personagem. Ele permite ao usuário definir o tipo de dado do caractere, que pode ser de comprimento fixo e variável. Ele possui quatro tipos de tipos de dados. Tipos de dados de strings de caracteres

Tipo de dados Descrição Limite inferior Limite superior Memória
Caracteres É uma string de caracteres com largura fixa. Ele armazena no máximo 8.000 caracteres. 0 caracteres 8000 caracteres n bytes
varchar Esta é uma string de caracteres com largura variável 0 caracteres 8000 caracteres n bytes + 2 bytes
varchar (max) Esta é uma string 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 Esta é uma string de caracteres com largura variável. Ele armazena no máximo 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

Strings de caracteres Unicode

Esta categoria armazena toda a gama de caracteres Unicode que usam a codificação de caracteres UTF-16. Tipos de dados de string de caracteres Unicode

Tipo de dados Descrição Limite inferior Limite superior Memória
nchar É uma string Unicode de largura fixa 0 caracteres 4000 caracteres 2 vezes n bytes
nvarchar É uma string Unicode de largura variável 0 caracteres 4000 caracteres 2 vezes n bytes + 2 bytes
ntext É uma string Unicode de largura variável 0 caracteres 1.073.741.823 char 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

String Binária

Esta categoria contém uma string binária de comprimento fixo e variável. Tipos de dados de string binárias

Tipo de dados Descrição Limite inferior Limite superior Memória
binário É uma string binária de largura fixa. Ele armazena no máximo 8.000 bytes. 0 bytes 8000 bytes n bytes
varbinary Esta é uma string binária de largura variável. Ele armazena no máximo 8.000 bytes 0 bytes 8000 bytes O comprimento real dos dados inseridos + 2 bytes
imagem Esta é uma string binária de largura variável. Ele armazena no máximo 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

Estes são outros tipos de dados diferentes com a descrição abaixo-

Tipo de dados Descrição
Cursor Sua saída é uma coluna de sp_cursor_list e sp_describe_cursor. Ele retorna o nome da variável do cursor.
Versão de linha A versão carimba as linhas da tabela.
Hierárquico Este tipo de dados representa uma posição na hierarquia
Identificador único Conversão de uma expressão de personagem.
Sql_variant Ele armazena valores de tipos de dados suportados pelo servidor SQL.
XML Ele armazena dados XML em uma coluna.
Tipo de geometria espacial Ele representa dados em um sistema de coordenadas simples.
Tipo de geografia espacial Ele representa dados no sistema de coordenadas de terra redonda.
tabela Ele armazena um conjunto de resultados para processamento posterior.

Fatos interessantes!

  • O tipo de dados CHAR é mais rápido do que VARCHAR durante a recuperação de dados.

Resumo:

  • Cada coluna nas tabelas é definida com seu tipo de dados durante a criação da tabela.
  • Existem seis categorias principais e uma outra categoria diversa. Outros diversos têm nove subcategorias de tipos de dados disponíveis.