Mysql
 sql >> Database >  >> RDS >> Mysql

Dove clausola per filtrare le righe in MySQL

Questo tutorial fa parte della serie Learn Basic SQL Query Using MySQL. Nel tutorial precedente, abbiamo discusso le query SQL per recuperare le righe o leggere i dati da una tabella in MySQL. Il comando SELECT restituisce tutte le righe in una tabella a meno che non specifichiamo il limite come mostrato negli esempi di tutorial precedenti. In diverse situazioni, è necessario filtrare le righe risultate per ottenere che le righe limitate soddisfino determinate condizioni. Possiamo filtrare le righe usando la clausola WHERE specificando la condizione di filtro. Possiamo anche specificare più condizioni utilizzando le parole chiave AND, OR.

Dove clausola

Il DOVE La clausola può essere utilizzata per leggere le righe filtrate da una tabella in base alle condizioni specificate. Nel caso in cui tu abbia effettuato l'accesso remoto al database, avrai anche bisogno del privilegio SELECT per la tabella per poter leggere le righe da una tabella.

# SELECT - Syntax - WHERE
SELECT column_1,column_2,... FROM table_name WHERE <single or multiple conditions>;

Spiegazione della query

Il comando MySQL SELECT può essere utilizzato per leggere righe o dati dal nome di tabella specificato in cui l'espressione selezionata e il nome della tabella sono obbligatori.

Possiamo filtrare il set di query risultante restituito dalla query di selezione utilizzando la clausola WHERE. Possiamo specificare condizioni singole o multiple per filtrare i risultati. Le parole chiave E e O può essere utilizzato per applicare più condizioni. Possiamo anche utilizzare le parole chiave IN e NON IN per limitare i valori della colonna a un insieme di valori.

Operatori

Possiamo utilizzare gli operatori elencati di seguito per eseguire confronti durante l'applicazione delle condizioni di filtro. Il confronto verrà effettuato utilizzando il valore dato e i valori memorizzati nella colonna della tabella.

= Può essere utilizzato per verificare se i valori dei due operandi sono uguali o meno.


!= Verifica se i valori dei due operandi non sono uguali.


> Verifica se il valore dell'operando sinistro è maggiore del valore dell'operando destro.


< Verifica se il valore dell'operando di sinistra è inferiore al valore dell'operando di destra.


>= Verifica se il valore dell'operando di sinistra è maggiore o uguale al valore dell'operando di destra.


<= Verifica se il valore dell'operando di sinistra è minore o uguale al valore dell'operando di destra.

Esempi

Questa sezione fornisce esempi per leggere i dati filtrati dalla tabella utilizzando SELECT comando con WHERE clausola. Utilizza la query di seguito indicata per creare la tabella utente con le colonne ID, nome e cognome in cui archiviare i dati utente.

# Create the User Table
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`first_name` varchar(45),
`last_name` varchar(45)
);

La query sotto indicata può essere utilizzata per inserire dati nella tabella utente.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
( 1, 'John', 'Smith' ),
( 2, 'Rick', 'Jones' ),
( 3, 'Catherine', 'Ponting' ),
( 4, 'Harsh', 'Upadhyay' ),
( 5, 'Tajwinder', 'Singh' ),
( 6, 'Leo', NULL ),
( 7, 'Leo', 'Murphy' ),
( 8, 'Ram', 'Choudhary' ),
( 9, 'Nicole', NULL ),
( 10, 'Ram', 'Choudhary' );

La suddetta query inserirà 10 righe nella tabella con ID, nome e cognome per rappresentare 10 utenti diversi.

Ora leggeremo i dati filtrati da noi inseriti nella tabella utente. Può essere fatto usando il comando SELECT come mostrato di seguito.

# Filter - WHERE - Read all rows having first name set to Leo
SELECT * FROM `user` WHERE `first_name` = 'Leo';

# Result
6 Leo
7 Leo Murphy


# Filter - WHERE - AND - Read all rows having first name set to Leo and last name set to Murphy
SELECT * FROM `user` WHERE `first_name` = 'Leo' AND `last_name` = 'Murphy';

# Result
7 Leo Murphy


# Filter - WHERE - IS NOT - Read all rows having last name without NULL values
SELECT * FROM `user` WHERE `last_name` IS NOT NULL;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay
5 Tajwinder Singh
7 Leo Murphy
8 Ram Choudhary
10 Ram Choudhary


# Filter - WHERE - OR, IN - Read all rows having first name is either John or Harsh
SELECT * FROM `user` WHERE `first_name` = 'John' OR `first_name` = 'Harsh';
SELECT * FROM `user` WHERE `first_name` IN ( 'John', 'Harsh' );

# Result
1 John Smith
4 Harsh Upadhyay

Le query sopra menzionate eseguono varie operazioni di filtro su string valori utilizzando condizioni singole o multiple. Assicurati di utilizzare le virgolette singole mentre applichi i filtri per le colonne con il tipo di dati stringa.

# Filter - WHERE - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay


# Filter - WHERE - LIMIT - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5 LIMIT 2;

# Result
1 John Smith
2 Rick Jones


# Filter - WHERE - AND - Read all rows having id greater than 3 and lesser than 6
SELECT * FROM `user` WHERE `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay
5 Tajwinder Singh

Le query sopra menzionate applicano le condizioni per i tipi di dati numerici. Possiamo anche combinare i diversi tipi di valori come mostrato di seguito.

# Filter - WHERE - AND - Read all rows having first name set to Harsh, id greater than 2 and lesser than 5
SELECT * FROM `user` WHERE `first_name` = 'Harsh' AND `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay

Ecco come possiamo leggere i dati filtrati memorizzati nelle tabelle MySQL usando la clausola WHERE.