logo

СКЛ КЛАУЗЕ

  • СКЛ клаузула нам помаже да преузмемо скуп или снопове записа из табеле.
  • СКЛ клаузула нам помаже да наведемо услов за колоне или записе табеле.

Различите клаузуле доступне у језику структурираних упита су следеће:

  1. ГДЕ КЛАУЗУЛА
  2. ГРУПА ПО КЛАУЗУЛИ
  3. ХАВИНГ КЛАУЗУЛА
  4. РЕД ПО КЛАУЗУЛИ

Хајде да видимо сваку клаузулу једну по једну са примером. Користићемо МиСКЛ базу података за писање упита у примерима.

подешавања веб претраживача

1. КЛАУЗУЛА ГДЕ

Клаузула ВХЕРЕ у СКЛ-у се користи са упитом СЕЛЕЦТ, који је једна од наредби језика за манипулацију подацима. Клаузуле ВХЕРЕ се могу користити за ограничавање броја редова који ће бити приказани у скупу резултата, генерално помаже у филтрирању записа. Враћа само оне упите који испуњавају специфичне услове клаузуле ВХЕРЕ. ВХЕРЕ клаузула се користи у СЕЛЕЦТ, УПДАТЕ, ДЕЛЕТЕ наредби итд.

ВХЕРЕ клаузула са СЕЛЕЦТ упитом

Симбол звездице се користи са клаузулом ВХЕРЕ у СЕЛЕЦТ упиту за преузимање свих вредности колона за сваки запис из табеле.

Синтакса клаузуле вхере са упитом за одабир за преузимање свих вредности колона за сваки запис из табеле:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Ако у складу са захтевом желимо да преузмемо само селективне колоне, користићемо доњу синтаксу:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Размотрите табелу запослених са следећим подацима:

Е_ИД Име Плата Цити Ознака Датум приступања Старост
1 Саксхи Кумари 50000 Мумбаи Вођа пројекта 2021-06-20 24
2 Тејасвини Наик 75000 Делхи Систем инжењер 2019-12-24 23
3 Ануја Схарма 40000 Јаипур Менаџер 2021-08-15 26
4 Анусхка Трипатхи 90000 Мумбаи Тестери софтвера 2021-06-13 24
5 Руцха Јагтап 45000 Бангалоре Вођа пројекта 2020-08-09 23
6 Рутуја Десхмукх 60000 Бангалоре Менаџер 2019-07-17 26
7 Бавискаров глас 55000 Јаипур Систем инжењер 2021-10-10 24
8 Ту је Шеик 45000 Пуне Софтверски инжењер 2020-09-10 26
9 Свати Кумари 50000 Пуне Тестери софтвера 2021-01-01 25
10 Маиури Пател 60000 Мумбаи Вођа пројекта 2020-10-02 24
Једанаест Симран Кханна 45500 Колхапур ХР 2019-01-02 26
12 Схивани Вагх 50500 Делхи Програмер 2016-09-10 25
13 Киран Махесхвари 50000 Насхик ХР 2013-12-12 23
14 Тејал Јаин 40000 Делхи Вођа пројекта 2017-11-10 25
петнаест Мохини Схах 38000 Пуне Програмер 2019-03-05 двадесет

Пример 1:

Напишите упит да бисте преузели све оне записе о запосленом где је плата већа од 50000.

упит:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

Горњи упит ће приказати све оне записе о запосленом код којих је плата већа од 50000. Плата испод 50000 неће бити приказана према условима.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Према очекиваном резултату, приказују се само они записи где је плата запосленог већа од 50000. У табели запосленог постоји шест записа који задовољавају дати услов.

Пример 2:

Напишите упит за ажурирање евиденције запосленог и поставите ажурирано име као „Харсхада Схарма“ где је назив града запосленог Џајпур.

упит:

 mysql> UPDATE employees SET Name = 'Harshada Sharma' WHERE City = 'Jaipur'; 

СКЛ КЛАУЗЕ

Горњи упит ће ажурирати име запосленог у „Харсхада Схарма“, где је град запосленог Џајпур.

Да бисмо проверили да ли су записи ажурирани или не, покренућемо упит за одабир.

 mysql> SELECT * FROM employees; 

СКЛ КЛАУЗЕ

