V tejto sekcii SQL budeme diskutovať o tom, ako porovnať dva alebo viac reťazcov v jazyku Structured Query Language
Dva alebo viac reťazcov môžeme porovnať pomocou funkcie reťazca STRCMP, operátora LIKE a operátora Equal.
Funkcia reťazca STRCMP
STRCMP je funkcia reťazca, ktorá porovnáva zadané dva reťazce a dáva 0, ak sa dĺžka prvého reťazca rovná dĺžke druhého reťazca. Ak je dĺžka prvého reťazca väčšia ako dĺžka druhého reťazca, funkcia vráti 1, inak -1.
Syntax funkcie STRCMP
SELECT STRCMP (String_1, String_2);
Príklady funkcie String STRCMP
Príklad 1: Nasledujúci dotaz SELECT porovnáva dĺžku reťazcov JAVATPOINT a EXAMPLES:
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Výkon:
1
Príklad 2: Nasledujúci dotaz SELECT porovnáva dĺžku dvoch viet prechádzajúcich vo funkcii STRCMP:
SELECT STRCMP ('Website is good', 'javatpoint is good');
Výkon:
-1
Príklad 3: Nasledujúci dotaz SELECT porovnáva dĺžku dvoch miest:
SELECT STRCMP ( 'Delhi', 'Noida');
Výkon:
0
Operátor LIKE
Operátor LIKE porovná konkrétny vzor s každým riadkom poľa a vráti zhodné hodnoty vo výstupe. Tento operátor sa vždy používa s klauzulou WHERE v príkaze SQL.
Syntax operátora Like
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Príklad operátora LIKE
Zoberme si nasledujúcu študentskú tabuľku:
Roll_No | Krstné meno | Mesto | Vek | Percento | stupňa |
---|---|---|---|---|---|
101 | Akáša | Dillí | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Dillí | dvadsať | 89 | A2 |
104 | Bhavna | Dillí | 19 | 78 | B1 |
105 | yatin | Lucknow | dvadsať | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Vivek | Goa | dvadsať | 80 | B2 |
Dopyt 1: Nasledujúci dotaz zobrazuje záznam tých študentov z vyššie uvedenej tabuľky študentov, ktorých meno začína písmenom „B“:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
Výstup vyššie uvedeného dotazu:
Roll_No | Krstné meno | Percento | stupňa |
---|---|---|---|
102 | Bhavesh | 93 | A1 |
104 | Bhavna | 78 | B1 |
Ako je uvedené vo vyššie uvedenom výstupe, tabuľka obsahuje iba záznamy študentov Bhavesh a Bhavna, pretože ich mená začínajú písmenom B.
Dopyt 2: Nasledujúci dotaz zobrazuje záznam tých študentov z danej tabuľky Študent, ktorých Meno obsahuje znak 'a' na ľubovoľnej pozícii:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
Výstup vyššie uvedeného dotazu:
Roll_No | Krstné meno | Mesto | Vek | Percento | stupňa |
---|---|---|---|---|---|
101 | Akáša | Dillí | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Dillí | dvadsať | 89 | A2 |
104 | Bhavna | Dillí | 19 | 78 | B1 |
105 | yatin | Lucknow | dvadsať | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Rovnaký operátor (=)
Je to typ porovnávacieho operátora, ktorý zobrazuje spárované dáta z danej SQL tabuľky.
Tento operátor je veľmi používaný používateľmi databázy v štruktúrovanom jazyku dotazov.
Tento operátor vráti TRUE riadky z databázovej tabuľky, ak je hodnota stĺpca rovnaká ako hodnota zadaná v dotaze.
Syntax operátora Equal:
SELECT * FROM Table_Name WHERE Column_Name = Value;
Príklad rovnakého operátora
Zoberme si nasledujúcu tabuľku pracovníkov:
Worker_Id | Worker_Name | Worker_City | Pracovník_plat | Worker_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35 000 | 2000 |
102 | Tushar | Lucknow | 29 000 | 3000 |
103 | Vivek | Kalkata | 35 000 | 2500 |
104 | Shivam | Goa | 22 000 | 3000 |
Nasledujúci dotaz zobrazuje záznam tých pracovníkov z tabuľky pracovníkov, ktorých Worker_Salary je 35 000:
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Výkon:
Worker_Id | Worker_Name | Worker_City | Pracovník_plat | Worker_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35 000 | 2000 |
103 | Vivek | Kalkata | 35 000 | 2500 |