Med en enorm mængde data, der genereres hver dag, er det vigtigt at hente data baseret på nogle få forhold. I denne artikel om CASE-sætningen i MySQL vil jeg diskutere, hvordan man bruger denne erklæring til at hente data om en enkelt tilstand eller flere forhold.
Følgende emner vil blive dækket i denne artikel:
- Introduktion til SQL
- Hvad er formålet med SQL?
- CASE i MySQL
- Syntaks for CASE i MySQL
- Eksempel på CASE i MySQL
Hvad er SQL?
SQL er et domænespecifikt sprog, som er flittigt brugt i programmering. Det er designet til styring af data indeholdt i et relationelt databasestyringssystem (RDBMS) eller til strømbehandling i et relationelt datastrømstyringssystem. Generelt er SQL et standardsprog, som hjælper med at lagre, manipulere og hente data i databaser.
Hvad er formålet med SQL?
SQL bruges grundlæggende til at kommunikere med en database. Ifølge ANSI (American National Standards Institute) betragtes det som standardsproget for relationelle databasestyringssystemer (RDBMS). Vi bruger SQL-sætninger til at udføre opgaver såsom at opdatere, indsætte, slette eller hente data fra en database.
Hvad er CASE-sætningen i MySQL?
CASE-sætning i MySQL er en måde at håndtere if/else-logikken på. Det er en slags kontroludsagn, som danner cellen af programmeringssprog, da de kontrollerer udførelsen af andre sæt af udsagn.
CASE-sætningen gennemgår forskellige betingelser og returnerer værdier, når og når den første betingelse er opfyldt (som en IF-THEN-ELSE-sætning på sprog på lavt niveau). Når en betingelse er sand, stopper den med at krydse og returnere resultatet. Hvis ingen af betingelserne er sande, returnerer det værdien i ELSE-sætningen.
Hvis der ikke er nogen ELSE-klausul, og ingen af betingelserne er sande, returnerer den blot NULL.
Syntaks for CASE-sætning i MySQL
Grundlæggende syntaks:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionx THEN resultx ELSE result END;
Der kan være to måder at opnå CASE-Switch-udsagn på:
- Tager en variabel kaldet case_value og matcher den med en statement_list.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END;
- Overvej en søgebetingelse i stedet for variabel lighed, og udfør sætningslisten i overensstemmelse hermed.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END;
Eksempel på CASE-sætning i MySQL
Lad os overveje en tabel:STUDENT
Tabel for elever
Student-id | Navn | Afdeling | Køn |
001 | Akash | CS | M |
002 | Bikram | Mek | M |
003 | Chadan | CS | M |
004 | Deepak | CS | M |
005 | Elicia | EC | F |
006 | Fernandes | Mek | F |
Eksempel: Overvej et scenario, hvor du skal ændre afdelingsnavnene til deres fulde formularer. Hvis afd.navnet er CS, skal det konverteres til Datalogi; Ligeledes bør Mech konverteres til Mechanical.og EC til Electronic and Communication.
Eksempelforespørgsel
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;
Output:
De tilsvarende afdelingsnavne omdøbes som følger:
Student-id | Navn | Afdeling | Køn |
001 | Akash | Computervidenskab | M |
002 | Bikram | Mekanisk | M |
003 | Chadan | Computervidenskab | M |
004 | Deepak | Computervidenskab | M |
005 | Elicia | Elektronik og kommunikation | F |
006 | Fernandes | Mekanisk | F |
Eksempel: Overvej et scenarie, hvor du skal vælge alle felter, der svarer til elevtabellen. Da værdierne skrevet i feltet Køn er enkelttegnsværdier (M/F), lad os skrive en forespørgsel for at ændre M til Mand og F til Kvinde.
Eksempelforespørgsel
SELECT Student ID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Student;
Output:
Student-id | Navn | Afdeling | Køn |
001 | Akash | Computervidenskab | Mand |
002 | Bikram | Mekanisk | Mand |
003 | Chadan | Computervidenskab | Mand |
004 | Deepak | Computervidenskab | Mand |
005 | Elicia | Elektronik og kommunikation | Kvinde |
006 | Fernandes | Mekanisk | Kvinde |
CASE Switch i SQL- Custom Sortering
Eksempelforespørgsel
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;
Output:
Oputtet bliver sorteret i henhold til det angivne felt.
Ovenstående procedure (funktion) tager en variabel af varchar-datatypen som sit argument og sorterer på det grundlag tuplerne i elevtabellen. Desuden kan vi også bruge CASE-udsagn til at sammenligne forhold.
Eksempel: Overvej en tabel med navnet CONTACTS, som indeholder contactID og et websiteID. Ifølge disse detaljer kan en bruger navigere gennem disse links:'TechOnTheNet.com' eller 'CheckYourMath.com'.
Eksempelforespørgsel
SELECT CASE WHEN contact_id < 1000 THEN 'TechOnTheNet.com' WHEN website_id = 2 THEN 'CheckYourMath.com' END FROM contacts;
Det må være klart nu, at mens du skriver Case-udsagn i MySQL, er en vigtig faktor at 'bestille dem på den rigtige måde'. Bare husk, at betingelserne vurderes i den rækkefølge, du har angivet. Når en betingelse bliver sand, vil CASE-erklæringen returnere resultatet og ikke evaluere betingelserne yderligere. Så vær forsigtig, mens du vælger den rækkefølge, du angiver dine betingelser i.
Hvis du ønsker at lære mere om MySQL og lære denne open source relationsdatabase at kende, så tjek vores MySQL DBA Certification Training, som kommer med instruktør-ledet live-træning og real- livsprojekterfaring. Denne træning vil hjælpe dig med at forstå MySQL i dybden og hjælpe dig med at opnå beherskelse over emnet.
Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne "CASE Statement in MySQL", så vender vi tilbage til dig.