Параметр WHERE
в мові SQL виконує фільтрацію рядків які отримуються після запиту, згідно з заданими умовами. Умови задаються предикатами.
Приклади
WHERE
це зарезервоване слово в SQL.
Пункт WHERE використовується разом з виразом SQL DML, і має наступну форму:
SQL-DML-Statement FROM table_name WHERE predicate
повертаються всі рядки для яких предикат в пункті WHERE
Істина. Рядки для яких предикат має значення Хиба або Невідомо (NULL) вважаються такими, що не відповідають критерію відбору.
Наступний запит повертає рядки з mytable для яких mycol більше ніж 100.
SELECT * FROM mytable WHERE mycol > 100
Натупний вираз DELETE
видаляє рядки, з mytable де mycol або NULL, або дорівнює 100.
DELETE FROM mytable WHERE mycol IS NULL OR mycol = 100
Предикати
Прості предикати використовують операцію з набору =
, <>
, >
, >=
, <
, <=
, IN
, BETWEEN
, LIKE
, IS NULL
або IS NOT NULL
.
При потребі предикати можуть бути відокремлені дужками. Ключові слова AND
і OR
можуть бути використані для об'єднання двох предикатів в один новий. Якщо утворюється багато комбінацій, то дужки можна використати для визначення порядку обчислення. Без дужок AND
має вищий пріоритет ніж OR
.
Наступний приклад видаляє рядки з mytable де значення mycol більше ніж 100 та значення item дорівнює рядку 'Hammer':
DELETE FROM mytable WHERE mycol > 100 AND item = 'Hammer'
IN
IN
знаходить всі значення, що присутні в поданому наборі.
SELECT ename WHERE ename IN ('value1', 'value2', ...)
Тотожно з
SELECT ename WHERE ename='value1' OR ename='value2'
окрім того, що в другому варіанті можливо порівнювати різні стовпці, в той час при використанні IN
ні.
BETWEEN
BETWEEN
знаходить всі значення в заданих межах.
SELECT ename WHERE ename BETWEEN 'value1' AND 'value2'
Будуть відібрані всі рядки зі значеннями між 'value1' та 'value2', включно.
LIKE
LIKE
знаходить рядки, що відповідають певному шаблону.
- Завершальна підстановка
- Знаходить будь-який рядок, що починається з літери 'S'
SELECT ename FROM emp WHERE ename LIKE 'S%';
- Початкова підстановка
- Знаходить будь-який рядок, що завершується літерою 'S'
SELECT ename FROM emp WHERE ename LIKE '%S';
- Комбінація підстановок
- Знайти будь-який рядок з літерою 'S'
SELECT ename FROM emp WHERE ename LIKE '%S%';
- Односимвольна підстановка
- Знайти будь-який рядок, що містить літеру 'A' з будь-яким наступним символом і потім 'E'
SELECT ename FROM emp WHERE ename LIKE '%A_E%';
SQL програмісти мають бути обережними з використанням предиката LIKE
через його негативний вплив на швидкодію.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Parametr b WHERE b v movi SQL vikonuye filtraciyu ryadkiv yaki otrimuyutsya pislya zapitu zgidno z zadanimi umovami Umovi zadayutsya predikatami PrikladiWHERE ce zarezervovane slovo v SQL Punkt WHERE vikoristovuyetsya razom z virazom SQL DML i maye nastupnu formu SQL DML Statement FROM table name WHERE predicate povertayutsya vsi ryadki dlya yakih predikat v punkti WHERE Istina Ryadki dlya yakih predikat maye znachennya Hiba abo Nevidomo NULL vvazhayutsya takimi sho ne vidpovidayut kriteriyu vidboru Nastupnij zapit povertaye ryadki z mytable dlya yakih mycol bilshe nizh 100 SELECT FROM mytable WHERE mycol gt 100 Natupnij viraz DELETE vidalyaye ryadki z mytable de mycol abo NULL abo dorivnyuye 100 DELETE FROM mytable WHERE mycol IS NULL OR mycol 100PredikatiProsti predikati vikoristovuyut operaciyu z naboru lt gt gt gt lt lt IN BETWEEN LIKE IS NULL abo IS NOT NULL Pri potrebi predikati mozhut buti vidokremleni duzhkami Klyuchovi slova AND i OR mozhut buti vikoristani dlya ob yednannya dvoh predikativ v odin novij Yaksho utvoryuyetsya bagato kombinacij to duzhki mozhna vikoristati dlya viznachennya poryadku obchislennya Bez duzhok AND maye vishij prioritet nizh OR Nastupnij priklad vidalyaye ryadki z mytable de znachennya mycol bilshe nizh 100 ta znachennya item dorivnyuye ryadku Hammer DELETE FROM mytable WHERE mycol gt 100 AND item Hammer IN IN znahodit vsi znachennya sho prisutni v podanomu nabori SELECT ename WHERE ename IN value1 value2 Totozhno z SELECT ename WHERE ename value1 OR ename value2 okrim togo sho v drugomu varianti mozhlivo porivnyuvati rizni stovpci v toj chas pri vikoristanni IN ni BETWEEN BETWEEN znahodit vsi znachennya v zadanih mezhah SELECT ename WHERE ename BETWEEN value1 AND value2 Budut vidibrani vsi ryadki zi znachennyami mizh value1 ta value2 vklyuchno LIKE LIKE znahodit ryadki sho vidpovidayut pevnomu shablonu Zavershalna pidstanovka Znahodit bud yakij ryadok sho pochinayetsya z literi S SELECT ename FROM emp WHERE ename LIKE S Pochatkova pidstanovka Znahodit bud yakij ryadok sho zavershuyetsya literoyu S SELECT ename FROM emp WHERE ename LIKE S Kombinaciya pidstanovok Znajti bud yakij ryadok z literoyu S SELECT ename FROM emp WHERE ename LIKE S Odnosimvolna pidstanovka Znajti bud yakij ryadok sho mistit literu A z bud yakim nastupnim simvolom i potim E SELECT ename FROM emp WHERE ename LIKE A E SQL programisti mayut buti oberezhnimi z vikoristannyam predikata LIKE cherez jogo negativnij vpliv na shvidkodiyu