Постоји само један запис у табели запослених где је град запосленог „Џајпур“. Ид записа је 3, што задовољава дати услов. Дакле, према датом услову, име запосленог са ИД-ом запосленог 3 је сада промењено у 'Харсхада Схарма'.

Пример 3:

Напишите упит за брисање записа запосленог где је датум придруживања запосленог „2013-12-12“.

упит:

 mysql> DELETE FROM employees WHERE Date_of_Joining = '2013-12-12'; 

СКЛ КЛАУЗЕ

Горњи упит ће избрисати податке о запосленику чији је датум придруживања '2013-12-12'.

Да бисмо проверили резултате горњег упита, извршићемо упит за одабир.

 mysql> SELECT *FROM employees; 

СКЛ КЛАУЗЕ

Постоји само један запис у табели запослених где је датум придруживања запосленог '2013-12-12'. Ид записа је 13, што задовољава дати услов. Дакле, према датом услову, запослени са ИД-ом 13 сада се брише из табеле запосленог.

2. ГРУПА ПО КЛАУЗУЛИ

Клаузула Гроуп Би се користи за распоређивање сличних врста записа у групе у језику структурираних упита. Клаузула Гроуп би у језику структурираних упита користи се са наредбом Селецт. Група по клаузула се поставља после клаузуле вхере у СКЛ наредби. Клаузула Гроуп Би се посебно користи са агрегатном функцијом, тј. мак (), мин (), авг (), сум (), цоунт () за груписање резултата на основу једне или више колона.

Синтакса групе по клаузули:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

Горња синтакса ће изабрати све податке или записе из табеле, али ће све те податке или записе распоредити у групе на основу назива колоне датог у упиту.

Синтакса групе по клаузули са агрегатним функцијама:

 SELECT COLUMNNAME1, Aggregate_FUNCTION (COLUMNNAME) FROM TABLENAME GROUP BY COLUMNNAME; 

Хајде да разумемо клаузулу Гроуп Би уз помоћ примера.

Размотрите табелу запослених са следећим подацима:

Е_ИД Име Плата Цити Ознака Датум приступања Старост
1 Саксхи Кумари 50000 Мумбаи Вођа пројекта 2021-06-20 24
2 Тејасвини Наик 75000 Делхи Систем инжењер 2019-12-24 23
3 Ануја Схарма 40000 Јаипур Менаџер 2021-08-15 26
4 Анусхка Трипатхи 90000 Мумбаи Тестери софтвера 2021-06-13 24
5 Руцха Јагтап 45000 Бангалоре Вођа пројекта 2020-08-09 23
6 Рутуја Десхмукх 60000 Бангалоре Менаџер 2019-07-17 26
7 Бавискаров глас 55000 Јаипур Систем инжењер 2021-10-10 24
8 Ту је Шеик 45000 Пуне Софтверски инжењер 2020-09-10 26
9 Свати Кумари 50000 Пуне Тестери софтвера 2021-01-01 25
10 Маиури Пател 60000 Мумбаи Вођа пројекта 2020-10-02 24
Једанаест Симран Кханна 45500 Колхапур ХР 2019-01-02 26
12 Схивани Вагх 50500 Делхи Програмер 2016-09-10 25
13 Киран Махесхвари 50000 Насхик ХР 2013-12-12 23
14 Тејал Јаин 40000 Делхи Вођа пројекта 2017-11-10 25
петнаест Мохини Схах 38000 Пуне Програмер 2019-03-05 двадесет

Пример 1:

Напишите упит да бисте приказали све записе табеле запослених, али групишите резултате на основу колоне старости.

упит:

 mysql> SELECT * FROM employees GROUP BY Age; 

Горњи упит ће приказати све записе табеле запослених, али груписане по колони старости.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Пример 2:

Напишите упит за приказ свих записа табеле запослених груписаних по називу и платама.

упит:

 mysql> SELECT * FROM employees GROUP BY Salary, Designation; 

Горњи упит ће приказати све записе табеле запослених, али груписане по колони плата и ознака.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Примери клаузуле Гроуп Би која користи агрегатне функције

Пример 1:

Напишите упит да бисте навели број запослених који раде на одређеној ознаци и групишите резултате према ознаци запосленог.

