SQL WHERE IN – explicat cu exemple

Te-ai săturat să filtrezi manual datele din baza ta de date și să cauți o modalitate mai eficientă de a filtra datele cu mai multe valori? SQL WHERE IN ar putea fi soluția de care aveți nevoie!

Dacă lucrați cu baze de date SQL, probabil că ați întâlnit operatorul WHERE IN. Acest operator este folosit pentru a specifica mai multe valori într-o clauză WHERE, permițându-vă să filtrați datele mai precis.

Cu acest operator, puteți specifica o listă de valori care să corespundă unei coloane din tabelul dvs. Această listă poate fi codificată sau generată de o subinterogare, oferindu-vă multă flexibilitate în modul în care vă filtrați datele.

SQL WHERE IN – explicat cu exemple

De exemplu, puteți utiliza operatorul IN pentru a găsi toți clienții dintr-o anumită listă de orașe sau pentru a filtra rezultatele pe baza unui set de ID-uri de produs.

Unul dintre avantajele utilizării operatorului WHERE IN este că vă poate face interogările mai eficiente. Folosind o listă de valori în loc de mai multe condiții SAU, puteți reduce cantitatea de procesare care trebuie făcută de baza de date.

Acest lucru poate fi deosebit de important atunci când lucrați cu seturi de date mari sau interogări complexe, unde chiar și optimizările mici pot face o mare diferență în performanță.

Cuprins

Ce este SQL WHERE IN clauza?

Clauza SQL WHERE IN este folosită pentru a filtra datele pe baza unei liste de valori. Vă permite să specificați mai multe valori într-o clauză WHERE folosind o prescurtare pentru mai multe condiții OR. Sintaxa pentru clauza WHERE IN pentru SQL Server , PostgreSQL, MYSQL și Oracle este următoarea:

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

Dacă luăm în considerare instrucțiunea SELECT de mai sus, clauza WHERE IN vă permite să preluați date dintr-un tabel în care coloana specificată se potrivește cu oricare dintre valorile din listă. Este o sintaxă utilă pentru filtrarea datelor atunci când aveți un anumit set de valori de căutat.

Cum funcționează clauza SQL WHERE IN?

Clauza funcționează prin compararea coloanei specificate cu fiecare valoare din listă. Dacă coloana se potrivește cu oricare dintre valorile din listă, rândul este inclus în setul de rezultate.

Să presupunem că aveți un tabel numit „clienți” care constă din trei coloane: „codul_client”, „nume_client” și „țară”. Doriți să preluați toți clienții din SUA, Canada și Mexic. Următoarea interogare vă va arăta cum este utilizată clauza WHERE IN: SELECT customer_id, customer_name, country FROM customers WHERE country IN ('USA','Canada','Mexic');

Exemple de SQL WHERE IN Clauza

Dacă doriți să filtrați rezultatele pe baza unei liste de valori posibile, puteți utiliza clauza SQL WHERE IN. Această clauză oferă o modalitate ușoară de a selecta rânduri în care o anumită coloană se potrivește cu una dintr-un set de valori.

Iată cinci exemple despre cum poate fi utilizată clauza:

  1. Folosind clauza SQL WHERE IN cu o singură valoare

Să presupunem că doriți să selectați toate rândurile dintr-un tabel în care coloana de stare este setată la „publicat”. Puteți face acest lucru folosind următoarea instrucțiune SQL:

SELECT * 
FROM my_table 
WHERE status IN ('published');

Acest lucru va returna toate rândurile în care coloana de stare este setată la „publicat”.

  1. Folosind clauza SQL WHERE IN cu valori multiple

Acum să presupunem că doriți să selectați toate rândurile în care coloana de stare este setată fie la „publicat”, fie la „schiță”. Puteți utiliza următoarea instrucțiune SQL:

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

Aceasta va returna toate rândurile în care coloana de stare este setată la „publicat” sau „schiță”. De asemenea, puteți adăuga câte valori doriți, separate prin virgule.

  1. Folosind clauza SQL WHERE IN cu instrucțiunea Delete

Să presupunem că aveți un tabel numit „clienți” cu următoarele date:

SQL WHERE IN – explicat cu exemple

Pentru a șterge rânduri din acest tabel pe baza mai multor valori din coloana „Oraș”, clauza SQL WHERE IN poate fi utilizată cu o instrucțiune DELETE, așa cum se arată în următoarea interogare:

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

Această declarație va șterge toate rândurile din tabelul „clienți” în care numele coloanei „Oraș” se potrivesc cu oricare dintre valorile din listă, adică „New York”, „Chicago”, „Miami”. În exemplul de mai sus, va șterge primul, al treilea și al cincilea rând din tabel.

Rețineți că atunci când utilizați clauza WHERE IN cu o instrucțiune DELETE, ar trebui să fiți foarte atenți pentru a evita greșelile, asigurându-vă că ștergeți datele corecte. Cel mai bine este să vă testați interogarea pe un subset mic de date înainte de a o rula pe întreaga bază de date.

  1. Utilizarea operatorului WHERE IN și a clauzei SQL WHERE pentru a filtra datele pe baza valorilor numerice

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

