SQL WHERE IN – пояснення на прикладах

Ви втомилися вручну фільтрувати дані у своїй базі даних і шукаєте більш ефективний спосіб фільтрації даних із кількома значеннями? SQL WHERE IN може бути потрібним рішенням!

Якщо ви працюєте з базами даних SQL, ви, ймовірно, стикалися з оператором WHERE IN. Цей оператор використовується для визначення кількох значень у реченні WHERE, що дозволяє точніше фільтрувати дані.

За допомогою цього оператора ви можете вказати список значень для зіставлення зі стовпцем у вашій таблиці. Цей список можна жорстко закодувати або створити за допомогою підзапиту, що дає вам велику гнучкість у фільтрації даних.

SQL WHERE IN – пояснення на прикладах

Наприклад, ви можете використовувати оператор IN, щоб знайти всіх клієнтів із певного списку міст або відфільтрувати результати на основі набору ідентифікаторів продуктів.

Однією з переваг використання оператора WHERE IN є те, що він може зробити ваші запити ефективнішими. Використовуючи список значень замість кількох умов АБО, ви можете зменшити кількість обробки, яку має виконати база даних.

Це може бути особливо важливо під час роботи з великими наборами даних або складними запитами, де навіть невелика оптимізація може значно змінити продуктивність.

Зміст

Що таке пропозиція SQL WHERE IN?

Речення SQL WHERE IN використовується для фільтрації даних на основі списку значень. Це дозволяє вказати кілька значень у реченні WHERE, використовуючи скорочення для кількох умов OR. Синтаксис пропозиції WHERE IN для SQL Server , PostgreSQL, MYSQL і Oracle такий:

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

Якщо ми розглянемо наведений вище оператор SELECT, речення WHERE IN дозволяє отримати дані з таблиці, де вказаний стовпець відповідає будь-якому зі значень у списку. Це корисний синтаксис для фільтрації даних, коли у вас є певний набір значень для пошуку.

Як працює пропозиція SQL WHERE IN?

Речення працює шляхом порівняння вказаного стовпця з кожним значенням у списку. Якщо стовпець відповідає будь-якому зі значень у списку, рядок включається до набору результатів.

Припустімо, у вас є таблиця під назвою «клієнти», яка складається з трьох стовпців: «customer_id», «customer_name» і «country». Ви хочете отримати всіх клієнтів із США, Канади та Мексики. Наступний запит покаже вам, як використовується речення WHERE IN: SELECT customer_id, customer_name, country FROM customers WHERE country IN ('USA','Canada','Mexico');

Приклади пропозиції SQL WHERE IN

Якщо ви хочете відфільтрувати результати на основі списку можливих значень, ви можете скористатися пропозицією SQL WHERE IN. Цей пункт забезпечує простий спосіб вибору рядків, де певний стовпець відповідає одному з набору значень.

Ось п’ять прикладів того, як можна використовувати це речення:

  1. Використання речення SQL WHERE IN з одним значенням

Припустімо, ви хочете вибрати всі рядки в таблиці, де в стовпці статусу встановлено значення «опубліковано». Ви можете зробити це за допомогою наступного оператора SQL:

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

Це поверне всі рядки, у стовпці статусу яких встановлено значення «опубліковано».

  1. Використання пропозиції SQL WHERE IN із кількома значеннями

Тепер припустімо, що ви хочете вибрати всі рядки, у стовпці статусу яких встановлено значення «опубліковано» або «чернетка». Ви можете використовувати такий оператор SQL:

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

Це поверне всі рядки, у стовпці статусу яких встановлено значення «опубліковано» або «чернетка». Крім того, ви можете додати скільки завгодно значень, розділених комами.

  1. Використання пропозиції SQL WHERE IN із оператором Delete

Припустимо, у вас є таблиця під назвою «клієнти» з такими даними:

SQL WHERE IN – пояснення на прикладах

Щоб видалити рядки з цієї таблиці на основі кількох значень у стовпці «Місто», речення SQL WHERE IN можна використати з оператором DELETE, як показано в такому запиті:

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

Цей оператор видалить усі рядки з таблиці «клієнти», де назви стовпців «Місто» відповідають будь-якому зі значень у списку, наприклад «Нью-Йорк», «Чикаго», «Маямі». У наведеному вище прикладі буде видалено перший, третій і п’ятий рядки з таблиці.

Зауважте, що використовуючи речення WHERE IN із оператором DELETE, ви повинні бути дуже обережними, щоб уникнути помилок, переконавшись, що ви видаляєте правильні дані. Найкраще протестувати свій запит на невеликій підмножині даних, перш ніж запускати його на всій базі даних.

  1. Використання оператора WHERE IN і пропозиції SQL WHERE для фільтрації даних на основі числових значень

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