упит:

 mysql> SELECT COUNT (E_ID) AS Number_of_Employees, Designation FROM employees GROUP BY Designation; 

Горњи упит ће приказати ознаку са одговарајућим бројем запослених који раде на тој ознаци. Сви ови резултати биће груписани у колони за означавање.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Према очекиваном резултату, приказује се ознака са одговарајућим бројем запослених.

Пример 2:

Напишите упит да бисте приказали збир плате запосленог према граду групиран према старости запосленог.

упит:

 mysql> SELECT SUM (Salary) AS Salary, City FROM employees GROUP BY City; 

Горњи упит ће прво израчунати збир плата које раде у сваком граду, а затим ће приказати збир плата са одговарајућом платом, али груписан по колони старости.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Према очекиваном резултату, приказује се збир плате запослених према граду коме запослени припада. Ако два запослена припадају истом граду, онда ће бити у једној групи.

3. ИМАЈУЋИ КЛАУЗУЛУ:

Када треба да поставимо било који услов на колону табеле, користимо клаузулу ВХЕРЕ у СКЛ-у. Али ако желимо да користимо било који услов за колону у клаузули Гроуп Би у то време, користићемо клаузулу ХАВИНГ са клаузулом Гроуп Би за услове колоне.

Синтакса:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Размотрите табелу запослених са следећим подацима:

Е_ИД Име Плата Цити Ознака Датум приступања Старост
1 Саксхи Кумари 50000 Мумбаи Вођа пројекта 2021-06-20 24
2 Тејасвини Наик 75000 Делхи Систем инжењер 2019-12-24 23
3 Ануја Схарма 40000 Јаипур Менаџер 2021-08-15 26
4 Анусхка Трипатхи 90000 Мумбаи Тестери софтвера 2021-06-13 24
5 Руцха Јагтап 45000 Бангалоре Вођа пројекта 2020-08-09 23
6 Рутуја Десхмукх 60000 Бангалоре Менаџер 2019-07-17 26
7 Бавискаров глас 55000 Јаипур Систем инжењер 2021-10-10 24
8 Ту је Шеик 45000 Пуне Софтверски инжењер 2020-09-10 26
9 Свати Кумари 50000 Пуне Тестери софтвера 2021-01-01 25
10 Маиури Пател 60000 Мумбаи Вођа пројекта 2020-10-02 24
Једанаест Симран Кханна 45500 Колхапур ХР 2019-01-02 26
12 Схивани Вагх 50500 Делхи Програмер 2016-09-10 25
13 Киран Махесхвари 50000 Насхик ХР 2013-12-12 23
14 Тејал Јаин 40000 Делхи Вођа пројекта 2017-11-10 25
петнаест Мохини Схах 38000 Пуне Програмер 2019-03-05 двадесет

Пример 1:

Напишите упит за приказ имена запослених, плате и града у којем је максимална плата запосленог већа од 40000 и групишите резултате према ознакама.

упит:

 mysql> SELECT Name, City, MAX (Salary) AS Salary FROM employees GROUP BY Designation HAVING MAX (Salary) > 40000; 

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Горњи излаз показује да је име запосленог, плата и град запосленог где је плата већа од 40000 груписане по ознаци. (Запослени са сличном ознаком се стављају у једну групу, а они са другом ознаком одвојено).

Пример 2:

Напишите упит за приказ имена запослених и ознаке где је збир плате запосленог већи од 45000 и групишите резултате по градовима.

упит:

 mysql> SELECT Name, Designation, SUM (Salary) AS Salary FROM employees GROUP BY City HAVING SUM (Salary) > 45000; 

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Горњи излаз показује име запосленог, ознаку и плату запосленог. Збир плата је већи од 45000 груписаних по градовима. (Запослени са сличним градовима су смештени у једну групу, а они са другим градом нису слични одвојено).

4. РЕДОВАЊЕ ПО КЛАЗУ

Кад год желимо да сортирамо било шта у СКЛ-у, користимо клаузулу ОРДЕР БИ. Клаузула ОРДЕР БИ у СКЛ-у ће нам помоћи да сортирамо податке на основу одређене колоне табеле. То значи да ће сви подаци ускладиштени у одређеној колони на којој извршавамо ОРДЕР БИ клаузулу бити сортирани. Одговарајуће вредности колона ће бити приказане у редоследу у којем смо добили вредности у ранијем кораку.

