SQL WHERE IN – wyjaśnione na przykładach

Czy jesteś zmęczony ręcznym filtrowaniem danych w bazie danych i szukasz bardziej wydajnego sposobu filtrowania danych z wieloma wartościami? SQL WHERE IN może być rozwiązaniem, którego potrzebujesz!

Jeśli pracujesz z bazami danych SQL, prawdopodobnie spotkałeś się z operatorem WHERE IN. Ten operator służy do określania wielu wartości w klauzuli WHERE, umożliwiając dokładniejsze filtrowanie danych.

Za pomocą tego operatora możesz określić listę wartości do dopasowania do kolumny w tabeli. Ta lista może być zakodowana na stałe lub wygenerowana przez podzapytanie, co zapewnia dużą elastyczność w sposobie filtrowania danych.

SQL WHERE IN – wyjaśnione na przykładach

Możesz na przykład użyć operatora IN, aby znaleźć wszystkich klientów z określonej listy miast lub filtrować wyniki na podstawie zestawu identyfikatorów produktów.

Jedną z zalet używania operatora WHERE IN jest to, że może on zwiększyć wydajność zapytań. Używając listy wartości zamiast wielu warunków LUB, można zmniejszyć ilość przetwarzania, które musi wykonać baza danych.

Może to być szczególnie ważne podczas pracy z dużymi zbiorami danych lub złożonymi zapytaniami, gdzie nawet niewielkie optymalizacje mogą mieć duży wpływ na wydajność.

Spis treści

Co to jest klauzula SQL WHERE IN?

Klauzula SQL WHERE IN służy do filtrowania danych na podstawie listy wartości. Pozwala określić wiele wartości w klauzuli WHERE przy użyciu skrótu dla wielu warunków OR. Składnia klauzuli WHERE IN dla SQL Server , PostgreSQL, MYSQL i Oracle jest następująca:

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

Jeśli weźmiemy pod uwagę powyższą instrukcję SELECT, klauzula WHERE IN umożliwia pobranie danych z tabeli, w której określona kolumna pasuje do dowolnej wartości na liście. Jest to składnia przydatna do filtrowania danych, gdy trzeba wyszukać określony zestaw wartości.

Jak działa klauzula SQL WHERE IN?

Klauzula działa poprzez porównanie określonej kolumny z każdą wartością na liście. Jeśli kolumna pasuje do dowolnej wartości na liście, wiersz jest uwzględniany w zestawie wyników.

Załóżmy, że masz tabelę o nazwie „klienci”, która składa się z trzech kolumn: „identyfikator_klienta”, „nazwa_klienta” i „kraj”. Chcesz odzyskać wszystkich klientów z USA, Kanady i Meksyku. Poniższe zapytanie pokaże, w jaki sposób używana jest klauzula WHERE IN: SELECT identyfikator_klienta, nazwa_klienta, kraj FROM klienci WHERE kraj IN ('USA','Kanada','Meksyk');

Przykłady klauzuli SQL WHERE IN

Jeśli chcesz filtrować wyniki na podstawie listy możliwych wartości, możesz użyć klauzuli SQL WHERE IN. Ta klauzula zapewnia łatwy sposób wybierania wierszy, w których określona kolumna pasuje do jednego z zestawów wartości.

Oto pięć przykładów, w jaki sposób można użyć klauzuli:

  1. Używanie klauzuli SQL WHERE IN z pojedynczą wartością

Załóżmy, że chcesz zaznaczyć wszystkie wiersze w tabeli, w której kolumna stanu ma wartość „opublikowano”. Możesz to zrobić za pomocą następującej instrukcji SQL:

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

Spowoduje to zwrócenie wszystkich wierszy, w których kolumna stanu ma wartość „opublikowano”.

  1. Używanie klauzuli SQL WHERE IN z wieloma wartościami

Załóżmy teraz, że chcesz zaznaczyć wszystkie wiersze, w których kolumna stanu ma wartość „opublikowana” lub „wersja robocza”. Możesz użyć następującej instrukcji SQL:

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

Spowoduje to zwrócenie wszystkich wierszy, w których kolumna stanu ma wartość „opublikowano” lub „wersja robocza”. Możesz także dodać tyle wartości, ile chcesz, oddzielając je przecinkami.

  1. Korzystanie z klauzuli SQL WHERE IN z instrukcją usuwania

Załóżmy, że masz tabelę o nazwie „klienci” z następującymi danymi:

SQL WHERE IN – wyjaśnione na przykładach

Aby usunąć wiersze z tej tabeli na podstawie wielu wartości w kolumnie „Miasto”, można użyć klauzuli SQL WHERE IN z instrukcją DELETE, jak pokazano w poniższym zapytaniu:

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

Ta instrukcja usunie wszystkie wiersze z tabeli „klienci”, w których nazwy kolumn „Miasto” pasują do dowolnej wartości na liście, np. „Nowy Jork”, „Chicago”, „Miami”. W powyższym przykładzie usunie pierwszy, trzeci i piąty wiersz z tabeli.

Należy pamiętać, że używając klauzuli WHERE IN z instrukcją DELETE, należy bardzo uważać, aby uniknąć błędów, upewniając się, że usuwane są prawidłowe dane. Najlepiej przetestować zapytanie na małym podzbiorze danych przed uruchomieniem go w całej bazie danych.

  1. Użycie operatora WHERE IN i klauzuli SQL WHERE do filtrowania danych na podstawie wartości liczbowych

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

