logo

SQL-KLAUSLER

  • SQL-satsen hjälper oss att hämta en uppsättning eller buntar med poster från tabellen.
  • SQL-satsen hjälper oss att ange ett villkor i kolumnerna eller posterna i en tabell.

Olika satser tillgängliga i Structured Query Language är följande:

  1. VAR KLAUSUL
  2. GRUPP EFTER KLAUS
  3. HA KLAUSUL
  4. BESTÄLLNING EFTER KLAUS

Låt oss se varje klausul en efter en med ett exempel. Vi kommer att använda MySQL-databas för att skriva frågorna i exempel.

1. VAR KLAUSUL

En WHERE-sats i SQL används med SELECT-frågan, som är ett av språkkommandona för datamanipulation. DÄR satser kan användas för att begränsa antalet rader som ska visas i resultatuppsättningen, hjälper det i allmänhet att filtrera posterna. Den returnerar endast de frågor som uppfyller de specifika villkoren i WHERE-satsen. WHERE-satsen används i SELECT, UPDATE, DELETE-satsen, etc.

WHERE-sats med SELECT-fråga

Asterisksymbol används med en WHERE-sats i en SELECT-fråga för att hämta alla kolumnvärden för varje post från en tabell.

Syntax för where-sats med en urvalsfråga för att hämta alla kolumnvärden för varje post från en tabell:

 SELECT * FROM TABLENAME WHERE CONDITION; 

Om vi ​​enligt kravet endast vill hämta selektiva kolumner, kommer vi att använda nedanstående syntax:

 SELECT COLUMNNAME1, COLUMNNAME2 FROM TABLENAME WHERE CONDITION; 

Betrakta personaltabellen med följande data:

E_ID namn Lön Stad Beteckning Datum_för_anslutning Ålder
1 Sakshi Kumari 50 000 Mumbai Projektledare 2021-06-20 24
2 Tejaswini Naik 75 000 Delhi Systemingenjör 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur Chef 2021-08-15 26
4 Anushka Tripathi 90 000 Mumbai Programvara testare 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektledare 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Chef 2019-07-17 26
7 Baviskars röst 55 000 Jaipur Systemingenjör 2021-10-10 24
8 Där är Sheik 45 000 Pune Mjukvaruingenjör 2020-09-10 26
9 Swati Kumari 50 000 Pune Programvara testare 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projektledare 2020-10-02 24
elva Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Mjukvaruutvecklare 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Delhi Projektledare 2017-11-10 25
femton Mohini Shah 38 000 Pune Mjukvaruutvecklare 2019-03-05 tjugo

Exempel 1:

Skriv en fråga för att hämta alla dessa poster för en anställd där anställdas lön är högre än 50 000.

Fråga:

 mysql> SELECT * FROM employees WHERE Salary > 50000; 

Ovanstående fråga kommer att visa alla de poster för en anställd där en anställds lön är högre än 50 000. Lön under 50 000 kommer inte att visas enligt villkoren.

Du får följande utdata:

SQL-KLAUSLER

Enligt den förväntade produktionen visas endast de poster där en anställds lön är större än 50 000. Det finns sex poster i den anställdes tabell som uppfyller det givna villkoret.

Exempel 2:

Skriv en fråga för att uppdatera den anställdes post och ställ in det uppdaterade namnet som 'Harshada Sharma' där den anställdes stadsnamn är Jaipur.

Fråga:

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

SQL-KLAUSLER

Ovanstående fråga kommer att uppdatera den anställdes namn till 'Harshada Sharma', där den anställdes stad är Jaipur.

För att verifiera om poster uppdateras eller inte, kör vi en urvalsfråga.

 mysql> SELECT * FROM employees; 

SQL-KLAUSLER

Det finns bara en post i den anställdes tabell där den anställdes stad är 'Jaipur'. Postens id är 3, vilket uppfyller det givna villkoret. Därför, enligt det givna villkoret, ändras nu den anställdes namn med anställd id 3 till 'Harshada Sharma'.

Exempel 3:

Skriv en fråga för att radera en anställds post där den anställdes anslutningsdatum är '2013-12-12'.

Fråga:

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

SQL-KLAUSLER

Ovanstående fråga kommer att radera personaluppgifterna för den anställde vars anslutningsdatum är '2013-12-12'.

För att verifiera resultaten av ovanstående fråga kommer vi att köra urvalsfrågan.

 mysql> SELECT *FROM employees; 

SQL-KLAUSLER

Det finns bara en post i den anställdes tabell där den anställdes anslutningsdatum är '2013-12-12'. Postens id är 13, vilket uppfyller det givna villkoret. Därför är enligt det givna villkoret nu den anställde med anställd-id 13 raderad från den anställdes tabell.

2. GRUPP EFTER KLAUSUL

Group By-satsen används för att ordna liknande typer av poster i grupperna i Structured Query Language. Gruppera efter-satsen i Structured Query Language används med Select Statement. Grupp för sats placeras efter where-satsen i SQL-satsen. Group By-satsen används speciellt med aggregatfunktionen, dvs max (), min (), avg (), summa (), count () för att gruppera resultatet baserat på en eller flera kolumner.

