Vzhledem k tomu, že se každý den generuje obrovské množství dat, je důležité získávat data na základě několika podmínek. V tomto článku o příkazu CASE v MySQL budu diskutovat o tom, jak tento příkaz použít k načtení dat pro jednu nebo více podmínek.
Tento článek bude obsahovat následující témata:
- Úvod do SQL
- Jaký je účel SQL?
- CASE v MySQL
- Syntaxe CASE v MySQL
- Příklad CASE v MySQL
Co je SQL?
SQL je doménově specifický jazyk, který je široce používán v programování. Je navržen pro správu dat obsažených v systému správy relačních databází (RDBMS) nebo pro zpracování toků v systému správy relačních datových toků. Obecně platí, že SQL je standardní jazyk, který pomáhá ukládat, manipulovat a získávat data v databázích.
Jaký je účel SQL?
SQL se v podstatě používá ke komunikaci s databází. Podle ANSI (American National Standards Institute) je považován za standardní jazyk pro systémy správy relačních databází (RDBMS). Příkazy SQL používáme k provádění úkolů, jako je aktualizace, vkládání, mazání nebo načítání dat z databáze.
Co je to příkaz CASE v MySQL?
Příkaz CASE v MySQL je způsob zpracování logiky if/else. Je to druh řídicího příkazu, který tvoří buňku programovacích jazyků, protože řídí provádění jiných sad příkazů.
Příkaz CASE prochází různými podmínkami a vrací hodnoty, jakmile je splněna první podmínka (jako příkaz IF-THEN-ELSE v jazycích nižší úrovně). Jakmile je podmínka splněna, zastaví se procházení a vrátí výsledek. Pokud není splněna žádná z podmínek, vrátí hodnotu v klauzuli ELSE.
Pokud neexistuje klauzule ELSE a žádná z podmínek není pravdivá, vrátí jednoduše NULL.
Syntaxe příkazu CASE v MySQL
Základní syntaxe:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN conditionx THEN resultx ELSE result END;
Existují dva způsoby, jak dosáhnout příkazů CASE-Switch:
- Vezme proměnnou s názvem case_value a porovná ji s nějakým seznamem příkazů.
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END;
- Zvažte podmínku vyhledávání namísto rovnosti proměnné a podle toho spusťte seznam příkazů.
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END;
Příklad příkazu CASE v MySQL
Podívejme se na tabulku:STUDENT
Stůl studentů
ID studenta | Název | Oddělení | Pohlaví |
001 | Akáš | CS | M |
002 | Bikram | Mechanismus | M |
003 | Chandan | CS | M |
004 | Deepak | CS | M |
005 | Elicia | EC | F |
006 | Fernandes | Mechanismus | F |
Příklad: Zvažte scénář, kde budete muset upravit názvy oddělení na jejich úplné tvary. Pokud je název oddělení CS, měl by být převeden na počítačovou vědu; Podobně by měl být Mech převeden na Mechanical. and EC na Electronic and Communication.
Ukázkový dotaz
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;
Výstup:
Odpovídající názvy oddělení se přejmenují následovně:
ID studenta | Jméno | Oddělení | Pohlaví |
001 | Akáš | Počítačová věda | M |
002 | Bikram | Mechanické | M |
003 | Chandan | Počítačová věda | M |
004 | Deepak | Počítačová věda | M |
005 | Elicia | Elektronika a komunikace | F |
006 | Fernandes | Mechanické | F |
Příklad: Zvažte scénář, kde musíte vybrat všechna pole odpovídající tabulce Student. Vzhledem k tomu, že hodnoty zapsané v poli Pohlaví jsou jednoznakové hodnoty (M/F), napíšeme dotaz pro změnu M na Muž a F na Žena.
Ukázkový dotaz
SELECT Student ID, Name, Department, CASE Gender WHEN'M' THEN 'Male' WHEN'F' THEN 'Female' END FROM Student;
Výstup:
ID studenta | Jméno | Oddělení | Pohlaví |
001 | Akáš | Počítačová věda | Muž |
002 | Bikram | Mechanické | Muž |
003 | Chandan | Počítačová věda | Muž |
004 | Deepak | Počítačová věda | Muž |
005 | Elicia | Elektronika a komunikace | Žena |
006 | Fernandes | Mechanické | Žena |
Přepínání CASE v SQL – vlastní řazení
Ukázkový dotaz
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;
Výstup:
Výstup se seřadí podle poskytnutého pole.
Výše uvedený postup (funkce) bere jako argument proměnnou datového typu varchar a na základě toho seřadí n-tice v tabulce Student. Kromě toho můžeme také použít příkazy CASE k porovnání podmínek.
Příklad: Zvažte tabulku s názvem CONTACTS, která obsahuje contactID a websiteID. Podle těchto podrobností může uživatel procházet těmito odkazy:‚TechOnTheNet.com‘ nebo ‚CheckYourMath.com‘.
Ukázkový dotaz
SELECT CASE WHEN contact_id < 1000 THEN 'TechOnTheNet.com' WHEN website_id = 2 THEN 'CheckYourMath.com' END FROM contacts;
Už teď musí být jasné, že při psaní příkazů Case v MySQL je jedním z nejdůležitějších faktorů ‚jejich řazení správným způsobem‘. Nezapomeňte, že podmínky se vyhodnocují ve vámi uvedeném pořadí. Jakmile se jakákoli podmínka stane pravdivou, příkaz CASE vrátí výsledek a nebude podmínky dále vyhodnocovat. Buďte tedy opatrní při výběru pořadí, ve kterém uvádíte své podmínky.
Pokud se chcete dozvědět více o MySQL a seznámit se s touto relační databází s otevřeným zdrojovým kódem, podívejte se na naše certifikační školení MySQL DBA, které je součástí živého školení pod vedením instruktora a skutečného zkušenosti s projektem života. Toto školení vám pomůže porozumět MySQL do hloubky a pomůže vám dosáhnout zvládnutí tohoto předmětu.
Máte na nás otázku? Uveďte to prosím v sekci komentářů tohoto „Prohlášení CASE v MySQL“ a my se vám ozveme.