MySQL Enum Data Type

MySQL Enum Data Type
Muitos tipos de dados existem no MySQL para armazenar diferentes dados na tabela de banco de dados. O tipo de dados enum é um deles. A forma completa de enum é uma enumeração. Quando é necessário para inserir qualquer valor específico da lista dos valores predefinidos em um campo de uma tabela, um tipo de dados enum é usado. A lista de valores é armazenada como a string para o campo Enum, e o número de valores selecionados dos valores da lista será inserido no campo Enum no tempo de inserção ou atualização. Quando o campo enum é recuperado da tabela, ele mostrará o valor do número para o formato legível pelo homem. Os usos do tipo de dados enum no MySQL foram mostrados neste tutorial.

Sintaxe:

A sintaxe do tipo de dados enum é dada abaixo.

Crie Table Table_name (
..
enum_field enum ('val1', 'val2',…, 'valn'),
..
);

Os valores máximos de 65.535 podem ser definidos como valores de enumeração.

Atributos da Enum:

O tipo de dados enum tem três atributos. Estes são descritos abaixo.

PADRÃO

O valor padrão do tipo de dados enum é nulo. Se nenhum valor for fornecido para o campo Enum, o valor nulo será inserido.

NULO

Funciona da mesma forma que o valor padrão se esse atributo estiver definido para o campo Enum.

NÃO NULO

Uma mensagem de aviso aparecerá se este atributo estiver definido para o campo Enum e nenhum valor for fornecido no tempo de inserção.

Verificando os usos do tipo de dados enum:

Você precisa criar uma tabela com tipo de dados enum em um banco de dados MySQL para verificar o uso do tipo de dados enum. Abra o terminal e conecte -se ao servidor MySQL executando o seguinte comando.

$ sudo mysql -u root

Execute o seguinte comando para criar um banco de dados nomeado test_db.

Criar banco de dados test_db;

Execute o seguinte comando para selecionar o banco de dados.

Use test_db;

Execute a seguinte consulta para criar uma tabela chamada Livro com cinco campos. O tipo de dados do tipo O campo desta tabela é uma enumeração que armazenará qualquer um dos três valores (engenharia, médico e negócios).

Crie livro de tabela (
Id int não nulo Auto_increntle Primary Tecla,
Nome Varchar (50) não nulo,
tipo enum ('engenharia', 'médico', 'negócio'),
Autor Varchar (50) não nulo,
Price Float (5,2) não nulo
) Mecanismo = innodb;

Execute o seguinte comando para verificar a estrutura do Livro mesa.

Descrever o livro;

Saída:

A saída a seguir aparecerá após a execução do comando acima.

Insira dados válidos na tabela:

Execute a seguinte consulta de inserção para inserir três registros no Livro mesa. Os valores de 'engenharia, "médico" e "negócios" foram usados ​​para o campo Enum da tabela, que é valores de enum válidos. Então, a consulta será executada sem nenhum erro.

Inserir em 'livro' ('id', 'nome', 'tipo', 'autor', 'price') valores
(Nulo, 'teoria das máquinas', 'engenharia', 'j.K. Gupta e r.S. Khurmi ', 59.99),
(Null, 'Pocket Medicine', 'Medical', 'Marc S Sabatine', 45.80),
(Null, 'Princípios de Marketing', 'Negócios', 'Gary Armstrong e Philip Kotler', 60.00);

Leia os dados da tabela:

Depois de executar a consulta de inserção, execute a seguinte consulta para verificar o conteúdo do Livro mesa.

Selecione * de 'livro';

Saída:

A saída a seguir aparecerá após a execução do comando acima.

Insira dados inválidos na tabela:

A consulta de inserção gerará um erro se o valor que não existir na lista de enumes será tentado inserir. Na consulta de inserção a seguir, o valor 'BBA' é definido para o campo Enum (tipo), mas não corresponde a nenhum dos itens de enum definidos no momento da criação da tabela. Portanto, a consulta de inserção a seguir gerará um erro após a execução.

Inserir em 'livro' ('id', 'nome', 'tipo', 'autor', 'price') valores
(Null, 'Business Communication Essentials', 'BBA', 'Courtland L Bovee e John Thill', 59.99);

Saída:

A saída a seguir aparecerá após a execução do comando acima. Aqui, erro não 1265 foi gerado e nenhum novo registro será inserido.

Filtre os dados da tabela com base no valor numérico de enum:

O valor da string é usado no momento da inserção de dados no campo Enum da tabela, mas os registros inseridos da tabela podem ser recuperados com base no índice numérico ou no valor da string do campo Enum. O uso do índice numérico do valor da enumeração para filtrar os dados do Livro A tabela foi mostrada na seguinte consulta selecionada. O índice numérico 2 do campo enum contém o valor '' médico.'Então, os registros que contêm o valor 'Médico' no campo de tipo do Livro A tabela aparecerá na saída. Há apenas um registro na tabela que corresponde aos critérios.

Selecione ID, nome, tipo, autor, preço do livro WHERE TIPO = 2;

Saída:

A saída a seguir aparecerá após a execução da consulta acima.

Filtre os dados da tabela com base no valor da enumeração legível pelo homem:

Não é mais fácil lembrar o índice numérico de cada valor do item de enum se o campo Enum contiver uma lista de um grande número de itens. Nesse caso, é melhor usar o valor da string do item enum na consulta para recuperar os registros com base no valor do campo enum. A consulta selecionada a seguir filtrará os registros em que o campo de tipo contém o valor 'Business.'De acordo com os dados da tabela de livros, há apenas um registro correspondente com o tipo valor, 'negócio.'

Selecione ID, nome, tipo, autor, preço do livro Where Type = 'Business';

Saída:

A saída a seguir aparecerá após a execução da consulta acima.

Conclusão:

A enumeração é um tipo de dados benéfico de MySQL. A inserção de dados inválidos pode ser evitada usando este tipo de dados. A maneira de declarar e inserir dados no campo Enum e a maneira de recuperar dados com base no campo Enum foram mostrados neste tutorial usando exemplos.