Syntaxen för Group By-sats:

 SELECT * FROM TABLENAME GROUP BY COLUMNNAME; 

Ovanstående syntax kommer att välja alla data eller poster från tabellen, men den kommer att ordna alla dessa data eller poster i grupperna baserat på kolumnnamnet som anges i frågan.

Syntaxen för Group By-sats med aggregerade funktioner:

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

Låt oss förstå Group By-satsen med hjälp av exempel.

Betrakta personaltabellen med följande data:

E_ID namn Lön Stad Beteckning Datum_för_anslutning Ålder
1 Sakshi Kumari 50 000 Mumbai Projektledare 2021-06-20 24
2 Tejaswini Naik 75 000 Delhi Systemingenjör 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur Chef 2021-08-15 26
4 Anushka Tripathi 90 000 Mumbai Programvara testare 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektledare 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Chef 2019-07-17 26
7 Baviskars röst 55 000 Jaipur Systemingenjör 2021-10-10 24
8 Där är Sheik 45 000 Pune Mjukvaruingenjör 2020-09-10 26
9 Swati Kumari 50 000 Pune Programvara testare 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projektledare 2020-10-02 24
elva Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Mjukvaruutvecklare 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Delhi Projektledare 2017-11-10 25
femton Mohini Shah 38 000 Pune Mjukvaruutvecklare 2019-03-05 tjugo

Exempel 1:

Skriv en fråga för att visa alla poster i personaltabellen men gruppera resultaten baserat på ålderskolumnen.

Fråga:

 mysql> SELECT * FROM employees GROUP BY Age; 

Ovanstående fråga kommer att visa alla poster i tabellen anställda men grupperade efter ålderskolumnen.

Du får följande utdata:

SQL-KLAUSLER

Exempel 2:

Skriv en fråga för att visa alla poster i personaltabellen grupperade efter beteckning och lön.

Fråga:

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

Ovanstående fråga kommer att visa alla poster i personaltabellen men grupperade efter löne- och beteckningskolumnen.

Du får följande utdata:

SQL-KLAUSLER

Exempel på Group By-sats som använder aggregerade funktioner

Exempel 1:

Skriv en fråga för att lista antalet anställda som arbetar med en viss beteckning och gruppera resultaten efter beteckningen på anställd.

Fråga:

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

Ovanstående fråga kommer att visa beteckningen med respektive antal anställda som arbetar med den beteckningen. Alla dessa resultat kommer att grupperas efter beteckningskolumnen.

Du får följande utdata:

SQL-KLAUSLER

Enligt förväntad produktion visas beteckningen med respektive antal anställda.

Exempel 2:

Skriv en fråga för att visa summan av en anställds lön enligt staden grupperad efter en anställds ålder.

Fråga:

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

Ovanstående fråga kommer först att beräkna summan av löner som arbetar i varje stad, och sedan kommer den att visa lönesumman med respektive lön men grupperad efter ålderskolumnen.

Du får följande utdata:

SQL-KLAUSLER

Enligt den förväntade produktionen visas summan av anställdas lön enligt den stad som den anställde tillhör. Om två anställda tillhör samma stad, kommer de att vara i en grupp.

3. HA KLAUSUL:

När vi behöver placera några villkor i tabellens kolumn använder vi WHERE-satsen i SQL. Men om vi vill använda något villkor på en kolumn i Group By-satsen vid den tiden, kommer vi att använda HAVING-satsen med Group By-satsen för kolumnvillkor.

Syntax:

 TABLENAME GROUP BY COLUMNNAME HAVING CONDITION; 

Betrakta personaltabellen med följande data:

E_ID namn Lön Stad Beteckning Datum_för_anslutning Ålder
1 Sakshi Kumari 50 000 Mumbai Projektledare 2021-06-20 24
2 Tejaswini Naik 75 000 Delhi Systemingenjör 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur Chef 2021-08-15 26
4 Anushka Tripathi 90 000 Mumbai Programvara testare 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektledare 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Chef 2019-07-17 26
7 Baviskars röst 55 000 Jaipur Systemingenjör 2021-10-10 24
8 Där är Sheik 45 000 Pune Mjukvaruingenjör 2020-09-10 26
9 Swati Kumari 50 000 Pune Programvara testare 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projektledare 2020-10-02 24
elva Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Mjukvaruutvecklare 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Delhi Projektledare 2017-11-10 25
femton Mohini Shah 38 000 Pune Mjukvaruutvecklare 2019-03-05 tjugo

Exempel 1:

Skriv en fråga för att visa namn på anställda, lön och ort där den anställdes maxlön är större än 40 000 och gruppera resultaten efter beteckning.

Fråga:

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

Du får följande utdata:

SQL-KLAUSLER

Ovanstående utdata visar att anställds namn, lön och stad för en anställd där anställds lön är större än 40 000 grupperade efter beteckning. (Anställda med liknande beteckning placeras i en grupp, och de med annan beteckning placeras separat).

Exempel 2:

Skriv en fråga för att visa namn på anställda och beteckning där summan av en anställds lön är större än 45 000 och gruppera resultaten efter stad.

Fråga:

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