Као што сви знамо, сортирање значи или у растућем или падајућем РЕДОСРЕДУ. На исти начин, ОРДЕР БИ ЦЛАУСЕ сортира податке у растућем или опадајућем редоследу према нашем захтеву. Подаци ће бити сортирани узлазним редоследом кад год се АСЦ кључна реч се користи са клаузулом ОРДЕР би, а ДЕСЦ кључна реч сортираће записе у опадајућем редоследу.

Подразумевано, сортирање у СКЛ-у ће бити обављено коришћењем ОРДЕР БИ клаузуле у растућем редоследу ако нисмо споменули редослед сортирања.

Пре него што пређемо на пример ОРДЕР БИ клаузуле за сортирање записа, прво ћемо погледати синтаксу тако да ће нам бити лако да прођемо кроз пример.

Синтакса ОРДЕР БИ клаузуле без кључне речи асц и десц:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Синтакса ОРДЕР БИ клаузуле за сортирање у растућем редоследу:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Синтакса ОРДЕР БИ клаузуле за сортирање у опадајућем редоследу:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Узмите у обзир да имамо табелу запослених са следећим подацима:

Е_ИД Име Плата Цити Ознака Датум приступања Старост
1 Саксхи Кумари 50000 Мумбаи Вођа пројекта 2021-06-20 24
2 Тејасвини Наик 75000 Делхи Систем инжењер 2019-12-24 23
3 Ануја Схарма 40000 Јаипур Менаџер 2021-08-15 26
4 Анусхка Трипатхи 90000 Мумбаи Тестери софтвера 2021-06-13 24
5 Руцха Јагтап 45000 Бангалоре Вођа пројекта 2020-08-09 23
6 Рутуја Десхмукх 60000 Бангалоре Менаџер 2019-07-17 26
7 Бавискаров глас 55000 Јаипур Систем инжењер 2021-10-10 24
8 Ту је Шеик 45000 Пуне Софтверски инжењер 2020-09-10 26
9 Свати Кумари 50000 Пуне Тестери софтвера 2021-01-01 25
10 Маиури Пател 60000 Мумбаи Вођа пројекта 2020-10-02 24
Једанаест Симран Кханна 45500 Колхапур ХР 2019-01-02 26
12 Схивани Вагх 50500 Делхи Програмер 2016-09-10 25
13 Киран Махесхвари 50000 Насхик ХР 2013-12-12 23
14 Тејал Јаин 40000 Делхи Вођа пројекта 2017-11-10 25
петнаест Мохини Схах 38000 Пуне Програмер 2019-03-05 двадесет

Пример 1:

Напишите упит да бисте сортирали записе у растућем редоследу ознаке запосленог из табеле запослених.

упит:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Овде у СЕЛЕЦТ упиту, ОРДЕР БИ клаузула се примењује на колону 'Десигнатион' за сортирање записа, али нисмо користили кључну реч АСЦ после ОРДЕР БИ клаузуле за сортирање у растућем редоследу. Дакле, подразумевано, подаци ће бити сортирани у растућем редоследу ако не наведемо кључну реч асц.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

У складу са очекиваним резултатом, записи се приказују растућим редоследом према називу запосленог.

Пример 2:

Напишите упит за приказ имена и плате запосленог у растућем редоследу плате запосленог из табеле запослених.

упит:

убаците у тастатуру
 mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC; 

Овде у СЕЛЕЦТ упиту, ОРДЕР БИ клаузула се примењује на колону 'Плата' да би се сортирали записи. Користили смо кључну реч АСЦ да сортирамо плату запосленог у растућем редоследу.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Сви записи се приказују у растућем редоследу плате запосленог.

Пример 3:

Напишите упит да бисте сортирали податке у опадајућем редоследу имена запосленог који је ускладиштен у табели запослених.

упит:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Овде смо користили клаузулу ОРДЕР БИ са упитом СЕЛЕЦТ примењеном на колону Наме за сортирање података. Користили смо кључну реч ДЕСЦ после клаузуле ОРДЕР БИ да сортирамо податке опадајућем редоследу.

Добићете следећи излаз:

СКЛ КЛАУЗЕ

Сви записи се приказују у опадајућем редоследу имена запосленог.