# Kuidas luua tabeleid PostgreSQL-i käsuga CREATE TABLE

PostgreSQLi käsku `CREATE TABLE` kasutatakse uute tabelite loomiseks andmebaasis. Selle käsu kasutamisel on võimalik määrata ka tabeli ja üksikute veergude erinevad parameetrid.

## Mis on PostgreSQL `CREATE TABLE`?

PostgreSQL-i käsku `CREATE TABLE` **CREATE TABLE** `CREATE TABLE` kasutatakse **uue tabeli loomiseks olemasolevasse andmebaasi**. Uue tabeli loomisel tuleb määrata sellele unikaalne nimi ning anda igale veerule nimi ja andmetüüp. Selles populaarses andmebaasihaldussüsteemis tabeleid luues on võimalik määrata piiranguid kas kõigile tabeli veergudele või üksikutele veergudele.

Tip Kui soovite oma tabeli seadeid hiljem muuta, saate käsuga [ALTER TABLE](https://www.ionos.com/et-ee/digitalguide/server/seadistused/postgresql-alter-table/) veerge vastavalt vajadusele kohandada.

## Milline on numbri `CREATE TABLE` kirjutamisviis?

PostgreSQL `CREATE TABLE` põhiline süntaks on järgmine:

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

Käsk `CREATE TABLE` käsib PostgreSQL-il **luua uus tabel**. Käskule järgneb tabeli nimi, mis peab olema unikaalne. Vahetult tabeli nime järel on sulgudes, mille sees tuleb määratleda erinevad veerunimed ja neile vastavad andmetüübid.

Kui soovid lisada piiranguid, muutub süntaks järgmiselt:

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

Lisaks punktile `PRIMARY KEY` toetab PostgreSQL ka järgmisi piiranguid:

- `NOT NULL`: Tagab, et veerg ei saa sisaldada `NULL` väärtust
- `UNIQUE`: Tagab, et kõik veeru või veergude kombinatsiooni väärtused on unikaalsed
- `CHECK`: Määrab tingimused, mis peavad olema täidetud andmete sisestamisel või uuendamisel
- `FOREIGN KEY`: Loob seose teise tabeli veeruga
- `DEFAULT`: Määrab veeru vaikimisi väärtuse, kui selgesõnalist väärtust ei ole esitatud

## PostgreSQL `CREATE TABLE` näide

Et näidata, kuidas PostgreSQL-is `CREATE TABLE` töötab, loome tabeli nimega `customer_list`. Sellel tabelil on neli veergu: `id`, `name`, `country` ja `address`. Veerg `id` on määratud väärtuseks `PRIMARY KEY`. Piirangut `NOT NULL` kasutatakse selleks, et tagada, et veerud `id` ja `name` sisaldaksid väärtusi. Kood näeb välja järgmine:

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

See käsk loob tühja tabeli, mille nimi ja veerud on koodis määratud. Nüüd saate tabelisse andmeid sisestada. Kui tabel on andmetega täidetud, võib see välja näha umbes selline:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>nimi</th>
      <th>riik</th>
      <th>aadress</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Emily Näide</td>
      <td>Suurbritannia</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>

### Kuidas kontrollida tabeleid, kasutades `\d`

Käsk `\d` loetleb kõik andmebaasi tabelid ja selle abil saab kontrollida, kas tabeli loomine õnnestus. Tegutse järgmiselt:

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

Selle käsuga saad ka tabeli üksikasjaliku kirjelduse. Näitame sulle eespool toodud tabeli näitel, kuidas vastav kood välja näeb:

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


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/server/seadistused/postgresql-create-table/](https://www.ionos.com/et-ee/digitalguide/server/seadistused/postgresql-create-table/) for AI/LLM consumption.