In questa sezione SQL, discuteremo come confrontare due o più stringhe nello Structured Query Language
Possiamo confrontare due o più stringhe utilizzando la funzione stringa STRCMP, l'operatore LIKE e l'operatore Equal.
STRCMP Funzione stringa
STRCMP è una funzione di stringa che confronta le due stringhe specificate e restituisce 0 se la lunghezza della prima stringa è uguale alla lunghezza della seconda stringa. Se la lunghezza della prima stringa è maggiore della lunghezza della seconda stringa, la funzione restituisce 1 altrimenti -1.
Sintassi della funzione STRCMP
SELECT STRCMP (String_1, String_2);
Esempi di funzione String STRCMP
Esempio 1: La seguente query SELECT confronta la lunghezza delle stringhe JAVATPOINT ed EXAMPLES:
SELECT STRCMP ('JAVATPOINT', 'EXAMPLES');
Produzione:
1
Esempio 2: La seguente query SELECT confronta la lunghezza di due frasi che passano nella funzione STRCMP:
SELECT STRCMP ('Website is good', 'javatpoint is good');
Produzione:
-1
Esempio 3: La seguente query SELECT confronta la lunghezza di due città:
SELECT STRCMP ( 'Delhi', 'Noida');
Produzione:
0
Operatore MI PIACE
L'operatore LIKE abbina il modello particolare a ciascuna riga del campo e restituisce i valori corrispondenti nell'output. Questo operatore viene sempre utilizzato con la clausola WHERE nell'istruzione SQL.
Sintassi dell'operatore Like
SELECT Column_Name_1, Column_Name_2, Column_Name_3, ……, Column_Name_N FROM Table_Name WHERE Column_Name LIKE Pattern;
Esempio di operatore LIKE
Prendiamo la seguente tabella Student:
Rotolo_No | Nome di battesimo | Città | Età | Percentuale | Grado |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Già | Delhi | venti | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | Yatin | Lucknow | venti | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
107 | Vivek | Goa | venti | 80 | B2 |
Domanda 1: La seguente query mostra il record degli studenti della tabella Studenti sopra il cui Nome inizia con una lettera 'B':
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE 'B%';
Output della query precedente:
Rotolo_No | Nome di battesimo | Percentuale | Grado |
---|---|---|---|
102 | Bhavesh | 93 | A1 |
104 | Bhavna | 78 | B1 |
Come mostrato nell'output sopra, la tabella contiene solo i record degli studenti Bhavesh e Bhavna perché i loro nomi iniziano con la lettera B.
Domanda 2: La seguente query mostra il record degli studenti della tabella Studenti il cui First_Name contiene il carattere 'a' in qualsiasi posizione:
SELECT Roll_No, First_Name, Percentage, Grade FROM Student WHERE First_Name LIKE '%a%' ;
Output della query precedente:
Rotolo_No | Nome di battesimo | Città | Età | Percentuale | Grado |
---|---|---|---|---|---|
101 | Akash | Delhi | 18 | 89 | A2 |
102 | Bhavesh | Kanpur | 19 | 93 | A1 |
103 | Già | Delhi | venti | 89 | A2 |
104 | Bhavna | Delhi | 19 | 78 | B1 |
105 | Yatin | Lucknow | venti | 75 | B1 |
106 | Ishaka | Ghaziabad | 19 | 91 | C1 |
Operatore uguale (=)
È un tipo di operatore di confronto che mostra i dati corrispondenti dalla tabella SQL specificata.
Questo operatore è molto utilizzato dagli utenti del database in Structured Query Language.
Questo operatore restituisce righe TRUE dalla tabella del database se il valore della colonna è uguale al valore specificato nella query.
Sintassi dell'operatore uguale:
SELECT * FROM Table_Name WHERE Column_Name = Value;
Esempio di operatore uguale
Prendiamo la seguente tabella Worker:
Lavoratore_Id | Nome_lavoratore | Lavoratore_Città | Lavoratore_Stipendio | Bonus_lavoratore |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
102 | Tushar | Lucknow | 29000 | 3000 |
103 | Vivek | Calcutta | 35000 | 2500 |
104 | Shivam | Goa | 22000 | 3000 |
La seguente query mostra il record di quei lavoratori dalla tabella lavoratore il cui Worker_Salary è 35000:
SELECT * FROM Worker WHERE Worker_Salary = 35000;
Produzione:
Lavoratore_Id | Nome_lavoratore | Lavoratore_Città | Lavoratore_Stipendio | Bonus_lavoratore |
---|---|---|---|---|
101 | Anuj | Ghaziabad | 35000 | 2000 |
103 | Vivek | Calcutta | 35000 | 2500 |