# Πώς να χρησιμοποιήσετε τη συνάρτηση SQL `NOT`

Ο τελεστής SQL `NOT` είναι ένας λογικός τελεστής που διευκολύνει **το αποτελεσματικό και ακριβές φιλτράρισμα των αποτελεσμάτων αναζήτησης μέσω της εξαίρεσης**. Μπορείτε να χρησιμοποιήσετε τον τελεστή `NOT` για να παραλείψετε δεδομένα που δεν πληρούν μια συνθήκη, περιορίζοντας τα αποτελέσματά σας στις σχετικές πληροφορίες.

## Τι είναι ο τελεστής SQL `NOT`;

Μαζί με [τους τελεστές `OR`](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/sql-i/) και `AND`, `NOT` είναι ένας από τους λογικούς τελεστές της SQL που μπορούν να χρησιμοποιηθούν για τη διατύπωση συνθηκών και κριτηρίων σε ερωτήματα δεδομένων. Ενώ οι τελεστές `AND` και `OR` επιστρέφουν τα στοιχεία από τα σύνολα δεδομένων που πληρούν όλες ή μία από τις συνθήκες, **`NOT` βασίζεται στην εξαίρεση**. Αποκλείει από τα αποτελέσματα της αναζήτησής σας όλες τις πληροφορίες που *δεν* πληρούν μια συγκεκριμένη συνθήκη.

Το SQL `NOT` χρησιμοποιείται συχνά με SELECT, WHERE και το SQL `HAVING`. Μπορείτε **να συνδυάσετε `NOT` με `AND` και `OR`** για να κάνετε την αναζήτησή σας ακόμα πιο ακριβή. Με αυτόν τον τρόπο θα φιλτράρετε τα άσχετα αποτελέσματα.

### Ποια είναι η διαφορά μεταξύ των προτύπων SQL `NOT`, `AND` και `OR`;

Οι κύριες διαφορές μεταξύ των εκδόσεων `NOT`, `AND` και `OR` της SQL μπορούν να συνοψιστούν ως εξής:

<table>
  <thead>
    <tr>
      <th>SQL `NOT`</th>
      <th>SQL `AND`</th>
      <th>SQL `OR`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Επιστρέφει μόνο στοιχεία που δεν πληρούν την υποδεικνυόμενη συνθήκη</td>
      <td>Επιστρέφει στοιχεία που πληρούν όλες τις καθορισμένες συνθήκες</td>
      <td>Επιστρέφει στοιχεία που πληρούν τουλάχιστον μία από τις καθορισμένες συνθήκες</td>
    </tr>
    <tr>
      <td>Αρνεί μια συνθήκη που δεν είναι σχετική με την αναζήτηση</td>
      <td>Συνδυάζει συνθήκες προκειμένου να περιορίσει την αναζήτηση σε στοιχεία που ανταποκρίνονται σε πολλαπλά κριτήρια αναζήτησης</td>
      <td>Περιορίζει τα αποτελέσματα αναζήτησης σε στοιχεία που πληρούν τουλάχιστον ένα από τα διάφορα κριτήρια</td>
    </tr>
  </tbody>
</table>