To zapytanie zwróci wszystkie wiersze z tabeli „klienci”, w której kolumna wiek zawiera wartości liczbowe 25, 30 lub 35, a kolumna miasto zawiera wartość „Londyn”.

Należy zauważyć, że operator WHERE IN jest operatorem logicznym, który umożliwia określenie wielu wartości tylko dla jednej kolumny. Instrukcja SELECT służy do pobierania danych z tabeli, a klauzula WHERE służy do filtrowania danych na podstawie określonych warunków.

W tym przykładzie zapytanie zwraca wiersze z tabeli „klienci”, w których kolumna wieku odpowiada jednej z określonych wartości liczbowych, a kolumna miasta odpowiada wartości „Londyn”. Nazwy kolumn użyte w tym zapytaniu to „wiek” i „miasto”, a tabela, której dotyczy zapytanie, to „klienci”.

  1. Użycie WHERE IN z instrukcją SELECT i operatorem IN.

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

W tym przykładzie używamy podzapytania do pobrania wszystkich identyfikatorów klientów z tabeli „klienci”, w której kolumna kraju zawiera wartość „USA”. Następnie używamy operatora WHERE IN do filtrowania tabeli „zamówienia” na podstawie tych identyfikatorów klientów.

To zapytanie zwróci wszystkie wiersze z tabeli zamówień, w których kolumna id_klienta pasuje do jednego z identyfikatorów klientów zwróconych przez podzapytanie.

Pamiętaj, że operator WHERE IN jest operatorem porównania, który umożliwia porównanie kolumny z listą wartości. W tym przypadku porównujemy kolumnę customer_id z listą identyfikatorów klientów zwróconych przez podzapytanie.

Korzystając z tego operatora i podzapytania, możesz filtrować dane na podstawie określonych kryteriów i pobierać tylko te dane, które spełniają Twoje potrzeby.

2 główne zalety używania SQL WHERE IN klauzula?

  1. Poprawiona wydajność zapytań

Klauzula oferuje jedną z największych korzyści pod względem wydajności zapytań. Podczas filtrowania danych na podstawie wielu wartości użycie klauzuli może być znacznie wydajniejsze i szybsze niż pisanie wielu klauzul WHERE z operatorami OR. Dzieje się tak, ponieważ silnik bazy danych może zoptymalizować plan wykonywania zapytań, aby skutecznie pobrać niezbędne dane.

Rozważmy na przykład następujące zapytania SQL z tabelą „klienci”, w których próbujemy zidentyfikować szczegóły klientów na podstawie ich krajów.

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

SQL WHERE IN – wyjaśnione na przykładach

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

SQL WHERE IN – wyjaśnione na przykładach

Jak widać na powyższym przykładzie, użycie klauzuli może spowodować znaczną poprawę wydajności zapytań i zaoszczędzić więcej czasu. Łatwiej jest wybrać wszystkie kraje naraz niż wybierać kraj po kraju za pomocą operatora OR w znacznie większym zbiorze danych.

  1. Uproszczone pisanie zapytań

Inną ważną zaletą stosowania klauzuli SQ L WHERE IN jest to, że może ona uprościć proces pisania złożonych zapytań. Gdy trzeba filtrować dane na podstawie wielu wartości, używanie wielu klauzul WHERE z operatorami OR może szybko stać się uciążliwe i trudne w zarządzaniu.

Użycie klauzuli umożliwia określenie wszystkich wartości, które mają być filtrowane w jednej instrukcji, co ułatwia odczytywanie i obsługę zapytań. Może to być szczególnie przydatne podczas pracy z dużymi zestawami danych lub gdy trzeba pisać złożone zapytania z wieloma warunkami.

Rozważmy na przykład następujące zapytanie 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') 

W obu zapytaniach z powyższego przykładu zapytanie zwraca wszystkie produkty „elektroniki” Apple, Samsung i Sony.

Jednak użycie klauzuli WHERE IN, jak widać w tym ostatnim zapytaniu, może uprościć proces korzystania ze złożonych zapytań i sprawić, że będą one łatwiejsze do odczytania i zrozumienia.

Ponadto pomaga również uniknąć błędów i sprawia, że ​​​​jest to mniej czasochłonne.

Nasze ostatnie słowo

Gratulacje! Wiesz już, jak używać klauzuli SQL WHERE IN do filtrowania danych na podstawie listy wartości. Oceńmy, czego się nauczyliśmy:

Korzystając z WHERE IN, możesz uprościć zakres zapytań SQL i utworzyć je w celu wydajniejszego uzyskiwania danych wyjściowych.

Pamiętaj, że WHERE IN jest skrótem dla wielu warunków LUB, więc może zastąpić długie listy instrukcji LUB. Dodatkowo klauzula może być używana z podzapytaniami, umożliwiając filtrowanie danych na podstawie wyników innego zapytania.

Podczas korzystania z funkcji WHERE IN należy wziąć pod uwagę typy danych porównywanych wartości. Jeśli typy danych nie są zgodne, może być konieczne użycie funkcji konwersji typów w celu zapewnienia dokładnego porównania.

Ogólnie rzecz biorąc, klauzula SQL WHERE IN jest potężną, ale podstawową składnią do filtrowania danych w zapytaniach SQL. Dzięki opanowaniu tej klauzuli można poprawić wydajność i czytelność kodu SQL, ułatwiając pracę i konserwację w dłuższej perspektywie.

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.