# Πώς να προσθέσετε ή να αφαιρέσετε στήλες στο PostgreSQL με την εντολή ALTER TABLE

Η εντολή ``ALTER TABLE`` στο PostgreSQL σάς επιτρέπει να προσθέτετε ή να τροποποιείτε στήλες στους πίνακες της βάσης δεδομένων.

## Τι είναι το PostgreSQL `ALTER TABLE`;

Η εντολή `ALTER TABLE` στο PostgreSQL μπορεί να χρησιμοποιηθεί για **την τροποποίηση πινάκων** σε μια βάση δεδομένων. Αυτή η εντολή σας επιτρέπει να προσθέτετε, να αφαιρείτε ή να προσαρμόζετε στήλες σε έναν πίνακα, ανάλογα με τις ανάγκες. Μπορεί επίσης να χρησιμοποιηθεί για την εφαρμογή ή την άρση περιορισμών σε έναν πίνακα στο σύστημα διαχείρισης βάσεων δεδομένων. Για να χρησιμοποιήσετε αυτήν την εντολή, πρέπει να τη συνδυάσετε με μια συγκεκριμένη ενέργεια.

## Ποια είναι η σύνταξη για `ALTER TABLE`;

Για να κατανοήσουμε καλύτερα πώς χρησιμοποιείται `ALTER TABLE`, ας ρίξουμε πρώτα μια ματιά στη σύνταξή της:

```postgresql
ALTER TABLE table_name action;
```

Μετά την εντολή, πρέπει να καθορίσετε το όνομα του πίνακα που θέλετε να τροποποιήσετε και να επιλέξετε την αντίστοιχη ενέργεια για τις αλλαγές που θέλετε να κάνετε.

Tip Για να δημιουργήσετε έναν νέο πίνακα, μπορείτε να χρησιμοποιήσετε την εντολή [CREATE TABLE](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/postgresql-create-table/) στο PostgreSQL.

## Παραδείγματα PostgreSQL `ALTER TABLE`

Παρακάτω, θα δείξουμε πώς λειτουργεί `ALTER TABLE` με ένα απλό παράδειγμα. Θα χρησιμοποιήσουμε έναν πίνακα με το όνομα `customers`, ο οποίος έχει τρεις στήλες και τρεις σειρές:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>όνομα</th>
      <th>πόλη</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>Νόρθαμπτον</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Τζόνσον</td>
      <td>Εδιμβούργο</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Σμιθ</td>
      <td>Μπράιτον</td>
    </tr>
  </tbody>
</table>

Μπορούμε να προσαρμόσουμε αυτόν τον πίνακα με διάφορους τρόπους χρησιμοποιώντας `ALTER TABLE`.

### Προσθήκη στήλης με το PostgreSQL `ADD COLUMN`

Για να προσθέσετε μια νέα στήλη, χρησιμοποιήστε `ALTER TABLE` σε συνδυασμό με την ενέργεια `ADD COLUMN` του PostgreSQL. Αυτή η ενέργεια απαιτεί δύο παραμέτρους: το όνομα της νέας στήλης και τον τύπο δεδομένων της. Η σύνταξη έχει ως εξής:

```postgresql
ALTER TABLE table_name ADD COLUMN column_name data_type;
```

Για παράδειγμα, δείτε πώς μπορείτε να προσθέσετε μια στήλη «Διεύθυνση» στον πίνακα `customers`:

```postgresql
ALTER TABLE customers ADD COLUMN address VARCHAR(255);
```

Ο πίνακας έχει πλέον την εξής μορφή:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>όνομα</th>
      <th>πόλη</th>
      <th>διεύθυνση</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>Νόρθαμπτον</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Τζόνσον</td>
      <td>Εδιμβούργο</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Σμιθ</td>
      <td>Μπράιτον</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Διαγραφή στήλης με `DROP COLUMN`

Για να διαγράψετε μια στήλη από έναν πίνακα, χρησιμοποιήστε την ενέργεια `ALTER TABLE` με την επιλογή `DROP COLUMN`. Εδώ, αρκεί να προσθέσετε το όνομα της στήλης ως παράμετρο:

```postgresql
ALTER TABLE table_name DROP COLUMN column_name;
```

Για να καταργήσετε τη στήλη `city`, χρησιμοποιήστε τον παρακάτω κώδικα:

```postgresql
ALTER TABLE customers DROP COLUMN city;
```

Έτσι, ο πίνακας περιορίζεται σε τρεις στήλες:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>όνομα</th>
      <th>διεύθυνση</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Τζόνσον</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Σμιθ</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Μετονομασία στήλης με `RENAME COLUMN`

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

```postgresql
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
```

Για παράδειγμα, μπορείτε να αλλάξετε τη στήλη `name` σε `customer_name`:

```postgresql
ALTER TABLE customers RENAME COLUMN name TO customer_name;
```

Ο πίνακας έχει πλέον την εξής μορφή:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>όνομα\_πελάτη</th>
      <th>διεύθυνση</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Lee</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Τζόνσον</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Σμιθ</td>
      <td>NULL</td>
    </tr>
  </tbody>
</table>

### Πρόσθετες ενέργειες PostgreSQL για την έκδοση `ALTER TABLE`

Ακολουθούν μερικές άλλες βασικές ενέργειες που μπορείτε να χρησιμοποιήσετε με `ALTER TABLE`:

Αλλαγή του **τύπου δεδομένων** μιας στήλης:

```postgresql
ALTER TABLE table_name ALTER COLUMN column_name TYPE data_type;
```

Βεβαιωθείτε ότι κάθε εγγραφή σε μια στήλη έχει τιμή:

```postgresql
ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;
```

Ο καθορισμός περιορισμών όπως `UNIQUE` ή `PRIMARY KEY` με τη χρήση `ALTER TABLE` και `ADD CONSTRAINT`:

```postgresql
ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;
```


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