Du får följande utdata:

SQL-KLAUSLER

Ovanstående utdata visar anställds namn, beteckning och lön för en anställd. Summan av lön är större än 45000 grupperade efter stad. (Anställda med liknande städer placeras i en grupp och de som har en annan stad är inte lika placeras separat).

4. ORDNING ENLIGT KLAUSUL

När vi vill sortera något i SQL använder vi ORDER BY-satsen. ORDER BY-satsen i SQL hjälper oss att sortera data baserat på den specifika kolumnen i en tabell. Detta innebär att all data som lagras i den specifika kolumn som vi kör ORDER BY-satsen på kommer att sorteras. Motsvarande kolumnvärden kommer att visas i den ordning i vilken vi har erhållit värdena i det tidigare steget.

Som vi alla vet betyder sortering antingen i stigande ordning eller fallande ordning. På samma sätt sorterar ORDER BY CLAUSE data i stigande eller fallande ordning enligt våra krav. Data kommer att sorteras i stigande ordning närhelst ASC nyckelord används med ORDER by-sats, och DESC nyckelord kommer att sortera posterna i fallande ordning.

Som standard kommer sortering i SQL att göras med hjälp av ORDER BY-satsen i SIGANDE ordning om vi inte nämnde sorteringsordningen.

Innan vi går mot exemplet med ORDER BY-satsen för att sortera posterna kommer vi först att titta på syntax så att det blir lätt för oss att gå igenom exemplet.

Syntax för ORDER BY-satsen utan nyckelord asc och desc:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMNAME; 

Syntax för ORDER BY-satsen för att sortera i stigande ordning:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME ASC; 

Syntax för ORDER BY-satsen för att sortera i fallande ordning:

 SELECT COLUMN_NAME1, COLUMN_NAME2 FROM TABLE_NAME ORDER BY COLUMN_NAME DESC; 

Tänk att vi har en personaltabell med följande data:

E_ID namn Lön Stad Beteckning Datum_för_anslutning Ålder
1 Sakshi Kumari 50 000 Mumbai Projektledare 2021-06-20 24
2 Tejaswini Naik 75 000 Delhi Systemingenjör 2019-12-24 23
3 Anuja Sharma 40 000 Jaipur Chef 2021-08-15 26
4 Anushka Tripathi 90 000 Mumbai Programvara testare 2021-06-13 24
5 Rucha Jagtap 45 000 Bangalore Projektledare 2020-08-09 23
6 Rutuja Deshmukh 60 000 Bangalore Chef 2019-07-17 26
7 Baviskars röst 55 000 Jaipur Systemingenjör 2021-10-10 24
8 Där är Sheik 45 000 Pune Mjukvaruingenjör 2020-09-10 26
9 Swati Kumari 50 000 Pune Programvara testare 2021-01-01 25
10 Mayuri Patel 60 000 Mumbai Projektledare 2020-10-02 24
elva Simran Khanna 45500 Kolhapur HR 2019-01-02 26
12 Shivani Wagh 50500 Delhi Mjukvaruutvecklare 2016-09-10 25
13 Kiran Maheshwari 50 000 Nashik HR 2013-12-12 23
14 Tejal Jain 40 000 Delhi Projektledare 2017-11-10 25
femton Mohini Shah 38 000 Pune Mjukvaruutvecklare 2019-03-05 tjugo

Exempel 1:

Skriv en fråga för att sortera posterna i stigande ordning efter anställningsbeteckningen från personaltabellen.

java delsträng innehåller

Fråga:

 mysql> SELECT * FROM employees ORDER BY Designation; 

Här i en SELECT-fråga tillämpas en ORDER BY-sats på kolumnen 'Designation' för att sortera posterna, men vi använde inte ASC-nyckelordet efter ORDER BY-satsen för att sortera i stigande ordning. Så som standard kommer data att sorteras i stigande ordning om vi inte anger asc nyckelord.

Du får följande utdata:

SQL-KLAUSLER

Enligt den förväntade produktionen visas posterna i stigande ordning efter den anställdes beteckning.

Exempel 2:

Skriv en fråga för att visa anställdas namn och lön i stigande ordning för den anställdes lön från anställdas tabell.

Fråga:

 mysql> SELECT Name, Salary FROM employees ORDER BY Salary ASC; 

Här i en SELECT-fråga tillämpas en ORDER BY-sats på kolumnen 'Lön' för att sortera posterna. Vi har använt nyckelordet ASC för att sortera den anställdes lön i stigande ordning.

Du får följande utdata:

SQL-KLAUSLER

Alla poster visas i stigande ordning för den anställdes lön.

Exempel 3:

Skriv en fråga för att sortera uppgifterna i fallande ordning efter anställds namn som lagras i personaltabellen.

Fråga:

 mysql> SELECT * FROM employees ORDER BY Name DESC; 

Här har vi använt ORDER BY-satsen med SELECT-frågan på kolumnen Namn för att sortera data. Vi har använt nyckelordet DESC efter ORDER BY-satsen för att sortera data i fallande ordning.

Du får följande utdata:

SQL-KLAUSLER

Alla poster visas i fallande ordning efter den anställdes namn.