# Πώς να δημιουργήσετε πίνακες με την εντολή CREATE TABLE του PostgreSQL

Η εντολή POSTGRESQL `CREATE TABLE` χρησιμοποιείται για τη δημιουργία νέων πινάκων σε μια βάση δεδομένων. Όταν χρησιμοποιείτε αυτήν την εντολή, μπορείτε επίσης να ορίσετε διάφορες παραμέτρους για τον πίνακα και τις επιμέρους στήλες.

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

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

Tip Αν θέλετε να τροποποιήσετε τις ρυθμίσεις του πίνακα σας αργότερα, μπορείτε να χρησιμοποιήσετε την εντολή [ALTER TABLE](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/postgresql-alter-table/) για να προσαρμόσετε τις στήλες ανάλογα με τις ανάγκες σας.

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

Η βασική σύνταξη για το PostgreSQL `CREATE TABLE` έχει ως εξής:

```postgresql
CREATE TABLE table_name(
column1 data_type PRIMARY KEY,
column2 data_type,
column3 data_type,
…
);
```

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

Αν θέλετε να προσθέσετε περιορισμούς, η σύνταξη αλλάζει:

```postgresql
CREATE TABLE table_name(
column1 data_type PRIMARY KEY constraint,
column2 data_type constraint,
column3 data_type constraint,
…
);
```

Εκτός από τον περιορισμό `PRIMARY KEY`, το PostgreSQL υποστηρίζει επίσης τους ακόλουθους περιορισμούς:

- `NOT NULL`: Διασφαλίζει ότι μια στήλη δεν μπορεί να περιέχει `NULL` τιμές
- `UNIQUE`: Διασφαλίζει ότι όλες οι τιμές σε μια στήλη ή σε ένα συνδυασμό στηλών είναι μοναδικές
- `CHECK`: Ορίζει τις προϋποθέσεις που πρέπει να πληρούνται κατά την εισαγωγή ή την ενημέρωση δεδομένων
- `FOREIGN KEY`: Καθορίζει μια σχέση με μια στήλη σε έναν άλλο πίνακα
- `DEFAULT`: Καθορίζει μια προεπιλεγμένη τιμή για μια στήλη, εάν δεν παρέχεται ρητή τιμή

## Παράδειγμα PostgreSQL `CREATE TABLE`

Για να δείξουμε πώς λειτουργεί `CREATE TABLE` στο PostgreSQL, θα δημιουργήσουμε έναν πίνακα με το όνομα `customer_list`. Ο πίνακας αυτός θα έχει τέσσερις στήλες: `id`, `name`, `country` και `address`. Η στήλη `id` έχει οριστεί ως `PRIMARY KEY`. Ο περιορισμός `NOT NULL` χρησιμοποιείται για να διασφαλίσει ότι οι στήλες `id` και `name` περιέχουν τιμές. Ο κώδικας έχει ως εξής:

```postgresql
CREATE TABLE customer_list(
id INT PRIMARY KEY NOT NULL,
name VARCHAR(50) NOT NULL,
country VARCHAR(50),
address VARCHAR(255)
);
```

Αυτή η εντολή δημιουργεί έναν κενό πίνακα με το όνομα και τις στήλες που έχουν καθοριστεί στον κώδικα. Τώρα μπορείτε να συμπληρώσετε τον πίνακα με δεδομένα. Όταν συμπληρωθεί με δεδομένα, ο πίνακας μπορεί να έχει περίπου την εξής μορφή:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>όνομα</th>
      <th>χώρα</th>
      <th>διεύθυνση</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Emily Example</td>
      <td>Ηνωμένο Βασίλειο</td>
      <td>123 High St, Anytown, W1 4GH</td>
    </tr>
    <tr>
      <td>2</td>
      <td>…</td>
      <td>…</td>
      <td>…</td>
    </tr>
    <tr>
      <td>3</td>
      <td>…</td>
      <td>…</td>
      <td>…</td>
    </tr>
  </tbody>
</table>

### Πώς να ελέγξετε αν υπάρχουν πίνακες χρησιμοποιώντας `\d`

Η εντολή `\d` εμφανίζει όλους τους πίνακες μιας βάσης δεδομένων και μπορεί να χρησιμοποιηθεί για να ελέγξετε αν ένας πίνακας δημιουργήθηκε με επιτυχία. Δείτε πώς:

```postgresql
testdb-# \d
```

Μπορείτε επίσης να χρησιμοποιήσετε αυτήν την εντολή για να λάβετε μια λεπτομερή περιγραφή ενός πίνακα. Θα χρησιμοποιήσουμε τον πίνακα από παραπάνω για να σας δείξουμε πώς μοιάζει ο κώδικας για να το κάνετε αυτό:

```postgresql
testdb-# \d customer_list
```


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