top of page
  • Foto do escritorGabriel Quintella

Tipos de Dados ou Data types

Atualizado: 12 de abr. de 2021


Não somente no SQL Server, mais como em todos os bancos de dados, os tipos de dados ou data types, são fundamentais quando estamos falando de como vamos armazenar pois ele é um atributo que especifica o tipo de dados que esses objetos podem armazenar, podendo ser um número inteiro, sequência de caracteres, monetário, data e hora e assim por diante. O SQL Server fornece uma lista de tipos de dados que definem todos os tipos de dados que você pode usar, por exemplo, definir uma coluna ou declarar uma variável.



Abaixo uma imagem que exemplifica todos os possíveis tipos de dados ou data types existentes dentro do Microsoft SQL Server.



Tipos de dados numéricos exatos


Os tipos de dados numéricos exatos armazenam números exatos, como inteiro, decimal ou valor monetário.


· O bit armazena um dos três valores 0, 1 e NULL

· Os tipos de dados int, bigint, smallint e tinyint armazenam dados inteiros.

· Os tipos de dados decimais e numéricos armazenam números que possuem precisão e escala fixas. Observe que decimal e numeric são sinônimos.

· Os tipos de dados money e smallmoney armazenam valores de moeda.


A tabela a seguir ilustra as características dos tipos de dados numéricos exatos:



Tipos de dados numéricos aproximados


O tipo de dados numéricos aproximados armazena dados numéricos de ponto flutuante. Eles são frequentemente usados ​​em cálculos científicos.




Tipos de dados de data e hora


Fica até redundante essa explicação, os tipos de dados de data e hora armazenam dados e dados de hora e o deslocamento de data e hora. Vamos tentar melhorar!




Se você desenvolver um novo aplicativo, deverá usar os tipos de dados time, date, datetime2 e datetimeoffset. Porque esses tipos se alinham com o padrão SQL e são mais portáteis. Além disso, o time, datetime2 e datetimeoffset têm mais precisão de segundos e datetimeoffset suporta fuso horário.


Tipos de dados de strings de caracteres


Os tipos de dados de strings de caracteres permitem que você armazene dados de comprimento fixo (char) ou de comprimento variável (varchar). O tipo de dados de texto pode armazenar dados não Unicode na página de código do servidor.



Tipos de dados de string de caracteres Unicode


Os tipos de dados da cadeia de caracteres Unicode armazenam dados de caracteres Unicode de comprimento fixo (nchar) ou de comprimento variável (nvarchar).



