V této části SQL probereme, jak porovnat dva nebo více řetězců ve strukturovaném dotazovacím jazyce
Můžeme porovnat dva nebo více řetězců pomocí funkce řetězce STRCMP, operátoru LIKE a operátoru Equal.
STRCMP Funkce řetězce
STRCMP je funkce řetězce, která porovnává zadané dva řetězce a dává 0, pokud je délka prvního řetězce rovna délce druhého řetězce. Pokud je délka prvního řetězce větší než délka druhého řetězce, vrátí funkce 1, jinak -1.
Syntaxe funkce STRCMP
SELECT STRCMP (String_1, String_2);
Příklady funkce String STRCMP
Příklad 1: Následující dotaz SELECT porovnává délku řetězců JAVATPOINT a EXAMPLES:
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Výstup:
1
Příklad 2: Následující dotaz SELECT porovnává délku dvou vět předávaných ve funkci STRCMP:
SELECT STRCMP ('Website is good', 'javatpoint is good');
Výstup:
-1
Příklad 3: Následující dotaz SELECT porovnává délku dvou měst:
SELECT STRCMP ( 'Delhi', 'Noida');
Výstup:
0
LIKE operátor
Operátor LIKE porovnává konkrétní vzor s každým řádkem pole a vrátí odpovídající hodnoty ve výstupu. Tento operátor se vždy používá s klauzulí WHERE v příkazu SQL.
Syntaxe operátoru Like
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Příklad operátora LIKE
Vezměme si následující studentskou tabulku:
Číslo_role | Jméno | Město | Stáří | Procento | Školní známka |
---|---|---|---|---|---|
101 | Akáša | Dillí | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Dillí | dvacet | 89 | A2 |
104 | Bhavna | Dillí | 19 | 78 | B1 |
105 | yatin | Lucknow | dvacet | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Vivek | Goa | dvacet | 80 | B2 |
Dotaz 1: Následující dotaz zobrazuje záznam těch studentů z výše uvedené tabulky Student, jejichž jméno začíná písmenem 'B':
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
Výstup výše uvedeného dotazu:
Číslo_role | Jméno | Procento | Školní známka |
---|---|---|---|
102 | Bhavesh | 93 | A1 |
104 | Bhavna | 78 | B1 |
Jak je uvedeno ve výše uvedeném výstupu, tabulka obsahuje pouze záznamy studentů Bhavesh a Bhavna, protože jejich jména začínají písmenem B.
Dotaz 2: Následující dotaz zobrazuje záznam těch studentů z dané tabulky Student, jejichž jméno obsahuje znak 'a' na libovolné pozici:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
Výstup výše uvedeného dotazu:
Číslo_role | Jméno | Město | Stáří | Procento | Školní známka |
---|---|---|---|---|---|
101 | Akáša | Dillí | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Yash | Dillí | dvacet | 89 | A2 |
104 | Bhavna | Dillí | 19 | 78 | B1 |
105 | yatin | Lucknow | dvacet | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Rovný operátor (=)
Je to typ operátoru porovnání, který zobrazuje spárovaná data z dané SQL tabulky.
Tento operátor je velmi používán uživateli databáze ve strukturovaném dotazovacím jazyce.
Tento operátor vrací TRUE řádky z databázové tabulky, pokud je hodnota sloupce stejná jako hodnota zadaná v dotazu.
Syntaxe operátoru Equal:
SELECT * FROM Table_Name WHERE Column_Name = Value;
Příklad operátora Equal
Vezměme si následující pracovní tabulku:
Worker_Id | Pracovní_Jméno | Worker_City | Pracovní_plat | Pracovní_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 |
Následující dotaz zobrazuje záznam těch pracovníků z tabulky pracovníků, jejichž Worker_Salary je 35 000:
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Výstup:
Worker_Id | Pracovní_Jméno | Worker_City | Pracovní_plat | Pracovní_bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35 000 | 2000 |
103 | Vivek | Kalkata | 35 000 | 2500 |