# Kako ustvariti tabele s PostgreSQL-ovim ukazom CREATE TABLE

Ukaz PostgreSQL `CREATE TABLE` se uporablja za ustvarjanje novih tabel v bazi podatkov. Pri uporabi tega ukaza lahko določite tudi različne lastnosti tabele in posameznih stolpcev.

## Kaj je PostgreSQL `CREATE TABLE`?

Ukaz `CREATE TABLE` v PostgreSQL se uporablja za **ustvarjanje nove tabele v obstoječi zbirki podatkov**. Pri ustvarjanju nove tabele je treba določiti njeno edinstveno ime ter vsakemu stolpcu dodeliti ime in podatkovni tip. Pri ustvarjanju tabel v tem priljubljenem sistemu za upravljanje zbirk podatkov lahko določite tudi omejitve, bodisi za vse stolpce v tabeli bodisi za posamezne stolpce.

Tip Če želite nastavitve tabele kasneje spremeniti, lahko s pomočjo ukaza [ALTER TABLE](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/postgresql-alter-table/) po potrebi prilagodite stolpce.

## Kakšna je sintaksa za `CREATE TABLE`?

Osnovna sintaksa za PostgreSQL `CREATE TABLE` je naslednja:

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

Z ukazom `CREATE TABLE` se PostgreSQLu naroči, naj **ustvari novo tabelo**. Za samim ukazom sledi ime tabele, ki mora biti edinstveno. Neposredno za imenom tabele se nahaja sklop oklepajev, v katerih je treba opredeliti imena posameznih stolpcev in njihove ustrezne podatkovne tipe.

Če želite dodati omejitve, se sintaksa spremeni:

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

Poleg omejitve `PRIMARY KEY` PostgreSQL podpira tudi naslednje omejitve:

- `NOT NULL`: Zagotavlja, da stolpec ne more vsebovati `NULL` vrednosti
- `UNIQUE`: Zagotavlja, da so vse vrednosti v stolpcu ali kombinaciji stolpcev edinstvene
- `CHECK`: Določa pogoje, ki morajo biti izpolnjeni pri vstavljanju ali posodabljanju podatkov
- `FOREIGN KEY`: Vzpostavi povezavo s stolpcem v drugi tabeli
- `DEFAULT`: Določa privzeto vrednost za stolpec, če ni navedena nobena izrecna vrednost

## Primer PostgreSQL `CREATE TABLE`

Da bi ponazorili, kako deluje `CREATE TABLE` v PostgreSQL, bomo ustvarili tabelo z imenom `customer_list`. Ta tabela bo imela štiri stolpce: `id`, `name`, `country` in `address`. Stolpec `id` je nastavljen kot `PRIMARY KEY`. Omejitev `NOT NULL` se uporablja za zagotovitev, da stolpca `id` in `name` vsebujeta vrednosti. Koda je naslednja:

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

Ta ukaz ustvari prazno tabelo z imenom in stolpci, ki so bili določeni v kodi. Zdaj lahko tabelo napolnite s podatki. Ko je tabela napolnjena s podatki, lahko izgleda približno takole:

<table>
  <thead>
    <tr>
      <th>id</th>
      <th>ime</th>
      <th>država</th>
      <th>naslov</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Emily Primer</td>
      <td>Združeno kraljestvo</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>

### Kako preveriti tabele z uporabo `\d`

Ukaz `\d` prikaže seznam vseh tabel v bazi podatkov in se lahko uporabi za preverjanje, ali je bila tabela uspešno ustvarjena. Tako se to naredi:

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

Ta ukaz lahko uporabite tudi za prikaz podrobnega opisa tabele. Za prikaz, kako izgleda koda za to, bomo uporabili zgornjo tabelo:

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


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/postgresql-create-table/](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/postgresql-create-table/) for AI/LLM consumption.