MySQLi - Tipos de dados
Definir adequadamente os campos em uma tabela é importante para a otimização geral do seu banco de dados. Você deve usar apenas o tipo e o tamanho do campo que realmente precisa; não defina um campo com 10 caracteres de largura se você sabe que usará apenas 2 caracteres. Esses tipos de campos (ou colunas) também são chamados de tipos de dados, após otype of data você estará armazenando nesses campos.
O MySQLi usa muitos tipos de dados diferentes divididos em três categorias: numérico, data e hora e tipos de string.
Tipos de dados numéricos
O MySQLi usa todos os tipos de dados numéricos ANSI SQL padrão, portanto, se você estiver chegando ao MySQLi de um sistema de banco de dados diferente, essas definições parecerão familiares para você. A lista a seguir mostra os tipos de dados numéricos comuns e suas descrições -
INT- Um inteiro de tamanho normal que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -2147483648 a 2147483647. Se não assinado, o intervalo permitido é de 0 a 4294967295. Você pode especificar uma largura de até 11 dígitos.
TINYINT- Um número inteiro muito pequeno que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -128 a 127. Se não assinado, o intervalo permitido é de 0 a 255. Você pode especificar uma largura de até 4 dígitos.
SMALLINT- Um pequeno número inteiro que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -32768 a 32767. Se não assinado, o intervalo permitido é de 0 a 65535. Você pode especificar uma largura de até 5 dígitos.
MEDIUMINT- Um inteiro de tamanho médio que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -8388608 a 8388607. Se não assinado, o intervalo permitido é de 0 a 16777215. Você pode especificar uma largura de até 9 dígitos.
BIGINT- Um grande número inteiro que pode ser assinado ou não assinado. Se assinado, o intervalo permitido é de -9223372036854775808 a 9223372036854775807. Se não assinado, o intervalo permitido é de 0 a 18446744073709551615. Você pode especificar uma largura de até 20 dígitos.
FLOAT(M,D)- Um número de ponto flutuante que não pode ser sem sinal. Você pode definir o comprimento de exibição (M) e o número de decimais (D). Isso não é obrigatório e o padrão é 10,2, onde 2 é o número de decimais e 10 é o número total de dígitos (incluindo decimais). A precisão decimal pode chegar a 24 casas para um FLOAT.
DOUBLE(M,D)- Um número de ponto flutuante de precisão dupla que não pode ser sem sinal. Você pode definir o comprimento de exibição (M) e o número de decimais (D). Isso não é obrigatório e o padrão é 16,4, onde 4 é o número de decimais. A precisão decimal pode chegar a 53 casas para um DOUBLE. REAL é sinônimo de DOUBLE.
DECIMAL(M,D) - Um número de ponto flutuante descompactado que não pode ser sem sinal. Em decimais não compactados, cada decimal corresponde a um byte. É necessário definir o comprimento de exibição (M) e o número de decimais (D). NUMERIC é sinônimo de DECIMAL.
Tipos de data e hora
Os tipos de dados de data e hora do MySQL são -
DATE- Uma data no formato AAAA-MM-DD, entre 1000-01-01 e 9999-12-31. Por exemplo, 30 de dezembro de 1973 seria armazenado como 30/12/1973.
DATETIME- Uma combinação de data e hora no formato AAAA-MM-DD HH: MM: SS, entre 1000-01-01 00:00:00 e 9999-12-31 23:59:59. Por exemplo, 3:30 da tarde em 30 de dezembro de 1973 seria armazenado como 1973-12-30 15:30:00.
TIMESTAMP - Um carimbo de data / hora entre meia-noite de 1 ° de janeiro de 1970 e algum dia em 2037. Parece o formato DATETIME anterior, mas sem os hifens entre os números; 3:30 da tarde em 30 de dezembro de 1973 seria armazenado como 19731230153000 (AAAAMMDDHHMMSS).
TIME - Armazena a hora no formato HH: MM: SS.
YEAR(M)- Armazena um ano no formato de 2 ou 4 dígitos. Se o comprimento for especificado como 2 (por exemplo, ANO (2)), ANO pode ser de 1970 a 2069 (70 a 69). Se o comprimento for especificado como 4, ANO pode ser de 1901 a 2155. O comprimento padrão é 4.
Tipos de String
Embora os tipos numéricos e de data sejam divertidos, a maioria dos dados que você armazenará estará no formato de string. Esta lista descreve os tipos de dados de string comuns no MySQLi.
CHAR(M)- Uma string de comprimento fixo entre 1 e 255 caracteres (por exemplo CHAR (5)), preenchida à direita com espaços para o comprimento especificado quando armazenado. Definir um comprimento não é obrigatório, mas o padrão é 1.
VARCHAR(M)- Uma string de comprimento variável entre 1 e 255 caracteres; por exemplo VARCHAR (25). Você deve definir um comprimento ao criar um campo VARCHAR.
BLOB or TEXT- Um campo com comprimento máximo de 65535 caracteres. BLOBs são "Objetos Binários Grandes" e são usados para armazenar grandes quantidades de dados binários, como imagens ou outros tipos de arquivos. Os campos definidos como TEXTO também contêm grandes quantidades de dados; a diferença entre os dois é que as classificações e comparações nos dados armazenados diferenciam maiúsculas de minúsculas em BLOBs e não diferenciam maiúsculas de minúsculas em campos de texto. Você não especifica um comprimento com BLOB ou TEXT.
TINYBLOB or TINYTEXT- Uma coluna BLOB ou TEXT com comprimento máximo de 255 caracteres. Você não especifica um comprimento com TINYBLOB ou TINYTEXT.
MEDIUMBLOB or MEDIUMTEXT- Uma coluna BLOB ou TEXT com comprimento máximo de 16777215 caracteres. Você não especifica um comprimento com MEDIUMBLOB ou MEDIUMTEXT.
LONGBLOB or LONGTEXT- Uma coluna BLOB ou TEXT com comprimento máximo de 4294967295 caracteres. Você não especifica um comprimento com LONGBLOB ou LONGTEXT.
ENUM - Uma enumeração, que é um termo sofisticado para lista. Ao definir um ENUM, você está criando uma lista de itens a partir dos quais o valor deve ser selecionado (ou pode ser NULL). Por exemplo, se você quiser que seu campo contenha "A" ou "B" ou "C", você deve definir seu ENUM como ENUM ('A', 'B', 'C') e apenas esses valores (ou NULL) jamais poderia preencher esse campo.