Această interogare va returna toate rândurile din tabelul „clienți” în care coloana de vârstă conține valorile numerice 25, 30 sau 35, iar coloana orașului conține valoarea „Londra”.

Rețineți că operatorul WHERE IN este un operator logic care vă permite doar să specificați mai multe valori pentru o singură coloană. Instrucțiunea SELECT este folosită pentru a prelua date dintr-un tabel, iar clauza WHERE este folosită pentru a filtra datele în funcție de condiții specifice.

În acest exemplu, interogarea returnează rânduri din tabelul „clienți” în care coloana de vârstă se potrivește cu una dintre valorile numerice specificate, iar coloana orașului se potrivește cu valoarea „Londra”. Numele coloanelor folosite în această interogare sunt „vârstă” și „oraș”, iar tabelul interogat este „clienți”.

  1. Folosind WHERE IN cu instrucțiunea SELECT și operatorul IN.

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

În acest exemplu, folosim o subinterogare pentru a prelua toate ID-urile clienților din tabelul „clienți” în care coloana de țară conține valoarea „SUA”. Apoi folosim operatorul WHERE IN pentru a filtra tabelul „comenzi” pe baza acelor ID-uri de client.

Această interogare va returna toate rândurile din tabelul de comenzi în care coloana customer_id se potrivește cu unul dintre ID-urile de client returnate de subinterogare.

Amintiți-vă, operatorul WHERE IN este un operator de comparație care vă permite să comparați o coloană cu o listă de valori. În acest caz, comparăm coloana customer_id cu o listă de ID-uri de client returnate de subinterogare.

Folosind acest operator și o subinterogare, puteți filtra datele pe baza unor criterii specifice și puteți prelua numai datele care corespund nevoilor dumneavoastră.

2 Beneficii majore ale utilizării SQL Clauza WHERE IN?

  1. Performanță îmbunătățită a interogărilor

Clauza oferă unul dintre cele mai mari beneficii în ceea ce privește performanța interogărilor. La filtrarea datelor pe baza mai multor valori, utilizarea clauzei poate fi mult mai eficientă și mai rapidă decât scrierea mai multor clauze WHERE cu operatori OR. Acest lucru se datorează faptului că motorul bazei de date poate optimiza planul de execuție a interogărilor pentru a prelua eficient datele necesare.

De exemplu, luați în considerare următoarele interogări SQL cu tabelul „clienți”, unde încercăm să identificăm detaliile clienților în funcție de țările lor.

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – explicat cu exemple

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – explicat cu exemple

După cum se vede în exemplul de mai sus, utilizarea clauzei poate duce la o îmbunătățire semnificativă a performanței interogărilor și vă poate economisi mai mult timp. Este mai ușor să selectați toate țările simultan, decât să selectați țară după țară folosind operatorul OR într-un set de date mult mai mare.

  1. Scriere simplificată a interogărilor

Un alt avantaj major al utilizării clauzei SQ L WHERE IN este că poate simplifica procesul de scriere a interogărilor complexe. Când trebuie să filtrați datele pe baza mai multor valori, utilizarea mai multor clauze WHERE cu operatori OR poate deveni rapid greoaie și dificil de gestionat.

Utilizarea clauzei vă permite să specificați toate valorile pe care doriți să le filtrați într-o singură declarație, făcând interogările mai ușor de citit și de întreținut. Acest lucru poate fi util în special atunci când lucrați cu seturi de date mari sau când trebuie să scrieți interogări complexe cu mai multe condiții.

De exemplu, luați în considerare următoarea interogare SQL:

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

În ambele interogări din exemplul de mai sus, interogarea returnează toate produsele „electronice” de la Apple, Samsung și Sony.

Cu toate acestea, utilizarea clauzei WHERE IN, așa cum se vede în ultima interogare, poate simplifica procesul de utilizare a interogărilor complexe și le face mai ușor de citit și de înțeles.

În plus, ajută și la evitarea erorilor și o face mai puțin consumatoare de timp.

Cuvântul nostru final

Felicitări! Acum știți cum să utilizați clauza SQL WHERE IN pentru a filtra datele pe baza unei liste de valori. Să evaluăm ceea ce am învățat:

Folosind WHERE IN, puteți simplifica o serie de interogări SQL și le puteți crea pentru a prelua o ieșire scrisă mai eficient.

Amintiți-vă, WHERE IN este prescurtarea pentru mai multe condiții SAU, astfel încât poate înlocui liste lungi de instrucțiuni SAU. În plus, clauza poate fi utilizată cu subinterogări, permițându-vă să filtrați datele în funcție de rezultatele unei alte interogări.

Când utilizați WHERE IN, este important să luați în considerare tipurile de date ale valorilor pe care le comparați. Dacă tipurile de date nu se potrivesc, poate fi necesar să utilizați funcțiile de conversie a tipurilor pentru a asigura o comparație precisă.

În general, clauza SQL WHERE IN este o sintaxă puternică, dar de bază pentru filtrarea datelor în interogările SQL. Prin stăpânirea acestei clauze, puteți îmbunătăți performanța și lizibilitatea codului dvs. SQL, facilitând lucrul și întreținerea pe termen lung.

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți