V tem razdelku SQL bomo razpravljali o tem, kako primerjati dva ali več nizov v jeziku strukturiranih poizvedb
Primerjamo lahko dva ali več nizov z uporabo nizovne funkcije STRCMP, operatorja LIKE in operatorja Equal.
Funkcija niza STRCMP
STRCMP je funkcija niza, ki primerja navedena dva niza in daje 0, če je dolžina prvega niza enaka dolžini drugega niza. Če je dolžina prvega niza večja od dolžine drugega niza, potem funkcija vrne 1, sicer -1.
Sintaksa funkcije STRCMP
SELECT STRCMP (String_1, String_2);
Primeri funkcije STRCMP String
Primer 1: Naslednja poizvedba SELECT primerja dolžino nizov JAVATPOINT in EXAMPLES:
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Izhod:
1
Primer 2: Naslednja poizvedba SELECT primerja dolžino dveh stavkov, ki potekata v funkciji STRCMP:
SELECT STRCMP ('Website is good', 'javatpoint is good');
Izhod:
-1
Primer 3: Naslednja poizvedba SELECT primerja dolžino dveh mest:
SELECT STRCMP ( 'Delhi', 'Noida');
Izhod:
0
Operater LIKE
Operator LIKE ujema določen vzorec z vsako vrstico polja in vrne ujemajoče se vrednosti v izhodu. Ta operator se vedno uporablja s klavzulo WHERE v stavku SQL.
Sintaksa operatorja Like
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Primer operaterja LIKE
Vzemimo naslednjo tabelo študentov:
zvitek_št | Ime | Mesto | Starost | Odstotek | Ocena |
---|---|---|---|---|---|
101 | Akaša | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Jaš | Delhi | dvajset | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | dvajset | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Vivek | Goa | dvajset | 80 | B2 |
Poizvedba 1: Naslednja poizvedba prikazuje zapis tistih študentov iz zgornje tabele študentov, katerih First_Name se začne s črko 'B':
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
Rezultat zgornje poizvedbe:
zvitek_št | Ime | Odstotek | Ocena |
---|---|---|---|
102 | Bhavesh | 93 | A1 |
104 | Bhavna | 78 | B1 |
Kot je prikazano v zgornjem izhodu, tabela vsebuje samo zapis študentov Bhavesh in Bhavna, ker se njihova imena začnejo s črko B.
Poizvedba 2: Naslednja poizvedba prikazuje zapis tistih študentov iz dane tabele Student, katerih First_Name vsebuje znak 'a' na katerem koli položaju:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
Rezultat zgornje poizvedbe:
zvitek_št | Ime | Mesto | Starost | Odstotek | Ocena |
---|---|---|---|---|---|
101 | Akaša | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Jaš | Delhi | dvajset | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | dvajset | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Enak operator (=)
Je vrsta primerjalnega operatorja, ki prikazuje ujemajoče se podatke iz podane tabele SQL.
Ta operater zelo uporabljajo uporabniki baze podatkov v jeziku strukturiranih poizvedb.
Ta operator vrne vrstice TRUE iz tabele baze podatkov, če je vrednost stolpca enaka vrednosti, podani v poizvedbi.
Sintaksa operatorja Equal:
SELECT * FROM Table_Name WHERE Column_Name = Value;
Primer enakopravnega operatorja
Vzemimo naslednjo tabelo Worker:
Worker_Id | Delavec_Name | Delavsko_mesto | Delavska_Plača | Delavec_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Tušar | Lucknow | 29000 | 3000 |
103 | Vivek | Kolkata | 35000 | 2500 |
104 | Shivam | Goa | 22000 | 3000 |
Naslednja poizvedba prikazuje zapis tistih delavcev iz tabele delavcev, katerih Worker_Salary je 35000:
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Izhod:
Worker_Id | Delavec_Name | Delavsko_mesto | Delavska_Plača | Delavec_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
103 | Vivek | Kolkata | 35000 | 2500 |