# SQL AND: funzionamento ed esempi dell’operatore

SQL `AND` è un operatore usato per eseguire un’interrogazione con determinati parametri. Solo se tutti i requisiti indicati sono soddisfatti viene considerata la relativa voce.

## Cos’è SQL `AND`?

L’operatore SQL `AND` è utilizzato all’interno dello [Structured Query Language](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/) per includere o escludere determinati risultati durante un’interrogazione. È pertanto uno strumento molto importante per eseguire **ricerche più precise possibili sulla base di determinati criteri**. Al pari di [SQL OR](https://www.ionos.it/digitalguide/server/configurazione/sql-or/), l’operatore è usato in SQL `WHERE` e può anche essere combinato con esso. Entrambi gli operatori funzionano secondo il principio dell’algebra booleana, per cui una risposta può contenere solo i due valori logici vero o falso. Tuttavia, in questo contesto `OR` ha sempre priorità rispetto a SQL `AND`.

## Sintassi e funzionamento

SQL `AND` è usato in un’interrogazione `SELECT` in combinazione con una condizione `WHERE`. La sintassi di una costellazione di questo tipo si presenta come segue:

```sql
SELECT colonna1, colonna2, …
FROM nome_della_tabella
WHERE condizione1 AND condizione2 AND condizione3 AND …;
```

Con il [comando SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) `SELECT` selezioni tutte le colonne da considerare nella tua interrogazione. Puoi anche indicare una sola colonna. Con `FROM` localizzi la relativa tabella per la tua interrogazione. Dopo `WHERE` elenchi quindi le condizioni che devono essere soddisfatte. L’operatore SQL `AND` produce un risultato soltanto **se tutte le condizioni sono soddisfatte**, mentre `OR` restituisce anche le voci che corrispondono ad almeno una condizione.

## Esempi di utilizzo dell’operatore

Il modo più semplice per comprendere il funzionamento e i vantaggi di SQL `AND` è ricorrere a un esempio. Prendiamo un’azienda che ha diverse filiali in tutto il mondo. In un’apposita tabella inseriamo un ID o un numero identificativo per la filiale, la città, la nazione e il numero di collaboratori e collaboratrici. Il nome della nostra tabella è “Filiali”.

<table>
  <thead>
    <tr>
      <th><strong>ID</strong></th>
      <th><strong>Città</strong></th>
      <th><strong>Nazione</strong></th>
      <th><strong>Collaboratore</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Roma</td>
      <td>Italia</td>
      <td>26</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Roma</td>
      <td>Italia</td>
      <td>15</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Milano</td>
      <td>Italia</td>
      <td>21</td>
    </tr>
    <tr>
      <td>4</td>
      <td>Parigi</td>
      <td>Francia</td>
      <td>21</td>
    </tr>
    <tr>
      <td>5</td>
      <td>Londra</td>
      <td>Inghilterra</td>
      <td>17</td>
    </tr>
  </tbody>
</table>

Nel passo successivo avviamo un’interrogazione e usiamo l’operatore `AND` come criterio di esclusione per una ricerca. Vogliamo visualizzare solo le filiali che si trovano in Italia e che occupano più di 20 collaboratori o collaboratrici. La relativa istruzione si presenta come segue:

```sql
SELECT ID, città, nazione, collaboratori
FROM filiali
WHERE nazione = 'Italia' AND collaboratori > 20;
```

Il risultato di questa istruzione sarà il seguente:

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Città</th>
      <th>Nazione</th>
      <th>Collaboratori</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Roma</td>
      <td>Italia</td>
      <td>26</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Milano</td>
      <td>Italia</td>
      <td>21</td>
    </tr>
  </tbody>
</table>

Con l’operatore `AND` abbiamo escluso la filiale con l’ID 2 perché impiega meno di 20 collaboratori e collaboratrici. Le filiali 4 e 5 non saranno considerate perché non si trovano in Italia.

## La combinazione di `AND` e `OR`

È anche possibile combinare SQL `AND` con l’operatore `OR`. Riprendiamo la nostra tabella “Filiali”. Questa volta vogliamo considerare tutte le filiali che hanno più di 20 impiegati o impiegate e che si trovano in Italia O in Francia. Per far questo dobbiamo usare una parentesi. Il codice si presenterà come segue:

```sql
SELECT ID, città, nazione, collaboratori
FROM filiali
WHERE (nazione = 'Italia' OR nazione = 'Francia') AND collaboratori > 20;
```

L’output è il seguente:

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Città</th>
      <th>Nazione</th>
      <th>Collaboratori</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Roma</td>
      <td>Italia</td>
      <td>26</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Milano</td>
      <td>Italia</td>
      <td>21</td>
    </tr>
    <tr>
      <td>4</td>
      <td>Parigi</td>
      <td>Francia</td>
      <td>21</td>
    </tr>
  </tbody>
</table>

## Operatori simili a SQL `AND`

Oltre all’operatore `OR` esiste un’altra alternativa a SQL `AND` per cercare record in base a determinati criteri. L’operatore `NOT` funge da criterio di esclusione, selezionando le voci che `NON` soddisfano un determinato requisito. Nel nostro esempio ti permette quindi di visualizzare tutte le filiali che non si trovano in Italia.

Consiglio Scegli tra MSSQL, MySQL e MariaDB: con l’[hosting SQL Server](https://www.ionos.it/cloud/sql-server-hosting "Hosting SQL Server di IONOS") di IONOS i tuoi dati sono sempre al sicuro e pronti all’uso. Scegli il modello più adatto alle tue esigenze!


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-and/](https://www.ionos.it/digitalguide/server/configurazione/sql-and/) for AI/LLM consumption.