Introdução aos tipos de dados SQL

Os tipos de dados no SQL, como qualquer outra linguagem de programação, definem que tipo de dados a coluna ou a variável podem conter. O tipo de dados pode ser qualquer coisa, de um caractere, a uma série de caracteres, a números, até a data e a hora. Um tipo de dados é um conceito muito crucial de programação fortemente acoplada. Ajuda a resolver a maioria dos erros de compatibilidade de tipos durante a compilação do programa.

Classificamos amplamente os tipos de dados SQL e, em seguida, exploramos vários tipos e exemplos nessas categorias.

Nota - Nem todos os sistemas de gerenciamento de banco de dados suportam todos os tipos de dados. Por exemplo, o Oracle não suporta DateTime. Essas especificações são fornecidas juntamente com a descrição do tipo de dados no artigo. É recomendável ter isso em mente ao projetar o banco de dados. Da mesma forma, existem muitos outros tipos de dados específicos para qualquer sistema de gerenciamento de banco de dados específico. Por exemplo, o MS SQL tem um tipo de dados monetários. Esses tipos não são genéricos e estão além do escopo deste artigo.

Tipos de dados SQL

1. Binário

O tipo de dados binários contém uma sequência de cadeias de bytes binários. Diferentemente das seqüências de caracteres comuns, as seqüências binárias são usadas para armazenar dados não convencionais, como imagens.

Binário (tamanho): armazena seqüências de bytes binários de comprimento de coluna especificado pelo parâmetro size. O tamanho da coluna é fixo. Se o tamanho for definido como 10 bytes e os dados armazenados forem 5 bytes, os 5 bytes restantes ainda serão ocupados na memória pela coluna. Esses bytes restantes são preenchidos com nulo à direita pela maioria dos analisadores SQL. O tamanho máximo possível é 8000 bytes.

Varbinary (size): armazena strings de bytes binários com o comprimento da coluna especificado pelo parâmetro size. O tamanho da coluna não é fixo. Se o tamanho for definido como 10 bytes e os dados armazenados forem 5 bytes, a coluna ocupará apenas 5 bytes na memória. O tamanho máximo possível é 8000 bytes.

Varbinary (max): especificar a palavra-chave max no parâmetro size aumenta o tamanho máximo possível para 2 GB e aloca tamanho variável para colunas com base nos dados armazenados. Este tipo de dados não é suportado pelo MySQL.

Exemplo:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

O erro ocorre porque definimos o tamanho das colunas como apenas 5 bytes.

2. Personagem / String

Esses tipos de dados armazenam um único caractere ou uma série de caracteres que formam uma sequência. Isso inclui caracteres, números e caracteres especiais. A natureza do (s) caractere (s) é, no entanto, limitada apenas a caracteres não Unicode.

Caractere (tamanho): armazena cadeias de caracteres de comprimento fixo do comprimento especificado pelo parâmetro size. O dimensionamento da coluna funciona de maneira semelhante ao tipo de dados BINARY. O tamanho padrão é 1 caractere. O máximo é 255 na maioria dos sistemas de gerenciamento de banco de dados.

Varchar (tamanho): armazena cadeias de caracteres de tamanho variável. No entanto, o comprimento especificado pelo parâmetro size define o comprimento máximo da coluna. O comprimento máximo possível é de 65535 caracteres.

Varchar (max): especificar a palavra-chave max no parâmetro size aumenta o tamanho máximo possível para 2 GB e aloca tamanho variável para colunas com base nos dados armazenados. Este tipo de dados não é suportado pelo MySQL.

Texto: O MySQL suporta o tipo de dados de texto em vez de varchar (max). O texto também aumenta o tamanho máximo possível para 2 GB.

Exemplo:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Caractere / String Unicode

Esses tipos de dados armazenam uma única ou uma sequência de caracteres Unicode.

Nchar (tamanho): é semelhante ao tipo de dados char e também suporta caracteres Unicode. No entanto, o limite máximo é reduzido para 4000 bytes.

Nvarchar (tamanho): semelhante ao tipo de dados nvarchar e também suporta caracteres Unicode. No entanto, o limite máximo é reduzido para 4000 bytes.

Nvarchar (max): especificar a palavra-chave max no parâmetro size aumenta o tamanho máximo possível para 1 GB e aloca tamanho variável para colunas com base nos dados armazenados. Este tipo de dados não é suportado pelo MySQL.

Ntext: O MySQL suporta o tipo de dados ntext em vez de nvarchar (max). O Ntext também aumenta o tamanho máximo possível para 1 GB.

Exemplo:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. Numérico