Цей запит поверне всі рядки з таблиці «клієнти», де стовпець віку містить числові значення 25, 30 або 35, а стовпець міста містить значення «Лондон».

Зауважте, що оператор WHERE IN є логічним оператором, який дозволяє лише вказувати кілька значень для одного стовпця. Інструкція SELECT використовується для отримання даних із таблиці, а речення WHERE використовується для фільтрації даних на основі певних умов.

У цьому прикладі запит повертає рядки з таблиці «клієнти», де стовпець віку відповідає одному із указаних числових значень, а стовпець міста — значенню «Лондон». Назви стовпців, які використовуються в цьому запиті: «вік» і «місто», а запитувана таблиця — «клієнти».

  1. Використання WHERE IN з оператором SELECT і оператором IN.

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

У цьому прикладі ми використовуємо підзапит для отримання всіх ідентифікаторів клієнтів із таблиці «клієнти», де стовпець країни містить значення «США». Потім ми використовуємо оператор WHERE IN для філ��трації таблиці «замовлень» на основі цих ідентифікаторів клієнтів.

Цей запит поверне всі рядки з таблиці замовлень, де стовпець customer_id відповідає одному з ідентифікаторів клієнтів, повернутих підзапитом.

Пам’ятайте, що оператор WHERE IN є оператором порівняння, який дозволяє порівнювати стовпець зі списком значень. У цьому випадку ми порівнюємо стовпець customer_id зі списком ідентифікаторів клієнтів, які повертає підзапит.

Використовуючи цей оператор і підзапит, ви можете фільтрувати дані на основі певних критеріїв і отримувати лише ті дані, які відповідають вашим потребам.

2 основні переваги використання пропозиції SQL WHERE IN?

  1. Покращена продуктивність запитів

Цей пункт пропонує одну з найбільших переваг щодо продуктивності запитів. Під час фільтрації даних на основі кількох значень використання пропозиції може бути набагато ефективнішим і швидшим, ніж написання кількох пропозицій WHERE з операторами OR. Це тому, що механізм бази даних може оптимізувати план виконання запиту для ефективного отримання необхідних даних.

Наприклад, розглянемо наступні SQL- запити з таблицею «клієнти», де ми намагаємося визначити деталі клієнта на основі їхніх країн.

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

SQL WHERE IN – пояснення на прикладах

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

SQL WHERE IN – пояснення на прикладах

Як видно з наведеного вище прикладу, використання пропозиції може призвести до значного покращення продуктивності запитів і заощадити ваш час. Простіше вибрати всі країни одночасно, ніж вибирати країну за країною за допомогою оператора АБО в набагато більшому наборі даних.

  1. Спрощене написання запитів

Іншою великою перевагою використання речення SQ L WHERE IN є те, що воно може спростити процес написання складних запитів. Коли вам потрібно відфільтрувати дані на основі кількох значень, використання кількох пропозицій WHERE з операторами OR може швидко стати громіздким і складним для керування.

Використання речення дозволяє вказати всі значення, які ви хочете відфільтрувати, в одному операторі, що полегшить читання та підтримку запитів. Це може бути особливо корисним під час роботи з великими наборами даних або коли вам потрібно написати складні запити з кількома умовами.

Наприклад, розглянемо такий 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') 

В обох запитах із наведеного вище прикладу запит повертає всі «електронні» продукти від Apple, Samsung і Sony.

Однак використання пропозиції WHERE IN, як це видно в останньому запиті, може спростити процес використання складних запитів і зробити їх легшими для читання та розуміння.

Крім того, це також допомагає уникнути помилок і зменшує витрати часу.

Наше заключне слово

Щиро вітаю! Тепер ви знаєте, як використовувати речення SQL WHERE IN для фільтрації даних на основі списку значень. Давайте оцінимо, чого ми навчилися:

Використовуючи WHERE IN, ви можете спростити ряд SQL-запитів і створити їх для отримання ефективнішого написаного виводу.

Пам’ятайте, WHERE IN є скороченням для кількох умов АБО, тому воно може замінити довгі списки операторів АБО. Крім того, речення можна використовувати з підзапитами, дозволяючи фільтрувати дані на основі результатів іншого запиту.

Використовуючи WHERE IN, важливо враховувати типи даних значень, які ви порівнюєте. Якщо типи даних не збігаються, вам може знадобитися скористатися функціями перетворення типів, щоб забезпечити точне порівняння.

Загалом, пропозиція SQL WHERE IN є потужним, але базовим синтаксисом для фільтрації даних у запитах SQL. Опанувавши цей пункт, ви зможете підвищити продуктивність і читабельність свого коду SQL, що полегшить роботу з ним і підтримку в довгостроковій перспективі.


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.