Въведение в клаузата КЪДЕ
Както всички знаем, че SQL (Structured Query Language) е един от най-често използваните езици за релационни бази данни (база данни, в която записите се записват под формата на редове и колони). В SQL запитванията се задействат, за да се удари в базата данни за извършване на желаните операции, било то DML (език за манипулиране на данни), DDL (език за дефиниране на данни) или DCL (език за контрол на данните). SQL използва някои клаузи като WHERE, GROUP BY, HAVING, ORDER BY, които извършват конкретни операции. Клаузата WHERE се използва за прилагане на условия и филтриране на резултатите, докато извлича или манипулира всички данни от базата данни. Използва се с оператора SELECT, UPDATE и DELETE, като клаузата WHERE не е задължителна за използване с тях.
Като цяло, условия, КЪДЕ клауза,
- Използва се за филтриране на редовете според дадените критерии.
- Ограничава броя върнати редове.
- Следва логично условие, което връща или вярно, или невярно.
- Работи само ако споменатото условие върне вярно.
- Може да се използва с оператори SELECT, UPDATE или DELETE.
1. Синтаксис със SELECT
SELECT column1, column2, column3… from table_name WHERE condition;
Тук SELECT ще извлече всички данни от колона1, колона2, колона3 от таблицата (наречена като име на таблица), а клаузата WHERE прилага условията към данните, извлечени от оператора SELECT и филтрира това според условието, споменато в оператора.
2. Синтаксис с UPDATE
UPDATE table_name SET column_name = value WHERE condition;
Тук Update ще актуализира стойността за името на колона с предоставено, когато условие.
Сравнителните и логическите оператори също могат да се използват с условието WHERE като и или, не, LIKE, <, = и т.н.
3. Синтаксис с DELETE
DELETE from table_name WHERE condition;
В горния синтаксис:
таблица_име | Име на таблицата, върху която трябва да се извършват операции. |
състояние | Посочва състоянието на филтъра, по което трябва да се филтрират записи |
column_list | Име на колоните на таблицата |
Примери
Помислете за таблица на учениците с различни колони и стойности, споменати по-долу:
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percentage |
1 | Рахул | Агра | 9557806625 | 85 |
2 | Ankit | Делхи | 8855664471 | 75 |
3 | Shailendra | Нойда | 7213457896 | 92 |
Сценарий №1
Извличане на идентификатор на ученик, име на студент, адрес и процент от всички онези студенти, които са получили повече от 80 процента.
Запитване
SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;
Резултат:
Брой записи: 2
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Рахул | Агра | 85 |
3 | Shailendra | Нойда | 92 |
Сценарий №2
Актуализирайте процента на Рахул с 2 процента.
Запитване
UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';
Резултат:
Засегнати редове: 1
Ако натиснете заявката, за да видите актуализираните полета:
Запитване
SELECT * from students WHERE Stu_name ='Rahul';
Резултат:
Брой записи: 1
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Рахул | Агра | 87 |
Сценарий №3
Ученикът Анкит напусна училището, така че изтрийте целия запис на него от таблицата.
Запитване
DELETE from students WHERE Stu_name = 'Ankit';
Резултат:
Засегнати редове: 1
За да видите актуализирания ученик на таблицата:
Запитване
SELECT * from students;
Резултат:
Засегнати редове: 2
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percenta ge |
1 | Рахул | Агра | 9557806625 | 87 |
3 | Shailendra | Нойда | 7213457896 | 92 |
КЪДЕ клауза Операции
Клаузата WHERE съдържа условията, по които се филтрират стойностите на базата данни. С клаузата WHERE могат да се използват различни оператори. Някои от тях са дадени по-долу в таблицата с пример:
S.No. | Оператор | описание | пример |
1. | И | Връща истина, ако и двете условия съвпадат | ИЗБЕРЕТЕ * от студенти WHERE Stu_name = 'Rahul' и Stu_percentage = 85; |
2. | ИЛИ | Връща истина, ако някой от
условие съответства | ИЗБЕРЕТЕ * от учениците WHERE Stu_name = 'Rahul' или Stu_name = 'Shalendra'; |
3. | ПО | Стойността съвпада с която и да е от посочените множество стойности | ИЗБЕРЕТЕ * от ученици, КЪДЕ Stu_city IN ('AGRA', 'NOIDA'); |
4. | НЕ В | Стойността не съвпада с нито една от множеството посочени стойности | ИЗБЕРЕТЕ * от ученици, КЪДЕ Stu_city НЕ В (AGRA ', ' NOIDA '); |
5. | = | равен | ИЗБЕРЕТЕ * от студенти КЪДЕ
Stu_name = 'Rahul; |
6. | > | По-голям от | ИЗБЕРЕТЕ * от ученици, КЪДЕ Stu_percentage> 80; |
7. | < | По-малко от | ИЗБЕРЕТЕ * от ученици, КЪДЕ Stu_percentage <78; |
8. | > = | По-голям или равен на | ИЗБЕРЕТЕ * от ученици, ГДЕ Stu_percenetage> = 70; |
9. | <= | По-малко или равно на | ИЗБЕРЕТЕ * от учениците, КЪДЕ Stu_percenetage <= 70; |
10. | Не е равно на | ИЗБЕРЕТЕ * от ученици, КЪДЕТО Stu_percentage 75; | |
11. | мЕЖДУ | Стойността се намира между определен диапазон | ИЗБЕРЕТЕ * от студенти КЪДЕ
Stu_percenttage МЕЖДУ 70 И 85; |
12. | КАТО | Стойностите съответстват на определен модел. Използва се за търсене на заместващи символи | ИЗБЕРЕТЕ * от студенти, КЪДЕ Stu_city ПОДОБРЯВА 'AG%'; |
Забележка: Има едно нещо, което трябва да се има предвид, когато се работи с клаузата WHERE е, че докато посочвате условието, числовите стойности не се цитират в единични кавички (''), докато текстовите стойности (varchar) трябва да бъдат цитирани в единични кавички ('').
Как работи клаузата WHERE в SQL?
Въпреки че горните примери ясно показват как клаузата WHERE се използва за филтриране на данните според условието, посочено от потребителя, и позволява по-бързото изпълнение на SQL код, тъй като броят на върнатите записи е ограничен от условието. SQL Query оптимизаторът работи първо на заявката, използвайки FROM (таблица, над която трябва да се извърши операция), за да извлече, изтрие или актуализира и след това да приложи клаузата WHERE към резултатите.
Клаузата WHERE може да се използва само когато трябва да филтрираме резултатите в една таблица или обединяване на таблици, тъй като тя работи на данни от редове, но когато в случай на функции агрегиране, WHERE не може да се използва за прилагане на условия към заявката.
Нека разгледаме сценария, при който клаузата WHERE не може да се използва:
Сценарий: В таблицата с филми извлечете всички подробности за филмите, които печелят повече от 10 крори за определени години като (2000, 2010, 2012..etc)
Запитване:
SELECT * from movies GROUP BY Year_released HAVING earnings > 10;
Горният пример използва клавиша HAVING вместо WHERE, тъй като клаузата WHERE не може да се използва в съвкупните функции, докато HAVING може и това е също една от основните разлики между клавиша WHERE и HAVING
Заключение - клауза за SQL WHERE
Горното обяснение ясно показва използването на клаузата WHERE и нейната реализация за различни сценарии в SQL заявки. Преди да напишете някакво запитване, трябва да имате предвид използването на всяка клауза и сценария, при който тази конкретна клауза или ключова дума трябва да се използва.
Препоръчителни статии
Това е ръководство за клаузата за SQL WHERE. Тук обсъждаме използването на клаузата WHERE и нейното прилагане за различни сценарии. Можете да разгледате и другите ни предложени статии -
- Видове съединения в SQL
- Wildcards в MySQL
- SQL Insert Query
- Външен ключ в SQL
- Топ 6 вида съединения в MySQL с примери