Após um bate papo com meu amigo Alexandre Neves (https://www.linkedin.com/in/alexandre-neves-b8704a140/) profissional muito experiente na área de banco de dados sobre esse post, identificamos que nesse uma observação muito importante deveria ser colocado.


Vamos explicar! Quando falamos de tipos de dados string, seja ele Unicode ou não, dois comportamentos podem ser notados.


Observando o quadro acima, esses tipos de dados possuem um tamanho máximo pré definido. Para ficar melhor a explicação, vamos pegar como exemplo o datatype "nvarchar". Conforme documentação oficial, o seu tamanho máximo é de 4000 caracteres, porém podemos defini-lo também como sendo "max".


Até ai tudo bem, mais qual é a diferença entre nvarchar(4000) e nvarchar(max)? Todos os dois definem que o total de caracteres armazenados será de 4000?


Vamos responder as duas perguntas de uma única vez!


Quando você define uma coluna como sendo VARCHAR(4000) terá 4000 bytes alocados para a coluna e se você usar o tipo NVARCHAR(4000) terá 8000 bytes alocados, isso ocorre porque o tipo de dados NVARCHAR armazenam os dados em Unicode e utilizam 2 bytes, enquanto o VARCHAR apenas 1 byte.


Já quando utilizamos de MAX indica que esses tipos de dados podem armazenar um valor superior aos seus respectivos limites: 8000 e 4000 bytes.



1. - VARCHAR(MAX) - indica que o tamanho máximo de armazenamento para o tipo de dados VARCHAR é 2^31 bytes (2 GB);
2. - NVARCHAR(MAX) - indica que o tamanho máximo de armazenamento para NVARCHAR o tipo de dados é 2^31 bytes (2 GB);
3. - VARBINARY(MAX) - indica que o tamanho máximo de armazenamento para o tipo de dados VARBINARY é 2^31 bytes (2 GB).

Quando definimos que uma coluna será do tipo nvarchar(4000), ela somente aceitará 4000 caracteres e quando ela for definida como nvarchar(max), a sua capacidade de armazenamento é de 2 Gigas de dados.


Vou deixar um exemplo aqui embaixo para vocês testarem.



No exemplo abaixo, adiciono um caractere a mais para que vocês vejam o que acontece quando inserimos um valor acima do permitido.




Tipos de dados de string binária


Os tipos de dados binários armazenam dados binários de comprimento fixo e variável.




E outros tipos de dados


Informação útil!


Antes de finalizara, preciso trazer essa informação útil. Sempre que ocorre uma alteração de versão do Microsoft SQL Server, alguma coisa pode ser descontinuada. Seja ela uma função, um comando, uma funcionalidade entre outros.


Dessa vez trago para vocês uma informação referente aos datatypes NTEXT, TEXT e IMAGE.


Conforme observação do meu amigo Alexandre Neves (https://www.linkedin.com/in/alexandre-neves-b8704a140/), existe uma observação na documentação da Microsoft que eles serão descontinuados. Ainda não parei para verificar em qual versão, mais vou fazer essa pesquisa. Assim que tiver essa informação volto aqui para atualizar.











O que falamos até aqui?


Neste tópico, abordamos os tipo de dados que cada coluna, variável ou parâmetro pode assumir dentro de um banco de dados.


Este assunto é um dos mais importantes, pois depois de definir o que você pretende armazenar, você torna-se capaz de dimensionar o crescimento de seu banco quando cruzamos essa informação com a volumetria mensal de dados.


O que esperar do próximo tópico?


Daqui pra frente, iremos abordar diferentes formas de manipulação de dados. Vamos liberar então os spoilers da seção!


  1. - Como realizar a consulta de dados (Comando SELECT);

  2. - Como inserir/armazenar dados (Comando INSERT);

  3. - Como atualizar os dados (Comando UPDATE);

  4. - E como até elimina-los (Comando DELETE);




Vamos iniciar o próximo post falando de um recurso chamado de Tabelas Temporárias ou Temporary Tables não deixando de falar a diferença com as tabelas fixas, vamos fazer também uma abordagem no comando Truncate Table muito útil, explicando vantagens e desvantagens e a diferença/semelhança entre os comandos TRUNCATE e DELETE.


Mais antes de iniciar, vou deixar um breve exercício para utilizarmos no próximo post para colocar em prática tudo que falamos até o momento. Não deixem de fazer!


Desafio 1 - Dna Clotilde trabalha como revendedora de uma famosa empresa de cosméticos a muitos anos. Você acredita que até hoje ela mantém todos os seus clientes anotados no seu amigo de longa data! O seu caderninho de anotações manter sempre próximo, dentro de sua bolsa e para onde ela vai, ele está lá. Sempre que rola promoções, entregas e novos pedidos, essa é a fonte de dados fundamental para o seu dia-a-dia. Pedrinho, filho mais velho de Dna Clotilde está cursando o 5º período da faculdade de Ciências da Computação e nesse semestre está estudando a disciplina de banco de dados. Durante as aulas ele aprendeu como realizar a instalação de um banco de dados, conceitos básicos e na última aula aprendeu sobre armazenamento de dados em tabelas. Durante a aula o professor pediu para eles pensarem em um cenário onde seria fácil fazer essa aplicação. E não teve como não pensar no negócio da sua mãe.


Quando chegou em casa, sentou para conversar com sua mãe. Incorporou o analista de negócio e após uma breve conversa, ele entendeu que para atender a necessidade dela, precisaria criar uma tabela com os seguintes atributos:


- Uma coluna para armazenar o nome dos Clientes e todo cliente ela dava um nome;

- Uma coluna para armazenar o endereço;

- Uma coluna para armazenar o telefone

- E ele pensou em criar uma coluna também para ser o Código dos Clientes


Bem pessoal como que ficaria a primeira tabela do banco de dados criado pelo Pedrinho para suportar ou substituir a caderneta de Dna Clotilde?


No próximo post trago a minha tabela pronta!



Ah não esqueça de inserir pelo menos uns 5 cliente! Lembre-se daquele spoiler!





68 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page