Diferentes campos de tipo de dados do banco de dados mysql definem tamanho de comprimento, faixa de valor e espaço de armazenamento

meta de aprendizagem:

学习的目标

  • Saiba como definir o comprimento de campos de diferentes tipos de dados, para que, ao usar dados mysql, defina o comprimento apropriado para o campo usado.

Conteúdo de Aprendizagem:

学习的内容

  1. inteiro
  2. tipo de string
  3. TEXTO
  4. tipo de tempo

Resumir:

提示:总结

  • 1. Tipo inteiro

1. O tipo de valor do tipo inteiro limitou o intervalo de valores. Existem tipos inteiros assinados e não assinados, e o valor M não representa o comprimento do caractere numérico que pode ser armazenado. Ele representa os dados exibidos quando é exibido comprimento mínimo;

 2. Quando o comprimento do caractere armazenado exceder o valor M, não há impacto, desde que não exceda a faixa limitada pelo tipo numérico;

 3. Quando o comprimento do caractere armazenado é menor que o valor M, o efeito só pode ser visto quando o preenchimento zero é definido para ser preenchido com 0. Em outras palavras, sem preenchimento zero, o valor M é inútil.

Por exemplo, se você definir int(11), haverá um valor de campo de 123, esse valor terá 3 dígitos na largura de exibição e o design exibirá 11 dígitos. campo Ao escolher zerofill, você pode descobrir que 123 se torna 00000000123, ou seja, os 8 bits restantes são preenchidos com 0.

Portanto, quando projetamos o banco de dados mysql, ao criar uma tabela, o mysql aloca automaticamente o tamanho: int(11), tinyint(4), smallint(6), mediumint(9), bigint(20).

Portanto, basta usar esses comprimentos de exibição padrão. Não há necessidade de preencher o comprimento sozinho, como int(10), tinyint(1), etc., que são basicamente inúteis. E isso leva à diversificação dos tipos de campo da tabela.

  • 2. Tipo de string (CHAR(M), VARCHAR(M))

insira a descrição da imagem aqui

O comprimento da coluna definido por CHAR(M) é fixo e o valor de M pode estar entre 0 e 255. Ao salvar valores CHAR, espaços são preenchidos à direita deles para atingir o comprimento especificado. Os espaços à direita são removidos quando os valores CHAR são recuperados. Nenhuma conversão de caso é feita durante o armazenamento ou recuperação. CHAR é muito conveniente para armazenar dados de comprimento fixo, e o índice no campo CHAR é altamente eficiente. Por exemplo, se você definir char(10), não importa se os dados armazenados atingem 10 bytes ou não, ele ocupará 10 bytes de espaço são automaticamente preenchidos com espaços.

O comprimento da coluna definido por VARCHAR(M) é uma cadeia de comprimento variável e o valor de M pode estar entre 0 e 65535. (O comprimento efetivo máximo de VARCHAR é determinado pelo tamanho máximo da linha e pelo conjunto de caracteres usado. O comprimento máximo total é de 65.532 caracteres (Festival). Ao salvar um valor VARCHAR, apenas o número necessário de caracteres é salvo, mais um byte para registrar o comprimento (dois bytes são usados ​​se o comprimento da declaração da coluna exceder 255). Os valores VARCHAR são salvos sem preenchimento. Os espaços à direita são preservados quando os valores são salvos e recuperados, em conformidade com o SQL padrão. Varchar armazena dados de comprimento variável, mas a eficiência de armazenamento não é tão alta quanto CHAR. Se o valor possível de um campo não for de comprimento fixo, sabemos apenas que não pode exceder 10 caracteres e é mais econômico defini-lo como VARCHAR(10).

A maior diferença entre CHAR e VARCHAR é que um é de tamanho fixo e o outro é de tamanho variável .

Resumindo,
do ponto de vista do espaço, é apropriado usar varchar;
do ponto de vista da eficiência, é apropriado usar char. A chave é encontrar um ponto de troca de acordo com a situação real. Quando um grande número de requisitos de consulta são necessários, char é usado.
Quando há necessidade de salvar uma grande quantidade de dados, o varchar é usado para economizar espaço de armazenamento.

  • TEXTO

Uma coluna de TEXTO com comprimento máximo de 65.535 (2 elevado à 16ª potência – 1) caracteres .

O texto é usado principalmente para armazenar texto não binário, como publicações em fóruns, tópicos ou perguntas e respostas que o Baidu conhece. A coluna TEXT não pode ter um valor padrão. Durante o armazenamento ou recuperação, não há conversão de caso. Se você especificar o comprimento posteriormente, nenhum erro será relatado, mas esse comprimento não funciona, o que significa que quando você insere dados, ele excede o valor que você especificou. O comprimento ainda pode ser inserido normalmente. Na verdade, pode ser resumido como usar TEXT ao armazenar uma grande quantidade de informações de texto.

  • Resumo
    1, a diferença de comprimento, o caractere varia de 0 a 255 e o varchar é de até 64 K. Se você encontrar um texto grande, considere o uso de texto, até 4G.

2. Em termos de eficiência, é basicamente char>varchar>text .

3. char e varchar podem ter valores padrão, mas text não pode especificar valores padrão.

  • tipo de tempo

insira a descrição da imagem aqui

O tipo DATETIME é usado quando você precisa de um valor que contenha informações de data e hora. MySQL recupera e exibe valores DATETIME no formato 'AAAA-MM-DD HH:MM:SS', o intervalo suportado é '1000-01-01 00:00:00' a '9999-12-31 23:59: 59' .

O tipo DATE é usado quando você precisa apenas de um valor de data, sem uma parte de tempo. MySQL recupera e exibe valores DATE no formato 'YYYY-MM-DD', o intervalo suportado é '1000-01-01' a '9999-12-31'.

O tipo de coluna TIMESTAMP fornece um tipo que você pode usar para marcar automaticamente as operações INSERT ou UPDATE com a data e hora atuais.

O tipo de dados TIME representa a hora do dia. MySQL recupera e exibe valores de TIME no formato "HH:MM:SS". O intervalo suportado é '00:00:00' a '23:59:59'.

- [x] A diferença entre datetime e timestamp:
1. O intervalo de datas de datetime é relativamente grande; se você tiver dados anteriores a 1970, ainda precisará usar datetime. Mas o espaço de armazenamento ocupado por timestamp é relativamente pequeno.

2. A coluna do tipo timestamp possui outra funcionalidade: por padrão, ao inserir e atualizar dados, a coluna timestamp será automaticamente preenchida/atualizada com a hora atual (CURRENT_TIMESTAMP).
3. A comparação do carimbo de data/hora é afetada pelo fuso horário e pela versão MYSQL e SQL MODE do servidor.

Acho que você gosta

Origin blog.csdn.net/YHLSunshine/article/details/131112477
Recomendado
Clasificación