Tipo di dati Mysql enum

Tipo di dati Mysql enum
Molti tipi di dati esistono in MySQL per archiviare dati diversi nella tabella del database. Il tipo di dati Enum è uno di questi. La forma completa di enum è un'enumerazione. Quando è necessario inserire qualsiasi valore particolare dall'elenco dei valori predefiniti in un campo di una tabella, viene utilizzato un tipo di dati Enum. L'elenco dei valori viene archiviato come stringa per il campo Enum e il numero di valori selezionati dai valori di elenco verrà inserito nel campo Enum al momento del inserto o dell'aggiornamento. Quando il campo Enum viene recuperato dalla tabella, mostrerà il valore dal numero al formato leggibile dall'uomo. Gli usi del tipo di dati Enum in MySQL sono stati mostrati in questo tutorial.

Sintassi:

La sintassi del tipo di dati Enum è riportata di seguito.

Crea table table_name (
..
enum_field enum ('val1', 'val2',…, 'valn'),
..
);

I valori massimi 65.535 possono essere definiti come valori enum.

Attributi enum:

Il tipo di dati Enum ha tre attributi. Questi sono descritti di seguito.

PREDEFINITO

Il valore predefinito del tipo di dati Enum è nullo. Se non viene fornito alcun valore per il campo Enum, verrà inserito il valore null.

NULLO

Funziona come il valore predefinito se questo attributo è impostato per il campo Enum.

NON NULLO

Verrà visualizzato un messaggio di avviso se questo attributo è impostato per il campo Enum e non viene fornito alcun valore al momento dell'inserimento.

Controllo degli usi del tipo di dati Enum:

È necessario creare una tabella con il tipo di dati Enum in un database MySQL per verificare l'uso del tipo di dati Enum. Apri il terminale e connettiti con il server MySQL eseguendo il comando seguente.

$ sudo mysql -u root

Esegui il comando seguente per creare un database denominato test_db.

Crea database test_db;

Esegui il comando seguente per selezionare il database.

Usa test_db;

Esegui la seguente query per creare una tabella denominata Libro con cinque campi. Il tipo di dati di tipo Il campo di questa tabella è un enum che memorizzerà uno dei tre valori (ingegneria, medico e business).

Crea table book (
Id int non null Auto_Increment Key primario,
Nome varchar (50) non null,
Tipo enum ("ingegneria", "medico", "business"),
autore varchar (50) non null,
Price Float (5,2) non null
) Motore = innodB;

Eseguire il comando seguente per controllare la struttura del Libro tavolo.

Descrivere il libro;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Inserire dati validi nella tabella:

Eseguire la seguente query di inserimento per inserire tre record nel Libro tavolo. I valori di "Ingegneria", "Medical" e "Business" sono stati utilizzati per il campo ENUM della tabella, che è valido valori di enum. Quindi, la query verrà eseguita senza alcun errore.

Inserisci in "libro" ("id", "nome", "tipo", "autore", "prezzo") valori
(NULL, "Teoria delle macchine", "Ingegneria", "J.K. Gupta e r.S. Khurmi ', 59.99),
(Null, "Pocket Medicine", "Medical", "Marc S Sabatine", 45.80),
(Null, "Principi di marketing", "Business", "Gary Armstrong e Philip Kotler", 60.00);

Leggi i dati dalla tabella:

Dopo aver eseguito la query Inserisci, eseguire la seguente query Seleziona per verificare il contenuto del Libro tavolo.

Seleziona * da "libro";

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il comando sopra.

Inserire dati non validi nella tabella:

La query di inserto genererà un errore se il valore che non esiste nell'elenco Enum verrà provato. Nella seguente query di inserto, il valore "BBA" è impostato per il campo Enum (tipo), ma non corrisponde a nessuno degli elementi ENUM definiti al momento della creazione di tabelle. Pertanto, la seguente query di inserto genererà un errore dopo l'esecuzione.

Inserisci in "libro" ("id", "nome", "tipo", "autore", "prezzo") valori
(Null, "Business Communication Essentials", "BBA", "Courtland L Bovee e John Thill", 59.99);

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito il comando sopra. Qui, errore no 1265 è stato generato e nessun nuovo record verrà inserito.

Filtro dati dalla tabella in base al valore numerico enum:

Il valore della stringa viene utilizzato al momento dell'inserimento di dati nel campo Enum della tabella, ma i record inseriti della tabella possono essere recuperati in base all'indice numerico o al valore stringa del campo Enum. L'uso dell'indice numerico del valore enum per filtrare i dati da Libro La tabella è stata mostrata nella seguente query seleziona. L'indice numerico 2 del campo Enum contiene il valore "Medical.'Quindi, i record che contengono il valore 'Medico' nel campo Tipo di Libro La tabella apparirà nell'output. C'è solo un record nel tavolo che corrisponde ai criteri.

Seleziona ID, nome, tipo, autore, prezzo dal libro dove type = 2;

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito la query sopra.

Filtro dati dalla tabella in base al valore enum leggibile dall'uomo:

Non è più facile ricordare l'indice numerico di ciascun valore di elemento Enum se il campo Enum contiene un elenco di un gran numero di elementi. In questo caso, è meglio utilizzare il valore della stringa dell'elemento Enum nella query per il recupero dei record in base al valore del campo Enum. Le seguenti query Select filtreranno i record in cui il campo Tipo contiene il valore "Azienda.'Secondo i dati della tabella dei libri, esiste un solo record corrispondente con tipo valore, "affari.'

Seleziona ID, nome, tipo, autore, prezzo dal libro Where Type = 'Business';

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito la query sopra.

Conclusione:

L'enum è un tipo di dati benefico di mysql. L'inserimento di dati non validi può essere prevenuto utilizzando questo tipo di dati. Il modo di dichiarare e inserire i dati nel campo Enum e il modo di recuperare i dati basati sul campo Enum sono stati mostrati in questo tutorial utilizzando esempi.