Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare l'istruzione CASE in MySQL?

Con un'enorme quantità di dati generati ogni giorno, è importante recuperare i dati in base ad alcune condizioni. In questo articolo sull'istruzione CASE in MySQL, parlerò di come utilizzare questa istruzione, per recuperare dati su una o più condizioni.

I seguenti argomenti saranno trattati in questo articolo:

  • Introduzione a SQL
  • Qual ​​è lo scopo di SQL?
  • CASO in MySQL
  • Sintassi di CASE in MySQL
  • Esempio di CASE in MySQL

Cos'è SQL?

SQL è un linguaggio specifico del dominio ampiamente utilizzato nella programmazione. È progettato per la gestione dei dati contenuti in un sistema di gestione di database relazionali (RDBMS) o per l'elaborazione di flussi in un sistema di gestione di flussi di dati relazionali. In generale, SQL è un linguaggio standard che aiuta a memorizzare, manipolare e recuperare i dati nei database.

Qual ​​è lo scopo di SQL?

SQL è fondamentalmente usato per comunicare con un database. Secondo ANSI (American National Standards Institute), è considerato il linguaggio standard per i sistemi di gestione di database relazionali (RDBMS). Usiamo le istruzioni SQL per eseguire attività come aggiornare, inserire, eliminare o recuperare dati da un database.

Cos'è l'istruzione CASE in MySQL?

L'istruzione CASE in MySQL è un modo per gestire la logica if/else. È una sorta di istruzione di controllo che costituisce la cella dei linguaggi di programmazione poiché controllano l'esecuzione di altri insiemi di istruzioni.

L'istruzione CASE passa attraverso varie condizioni e restituisce valori man mano che la prima condizione viene soddisfatta (come un'istruzione IF-THEN-ELSE nei linguaggi di basso livello). Una volta che una condizione è vera, interromperà l'attraversamento e restituirà il risultato. Se nessuna delle condizioni è vera, restituisce il valore nella clausola ELSE.

Se non esiste una clausola ELSE e nessuna delle condizioni è vera, restituisce semplicemente NULL.

Sintassi dell'istruzione CASE in MySQL

Sintassi di base:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionx THEN resultx
    ELSE result
END;

Ci possono essere due modi per ottenere le dichiarazioni CASE-Switch:

  • Prende una variabile chiamata case_value e la confronta con qualche statement_list.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Considera una condizione_ricerca invece dell'uguaglianza delle variabili ed esegui l'elenco_istruzioni di conseguenza.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Esempio di istruzione CASE in MySQL

Consideriamo un tavolo:STUDENT

Tavolo Studente

ID studente Nome Reparto Sesso
001 Akash CS M
002 Bikram Meccanico M
003 Chandan CS M
004 Profondo CS M
005 Elia EC F
006 Fernande Meccanico F

Esempio: Si consideri uno scenario in cui è necessario modificare i nomi dei dipartimenti nelle loro forme complete. Se il nome del reparto è CS, dovrebbe essere convertito in Informatica; Allo stesso modo, Mech dovrebbe essere convertito in Mechanical.and EC in Electronic and Communication.

Richiesta di esempio

CASE department_name
WHEN 'CS'
  THEN UPDATE Student SET
  department='Computer Science';
 WHEN 'EC'
  THEN UPDATE Student SET
  department='Electronics and Communication';
 ELSE UPDATE Student SET
 department=’Mechanical';
END;

Risultato:

I nomi dei dipartimenti corrispondenti vengono rinominati come segue:

ID studente Nome Reparto Sesso
001 Akash Informatica M
002 Bikram Meccanico M
003 Chandan Informatica M
004 Profondo Informatica M
005 Elia Elettronica e comunicazione F
006 Fernande Meccanico F

Esempio: Considera uno scenario, in cui devi selezionare tutti i campi corrispondenti alla tabella Studente. Poiché i valori scritti nel campo Sesso sono valori a carattere singolo (M/F), scriviamo una query per cambiare M in Maschio e F in Femmina.

Richiesta di esempio

SELECT Student ID, Name, Department,
CASE Gender
 WHEN'M' THEN 'Male'
 WHEN'F' THEN 'Female'
END
FROM Student;

Risultato:

ID studente Nome Reparto Sesso
001 Akash Informatica Maschio
002 Bikram Meccanico Maschio
003 Chandan Informatica Maschio
004 Profondo Informatica Maschio
005 Elia Elettronica e comunicazione Femmina
006 Fernande Meccanico Femmina

CASE Passa in SQL - Ordinamento personalizzato

Richiesta di esempio

CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS
SELECT StudentID, Name, Gender, Department
FROM Student
ORDER BY
  CASE WHEN @ColToSort='Department' THEN Department
       WHEN @ColToSort='Name' THEN Name
       WHEN @ColToSort='Gender' THEN Gender
       ElSE StudentID
  END;

Risultato:

L'output viene ordinato in base al campo fornito.

La procedura sopra (funzione) prende una variabile di tipo di dati varchar come argomento e, su questa base, ordina le tuple nella tabella Student. Inoltre, possiamo anche utilizzare le istruzioni CASE per confrontare le condizioni.

Esempio: Considera una tabella denominata CONTACTS che contiene contactID e un websiteID. In base a questi dettagli, un utente può navigare attraverso questi collegamenti:"TechOnTheNet.com" o "CheckYourMath.com".

Richiesta di esempio

SELECT
CASE
&nbsp;&nbsp;WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
&nbsp;&nbsp;WHEN website_id = 2 THEN 'CheckYourMath.com'
END
FROM contacts;

Deve essere ormai chiaro che mentre si scrivono le istruzioni Case in MySQL, uno dei fattori più importanti è "ordinarle nel modo giusto". Ricorda solo che le condizioni vengono valutate nell'ordine da te elencato. Quando una qualsiasi condizione diventa vera, l'istruzione CASE restituirà il risultato e non valuterà ulteriormente le condizioni. Quindi fai attenzione mentre selezioni l'ordine in cui elenchi le tue condizioni.

Se desideri saperne di più su MySQL e conoscere questo database relazionale open source, dai un'occhiata al nostro MySQL DBA Certification Training che viene fornito con formazione dal vivo con istruttore e real- esperienza di progetto di vita. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.

Hai una domanda per noi? Per favore menzionalo nella sezione commenti di questa "Dichiarazione CASE in MySQL" e ti risponderemo.