Tip Θέλεις να εμβαθύνεις στη [γλώσσα SQL](https://www.ionos.com/el-gr/digitalguide/diakomistis/technognosia/ti-einai-to-sql/), αλλά είσαι ακόμα αρχάριος; Τότε ρίξε μια ματιά στην [εισαγωγή](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/eisagogi-stin-sql-me-paradeigmata/) μας [στη γλώσσα SQL με παραδείγματα](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/eisagogi-stin-sql-me-paradeigmata/).

## Ποια είναι η σύνταξη της εντολής SQL `NOT`;

Η βασική σύνταξη της εντολής SQL `NOT` έχει ως εξής:

```sql
SELECT  *
FROM table
WHERE  NOT  (searchcriteria)
```

Μπορούν να χρησιμοποιηθούν οι ακόλουθες παράμετροι με `NOT`:

- `SELECT`: Καθορίζει ποιες στήλες πρέπει να συμπεριληφθούν στην αναζήτησή σας. Μπορείτε να χρησιμοποιήσετε τον αστερίσκο `*` για να πραγματοποιήσετε αναζήτηση σε ολόκληρο τον πίνακα. Μπορείτε επίσης να καθορίσετε μεμονωμένες στήλες με τα πρωτεύοντα και τα ξένα κλειδιά τους.
- `FROM`: Καθορίζει τον πίνακα στον οποίο θέλετε να πραγματοποιήσετε αναζήτηση.
- `WHERE`: Καθορίζει τις συνθήκες που θέλετε να χρησιμοποιήσετε για να περιορίσετε την αναζήτησή σας. Εδώ μπορείτε να χρησιμοποιήσετε `NOT`.
- `NOT`: Σε συνδυασμό με `WHERE` για να καθορίσετε ποια αποτελέσματα αναζήτησης δεν πρέπει να συμπεριληφθούν.

Αν θέλετε να κάνετε τα αποτελέσματα της αναζήτησής σας ακόμα πιο ακριβή, μπορείτε επίσης να χρησιμοποιήσετε `AND` και `OR`.

### SQL `NOT` σε συνδυασμό με `AND`

Μπορείτε να συνδυάσετε `NOT` με `AND` για να αποκλείσετε αποτελέσματα που πληρούν δύο ή περισσότερες προϋποθέσεις.

```sql
SELECT  *
FROM  table
WHERE  NOT  (condition1  AND  condition2)
```

### SQL `NOT` σε συνδυασμό με `OR`

Μπορείτε να συνδυάσετε `NOT` με `OR` για να αποκλείσετε τα αποτελέσματα που πληρούν **τουλάχιστον μία συνθήκη**.

```sql
SELECT  *
FROM  table
WHERE  NOT  (condition1  OR  condition2)
```

## Σε τι χρησιμοποιείται η εντολή SQL `NOT`;

Υπάρχουν **αμέτρητες χρήσεις** του SQL `NOT` σε ερωτήματα και αναζητήσεις. Μεταξύ αυτών περιλαμβάνονται:

- Εξαίρεση δεδομένων που αφορούν πελάτες, παραγγελίες ή προϊόντα με βάση την περιοχή, το έτος, την κατηγορία, την τιμή ή κάποιο άλλο χαρακτηριστικό
- Αγνοώντας δεδομένα που περιέχουν μη έγκυρες ή ελλείπουσες τιμές
- Φιλτράρισμα οικονομικών δεδομένων που δεν πληρούν συγκεκριμένα κριτήρια συναλλαγών
- Εξαιρώντας δεδομένα για υπαλλήλους που δεν ανήκουν σε συγκεκριμένο τμήμα
- Φιλτράρισμα υποψηφίων που δεν διαθέτουν συγκεκριμένα προσόντα

### Παραδείγματα SQL `NOT`

Οι αναζητήσεις με SQL `NOT` μπορεί να διαφέρουν σημαντικά ανάλογα με την περίπτωση χρήσης. Καθοριστικοί παράγοντες είναι ο τρόπος με τον οποίο ορίζετε τη συνθήκη με τη ρήτρα `WHERE`, τον τελεστή `NOT` και άλλους προαιρετικούς τελεστές. Παρακάτω θα σας παρουσιάσουμε **τρία παραδείγματα**.

### Εξαιρουμένων των εργαζομένων ανά περιοχή

Ας υποθέσουμε ότι εργάζεστε σε έναν πίνακα με το όνομα «Employees» και θέλετε να δείτε μόνο τους υπαλλήλους που **δεν ζουν στο Ηνωμένο Βασίλειο**. Για να το κάνετε αυτό, χρησιμοποιήστε τη στήλη «Country», μια συνθήκη `WHERE`, έναν τελεστή `NOT` και τον τελεστή σύγκρισης `=`.

```sql
SELECT  *
FROM  Customers
WHERE  NOT  (Country  =  'UK')
```

Ή αν θέλατε να δείτε ποια **προϊόντα έχουν εξαντληθεί**, θα έμοιαζε κάπως έτσι:

```sql
SELECT  *
FROM  Products
WHERE  NOT  (Inventory  >  0)
```

### Φιλτράρισμα πελατών

Σε αυτό το παράδειγμα, θα αναζητήσουμε μια ομάδα πελατών που **δεν πληρούν συγκεκριμένα κριτήρια**. Ας υποθέσουμε ότι δεν θέλετε να εμφανίζονται πελάτες ηλικίας κάτω των 30 ετών που ζουν στο Κάρντιφ. Η αναζήτηση θα έχει ως εξής:

```sql
SELECT  *
FROM  Customers
WHERE  NOT  (Age  <  30  AND  City  =  'Cardiff')
```

### Αποκλεισμός των υποψηφίων που δεν πληρούν τα απαιτούμενα προσόντα

Ας υποθέσουμε ότι θέλετε να αποκλείσετε όλους τους υποψηφίους που δεν διαθέτουν πτυχίο ή τουλάχιστον τρία χρόνια εργασιακής εμπειρίας. Η αναζήτηση αυτή θα έχει την εξής μορφή:

```sql
SELECT  *
FROM  Applicants
WHERE  NOT  (Degree  =  ´Bachelor´  OR  Experience  <  3)
```

## Ποιες είναι μερικές εναλλακτικές λύσεις για το SQL `NOT`;

Η SQL `NOT` είναι ο μόνος τελεστής που χρησιμοποιεί την άρνηση για να φιλτράρει τα κριτήρια αναζήτησης. Ωστόσο, δεδομένου ότι ο SQL `NOT` είναι ένας ευέλικτος τελεστής SQL, μπορεί να συνδυαστεί με διάφορες εντολές SQL για την εκτέλεση **ακριβών ερωτημάτων**. Αυτές οι εντολές περιλαμβάνουν το SQL JOIN και τις συναρτήσεις `HAVING` του SQL `HAVING`, όπως [το SQL SUM](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/synolo-sql/) και `AVG`. Μπορεί επίσης να συνδυαστεί με τελεστές σύγκρισης όπως `=`, `>` και το SQL LIKE, καθώς και με τους λογικούς τελεστές `AND` και `OR`.


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/sql-not/](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/sql-not/) for AI/LLM consumption.