Ebben az SQL részben azt tárgyaljuk, hogyan lehet két vagy több karakterláncot összehasonlítani a strukturált lekérdezési nyelvben
Összehasonlíthatunk két vagy több karakterláncot az STRCMP karakterlánc-függvény, a LIKE operátor és az Equal operátor használatával.
STRCMP String függvény
Az STRCMP a karakterlánc függvénye, amely összehasonlítja a megadott két karakterláncot, és 0-t ad, ha az első karakterlánc hossza megegyezik a második karakterlánc hosszával. Ha az első karakterlánc hossza nagyobb, mint a második karakterlánc hossza, akkor a függvény 1-et ad vissza, ellenkező esetben -1.
Az STRCMP függvény szintaxisa
SELECT STRCMP (String_1, String_2);
Példák az STRCMP String függvényre
1. példa: A következő SELECT lekérdezés összehasonlítja a JAVATPOINT és az EXAMPLES karakterláncok hosszát:
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Kimenet:
1
2. példa: A következő SELECT lekérdezés összehasonlítja az STRCMP függvényben áthaladó két mondat hosszát:
SELECT STRCMP ('Website is good', 'javatpoint is good');
Kimenet:
-1
3. példa: A következő SELECT lekérdezés két város hosszát hasonlítja össze:
SELECT STRCMP ( 'Delhi', 'Noida');
Kimenet:
0
LIKE Operátor
A LIKE operátor megfelelteti az adott mintát a mező minden sorával, és az illesztett értékeket adja vissza a kimenetben. Ezt az operátort mindig a WHERE záradékkal együtt használják az SQL utasításban.
A Like operátor szintaxisa
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Példa a LIKE operátorra
Vegyük a következő diáktáblázatot:
Roll_No | Keresztnév | Város | Kor | Százalék | Fokozat |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Delhi | húsz | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | húsz | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Vivek | Goa | húsz | 80 | B2 |
1. lekérdezés: A következő lekérdezés azoknak a tanulóknak a rekordját jeleníti meg a fenti diáktáblázatból, akiknek a keresztneve 'B' betűvel kezdődik:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
A fenti lekérdezés kimenete:
Roll_No | Keresztnév | Százalék | Fokozat |
---|---|---|---|
102 | Bhavesh | 93 | A1 |
104 | Bhavna | 78 | B1 |
Amint a fenti kimenetből látható, a táblázat csak a Bhavesh és Bhavna tanulók rekordját tartalmazza, mivel nevük B betűvel kezdődik.
2. lekérdezés: A következő lekérdezés azoknak a tanulóknak a rekordját mutatja az adott tanulói táblából, akiknek a Keresztneve tetszőleges helyen tartalmazza az 'a' karaktert:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
A fenti lekérdezés kimenete:
Roll_No | Keresztnév | Város | Kor | Százalék | Fokozat |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Delhi | húsz | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | yatin | Lucknow | húsz | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Egyenlő operátor (=)
Ez egyfajta összehasonlító operátor, amely az adott SQL-táblázat egyező adatait mutatja.
Ezt az operátort nagymértékben használják a Structured Query Language adatbázis-felhasználói.
Ez az operátor IGAZ sorokat ad vissza az adatbázistáblából, ha az oszlop értéke megegyezik a lekérdezésben megadott értékkel.
Az Equal operátor szintaxisa:
SELECT * FROM Table_Name WHERE Column_Name = Value;
Példa az egyenlő operátorra
Vegyük a következő dolgozó táblázatot:
Dolgozói_azonosító | Worker_Name | Dolgozó_város | Dolgozó_fizetés | Munkásbónusz |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Tushar | Lucknow | 29000 | 3000 |
103 | Vivek | Kolkata | 35000 | 2500 |
104 | Shivam | Goa | 22000 | 3000 |
A következő lekérdezés azoknak a dolgozóknak a rekordját jeleníti meg a munkástáblából, akiknek a Dolgozói_bére 35000:
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Kimenet:
Dolgozói_azonosító | Worker_Name | Dolgozó_város | Dolgozó_fizetés | Munkásbónusz |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
103 | Vivek | Kolkata | 35000 | 2500 |