sql >> Databáze >  >> RDS >> Database

SQL WHERE Více podmínek

V tomto tématu se naučíme, jak přidat více podmínek pomocí klauzule WHERE.

Nejprve pochopme koncept klauzule WHERE.

Klauzule WHERE se používá k určení podmínky při načítání záznamů z tabulky.

Klauzule WHERE se obecně používá s příkazem SELECT v SQL

Dotaz SELECT zobrazí pouze záznamy splňující podmínku uvedenou v klauzuli WHERE

V podmínce klauzule WHERE dotazu SELECT může být zadána jedna nebo více podmínek.

Operátory AND a OR se používají ke kontrole více podmínek pomocí klauzule WHERE v jednom dotazu.

  • Operátor AND s klauzulí WHERE

Kdykoli je operátor AND použit mezi podmínkami s klauzulí WHERE ke kontrole více podmínek v dotazu SELECT, výsledky se zobrazí, když je splněna pouze jedna podmínka uvedená v dotazu.

Syntaxe:

SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];

Příklad 1:

Zvažte tabulku studentů uvedenou níže. Budeme uvažovat stejnou tabulku pro všechny následující příklady.

Student_RollNo Jméno_studenta Student_Gender Student_MobileNumber Student_HomeTown Student_Age Student_Percentage
1 Další Rohit Muž 9890786123 Lucknow 23 75
2 Kunal Shah Muž 7789056784 Čandigarh 20 68
3 Kartík Goenka Muž 9908743576 Ahemdabad 22 92
4 Anupama Shah Žena 8890907656 Čandigarh 24 94
5 Snehal Jain Žena 8657983476 Surat 21 94

Nyní se podívejme na několik příkladů, abychom tento koncept pochopili prakticky.

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";

Výstup:

V tabulce studentů je pouze jeden záznam s číslem 2, který má pohlaví jako muž a rodné město jako Chandigarh. I když některá ze zadaných podmínek není splněna, pak v takovém případě nebude výstup stejný. Zobrazený záznam/záznamy se budou lišit nebo v některých případech může být výstupem prázdná sada, pokud žádný záznam nesplňuje obě podmínky.

Příklad 2:

mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;

Výstup:

V tabulce studentů je pouze jeden záznam s číslem „5“, který má věk rovný „21“ a procento rovné „94“.

Příklad 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Výstup:

Mezi všemi záznamy v tabulce studentů je pouze jeden záznam s číslem „4“, který má pohlaví jako „muž“, domovské město jako „Chandigarh“ a věk se rovná „24“. Toto je jediný záznam, který splňuje všechny tři podmínky.

Příklad 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND  Student_Name = "Kartik Goenka" AND Student_Percentage = 92;

Výstup:

Mezi všemi záznamy v tabulce studentů je pouze jeden záznam s číslem '3', ve kterém jsou splněny všechny tři podmínky, tj. pohlaví jako muž, jméno se rovná 'Kartik Goenka' a procento se rovná '92'.

  • Operátor OR s klauzulí WHERE

Kdykoli je mezi podmínkami s klauzulí WHERE použit operátor OR ke kontrole více podmínek v dotazu SELECT, pak se výsledky zobrazí, když je mezi všemi ostatními podmínkami zapsanými v dotazu splněna alespoň jedna podmínka.

Syntaxe:

SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];

Příklad 1:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";

Výstup:

V tabulce studentů jsou čtyři záznamy s číslem 1, 2, 3 a 4, které mají pohlaví jako muž nebo rodné město jako Chandigarh. I když jsou splněny jakékoli specifikované podmínky, bude tento záznam považován za součást výstupu. V některých případech může být výstupem prázdná sada, pokud žádný záznam nesplňuje ani jednu podmínku.

Příklad 2:

mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;

Výstup:

V tabulce studentů jsou dvě čísla záznamů „4“ a „5“, která má buď věk rovný „21“ nebo procento rovné „94“.

Příklad 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Výstup:

Mezi všemi záznamy v tabulce studentů jsou tři záznamy s pořadovým číslem ‚2‘, ‚4‘ a ‚5‘, který má buď pohlaví jako ‚žena‘; rodné město jako „Chandigarh“ nebo věk se rovná „24“. Toto jsou záznamy, které splňují jednu ze tří podmínek.

Příklad 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR  Student_Name = "Kartik Goenka" OR Student_Percentage = 92;

Výstup:

Mezi všemi záznamy v tabulce studentů jsou tři záznamy s čísly '1', '2' a '3', ve kterých je splněna jedna ze tří podmínek, tj. pohlaví jako muž, jméno se rovná 'Kartik Goenka' nebo procento se rovná '92'.

  • Operátory AND a OR s klauzulí WHERE v jediném dotazu

V dotazu na klauzuli WHERE s příkazem SELECT můžeme také použít kombinaci operátorů AND a OR v jediném dotazu. Účelem použití kombinací operátorů AND a OR v jediném dotazu je otestovat vyšší úroveň komplikovaných podmínek.

Syntaxe:

SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];

Příklad 1:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Výstup:

Podle podmínek v dotazu by záznam měl mít pohlaví jako 'žena' a domovské město jako 'Chandigarh'. Věk studenta může, ale nemusí být „24“. Existuje tedy pouze jeden záznam s číslem 4, který tyto podmínky splňuje. I když má jakýkoli záznam pohlaví jako „žena“ a domovské město jiné než „Chandigarh“ nebo naopak, nebude tento záznam ve výstupu zohledněn.

Příklad 2:

SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Výstup:

Podle podmínek v dotazu by záznam měl mít buď pohlaví jako „žena“, nebo domovské město jako „Chandigarh“. Věk studenta by neměl být jiný než „24“. Existují tedy dva záznamy s číslem 4 a 5, které splňují tyto podmínky.

Příklad 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;

Výstup:

V tabulce studentů je pouze jeden záznam s pohlavím „muž“, domovským městem jako „Lucknow“ a procento studenta by mělo být „75“. Věk studenta může být 23 nebo jiný než 23.

Příklad 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;

Výstup:

V tabulce studentů jsou tři záznamy, které mají pohlaví jako „muž“ a věk jako „23“. Domovské město může, ale nemusí být „Lucknow“. Procento také může nebo nemusí být „75“.


  1. Jaký je rozdíl mezi spojením hash a spojením sloučení (Oracle RDBMS)?

  2. Zápis souboru csv do databáze SQL Server pomocí pythonu

  3. Jak obnovím soubor výpisu z mysqldump?

  4. V MySQL mohu odložit kontroly referenční integrity až do potvrzení