W tej sekcji SQL omówimy, jak porównać dwa lub więcej ciągów znaków w Strukturalnym Języku Zapytań
Możemy porównać dwa lub więcej ciągów znaków za pomocą funkcji łańcuchowej STRCMP, operatora LIKE i operatora Equal.
STRCMP Funkcja ciągu
STRCMP to funkcja ciągu, która porównuje określone dwa ciągi i daje 0, jeśli długość pierwszego ciągu jest równa długości drugiego ciągu. Jeśli długość pierwszego ciągu jest większa niż długość drugiego ciągu, funkcja zwraca 1, w przeciwnym razie -1.
Składnia funkcji STRCMP
SELECT STRCMP (String_1, String_2);
Przykłady funkcji STRCMP String
Przykład 1: Poniższe zapytanie SELECT porównuje długość ciągów JAVATPOINT i EXAMPLES:
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Wyjście:
1
Przykład 2: Poniższe zapytanie SELECT porównuje długość dwóch zdań przekazywanych w funkcji STRCMP:
SELECT STRCMP ('Website is good', 'javatpoint is good');
Wyjście:
-1
Przykład 3: Poniższe zapytanie SELECT porównuje długość dwóch miast:
SELECT STRCMP ( 'Delhi', 'Noida');
Wyjście:
0
JAKO Operatorze
Operator LIKE dopasowuje określony wzorzec do każdego wiersza pola i zwraca dopasowane wartości na wyjściu. Operator ten jest zawsze używany z klauzulą WHERE w instrukcji SQL.
Składnia operatora Like
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Przykład operatora LIKE
Weźmy następującą tabelę Studenta:
Nr rolki | Imię | Miasto | Wiek | Odsetek | Stopień |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhawesz | Kanpur | 19 | 93 | A1 |
103 | Yash | Delhi | 20 | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | Yatin | Lucknow | 20 | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Wiwek | Goa | 20 | 80 | B2 |
Zapytanie 1: Poniższe zapytanie pokazuje rekord tych uczniów z powyższej tabeli Studentów, których imię zaczyna się na literę „B”:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
Wynik powyższego zapytania:
Nr rolki | Imię | Odsetek | Stopień |
---|---|---|---|
102 | Bhawesz | 93 | A1 |
104 | Bhavna | 78 | B1 |
Jak pokazano w powyższych wynikach, tabela zawiera jedynie dane uczniów Bhavesh i Bhavna, ponieważ ich imiona zaczynają się na literę B.
Zapytanie 2: Poniższe zapytanie pokazuje rekord tych uczniów z podanej tabeli Studentów, których Imię zawiera znak „a” na dowolnej pozycji:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
Wynik powyższego zapytania:
Nr rolki | Imię | Miasto | Wiek | Odsetek | Stopień |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhawesz | Kanpur | 19 | 93 | A1 |
103 | Yash | Delhi | 20 | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | Yatin | Lucknow | 20 | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Operator równości (=)
Jest to rodzaj operatora porównania, który pokazuje dopasowane dane z danej tabeli SQL.
Operator ten jest często używany przez użytkowników baz danych w Structured Query Language.
Operator ten zwraca TRUE wiersze z tabeli bazy danych, jeśli wartość w kolumnie jest taka sama jak wartość podana w zapytaniu.
Składnia operatora równości:
SELECT * FROM Table_Name WHERE Column_Name = Value;
Przykład operatora równości
Weźmy następującą tabelę Worker:
Identyfikator pracownika | Nazwa_pracownika | Miasto_pracownika | Pracownik_Wynagrodzenie | Pracownik_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Tushar | Lucknow | 29000 | 3000 |
103 | Wiwek | Kalkuta | 35000 | 2500 |
104 | Śiwam | Goa | 22000 | 3000 |
Poniższe zapytanie pokazuje rekord tych pracowników z tabeli pracowników, których Worker_Salary wynosi 35000:
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Wyjście:
Identyfikator pracownika | Nazwa_pracownika | Miasto_pracownika | Pracownik_Wynagrodzenie | Pracownik_Bonus |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
103 | Wiwek | Kalkuta | 35000 | 2500 |