Os tipos de dados numéricos suportam números inteiros e reais / fracionários / decimais.

Bit / Bool / Boolean: Esses tipos de dados armazenam apenas dois valores - 0 e 1. 0 indica falso enquanto 1 indica verdadeiro. Um pouco é suportado pela maioria dos bancos de dados. Alguns bancos de dados avançados também suportam booleano e booleano.

INT: Armazena números inteiros positivos e negativos com tamanho de até 4 bytes. Isso significa que o valor deve estar no intervalo (-2147483648, 2147483647). A especificação da palavra-chave não assinada restringe a coluna a armazenar apenas valores positivos no intervalo (0, 4294967295).

TINYINT: Armazena números inteiros positivos e negativos com tamanho de até 1 Byte. Isso significa que o valor deve estar no intervalo (-128, 127). A especificação da palavra-chave não assinada restringe a coluna a armazenar apenas valores positivos no intervalo (0, 255).

Smallint: armazena números inteiros positivos e negativos com tamanho de até 2 bytes. Isso significa que o valor deve estar no intervalo (-32768, 32767). A especificação da palavra-chave não assinada restringe a coluna a armazenar apenas valores positivos no intervalo (0, 65535).

Bigint: armazena números inteiros positivos e negativos com tamanho de até 8 bytes. Isso significa que o valor deve estar no intervalo (-2 63, 2 63 -1). A especificação da palavra-chave não assinada restringe a coluna a armazenar apenas valores positivos no intervalo (0, 2 64 -1).

Decimal (tamanho, D): armazena um número de ponto fixo. O tamanho do parâmetro especifica o número total de dígitos, enquanto d especifica o número de dígitos após o ponto decimal. Os valores padrão para tamanho ed são 10 e 0, respectivamente.

Flutuante (tamanho, D) / Duplo (tamanho, D): Armazena um número de ponto flutuante. O flutuador é usado para números menores de até 4 bytes de tamanho. Double armazena números maiores. No entanto, o dobro não é suportado por todos os bancos de dados.

Conhecimento fora do plano de estudos - A diferença entre números de ponto fixo e de ponto flutuante é que o ponto decimal é fixo em um e flutuante em outro. Ponto fixo significa que o número de dígitos é fixo antes e depois do ponto decimal. Ponto flutuante significa que o número de dígitos antes e depois do ponto decimal pode variar em relação à significância dos dígitos no número.

Exemplo:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Data e Hora

  1. Data: armazena os dados no formato AAAA-MM-DD, limitado de 1000-01-01 a 9999-12-31.
  2. Hora: Armazena a hora no formato hh: mm: ss.
  3. DateTime: armazena a data e a hora.
  4. Registro de data e hora : o registro de data e hora é usado para marcar um registro de data e hora sempre que uma linha é inserida ou atualizada na tabela. Isso geralmente é feito por meio das palavras-chave DEFAULT CURRENT_TIMESTAMP e ON UPDATE CURRENT_TIMESTAMP.

Exemplo:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Tipos de Dados Diversos-SQL

  • CLOB: CLOB significa Objetos Grandes de Caracteres. Eles podem conter dados de caracteres de até 2 GB. Não suportado pelo MySQL embora. O MySQL usa o texto para obter o mesmo.
  • BLOB: BLOB significa Objetos Binários Grandes. Eles são usados ​​para armazenar objetos binários de tamanho de até 2 GB. Geralmente, as imagens são convertidas em objetos binários e armazenadas em colunas BLOB.
  • XML: usado para armazenar dados XML.
  • JSON: Usado para armazenar dados JSON. Não suportado pelo MySQL.

Conclusão - Tipos de dados SQL

Os tipos de dados SQL ajudam muito na otimização estratégica do espaço do banco de dados. Em um mundo digital, onde os dados estão sempre crescendo a uma taxa exponencial, um desenvolvedor deve escolher sabiamente o tipo de cada bit de dados. Isso ajuda na redução de custos decorrentes do armazenamento massivo de dados.

Artigos recomendados

Este é um guia para tipos de dados SQL. Aqui discutimos a introdução, tipos de dados SQL, caractere / sequência, caractere / sequência Unicode e numérico. Você também pode consultar nossos outros artigos sugeridos para saber mais:

  1. Tipos de dados PostgreSQL
  2. Tipos de OLAP
  3. Tipos de malware
  4. Cláusula SQL WHERE
  5. Palavras-chave PHP
  6. Palavras-chave C ++
  7. Os 3 principais tipos de dados do PHP com exemplos
  8. Exemplos para implementar a instrução INSERT