CodeGym /Kursy /SQL SELF /Podstawy tworzenia tabel: CREATE TABLE

Podstawy tworzenia tabel: CREATE TABLE

SQL SELF
Poziom 17, Lekcja 0
Dostępny

Na pierwszych wykładach ogarnęliśmy podstawy relacyjnych baz danych i PostgreSQL, nauczyliśmy się korzystać z psql i pgAdmin, a także tworzyć i zarządzać bazami danych. Teraz czas przejść do tworzenia głównego "budulca" relacyjnych baz danych – tabel. To właśnie w tabelach trzymamy wszystkie dane, które potem możemy filtrować, sortować albo łączyć.

Tabele w PostgreSQL tworzymy za pomocą komendy CREATE TABLE. Komenda opisuje strukturę tabeli: jej nazwę, kolumny i ich typy danych.

Ogólna struktura komendy

Tak wygląda podstawowa składnia:

CREATE TABLE tabela (
    kolumna1 typ_danych constraints,
    kolumna2 typ_danych constraints,
    ...
);

Rozbijamy na części:

  • tabela – nazwa tabeli (np. students).
  • kolumna1 – nazwa kolumny (np. id, name).
  • typ_danych – typ danych kolumny (np. INTEGER, VARCHAR).
  • constraints – ograniczenia dla danych (np. NOT NULL, PRIMARY KEY).

Teraz stworzymy naszą pierwszą tabelę.

Przykład tworzenia tabeli

Scenariusz: w bazie do nauki musimy przechowywać dane o studentach. Do tego stworzymy tabelę students z polami:

  • id: unikalny identyfikator studenta (zwiększa się automatycznie);
  • name: imię studenta (długość do 100 znaków);
  • age: wiek studenta (dodatnia liczba całkowita).
CREATE TABLE students (
    id SERIAL PRIMARY KEY,  -- unikalny ID studenta
    name VARCHAR(100),      -- imię
    age INTEGER             -- wiek
);

Co tu się dzieje:

  1. id SERIAL PRIMARY KEY: tworzy się kolumna id, która automatycznie generuje unikalne liczby (1, 2, 3...) dla każdego wiersza. Jest też kluczem głównym tabeli.
  2. name VARCHAR(100): tworzy się kolumna tekstowa, gdzie VARCHAR(100) oznacza, że tekst może mieć do 100 znaków.
  3. age INTEGER: tworzy się kolumna liczbowa na wiek.

Teraz, jeśli wykonasz to zapytanie w psql albo pgAdmin, tabela students zostanie utworzona.

Typy danych dla kolumn

Tworząc tabelę, ważne jest, żeby dobrać odpowiedni typ danych dla każdej kolumny. PostgreSQL daje sporo możliwości, ale zaczniemy od tych najpopularniejszych.

Typ danych Opis Przykład wartości
INTEGER Liczby całkowite. Dobre na wiek, ilość czegoś, identyfikatory. 1, 42, 100
VARCHAR(n) Tekst o długości do n znaków. Idealny na teksty z ograniczoną długością. 'Alice', 'Bob'
TEXT Nieograniczone teksty. Używane do długich opisów (np. opis produktu). 'Bardzo długi tekst...'
DATE Data bez czasu. Używane do zapisywania dat urodzenia, wydarzeń. 2023-10-12
BOOLEAN Typ logiczny: TRUE albo FALSE. Używany do flag (np. zrobione/nie). TRUE, FALSE

Wybór odpowiedniego typu danych

  • Jeśli trzymasz liczby – użyj INTEGER.
  • Dla tekstów z ograniczoną długością – najlepiej VARCHAR(n).
  • Dla tekstów bez limitu – użyj TEXT.
  • Daty i czasy trzymaj w DATE albo TIMESTAMP.

Przykład: tworzymy tabelę courses

Załóżmy, że w naszej bazie musimy też przechowywać info o kursach. Każdy kurs ma:

  • id: unikalny identyfikator;
  • name: nazwa kursu (tekst do 100 znaków);
  • description: opis kursu (długi tekst);
  • start_date: data startu kursu.

Kod SQL:

CREATE TABLE courses (
    id SERIAL PRIMARY KEY,      -- unikalny ID kursu
    name VARCHAR(100),          -- nazwa kursu
    description TEXT,           -- opis
    start_date DATE             -- data startu
);

Zadanie praktyczne

Teraz twoja kolej na stworzenie tabeli! Oto zadanie:

  1. Stwórz tabelę teachers z polami:
    • id: unikalny identyfikator.
    • name: imię nauczyciela (tekst do 50 znaków).
    • subject: przedmiot, którego uczy (tekst do 50 znaków).
    • hire_date: data zatrudnienia.

Przykładowy kod do wykonania:

CREATE TABLE teachers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    subject VARCHAR(50),
    hire_date DATE
);

Po wykonaniu użyj komendy \d teachers w psql, żeby sprawdzić, czy tabela została utworzona.

Typowe błędy przy tworzeniu tabel

Na początku pracy z tabelami mogą pojawić się błędy. Oto kilka najczęstszych sytuacji:

Błąd w nazwie tabeli lub kolumny. W PostgreSQL nazwy nie są czułe na wielkość liter, ale jeśli używasz cudzysłowów " wokół nazw, musisz być ostrożny. Na przykład, CREATE TABLE "MyTable" tworzy tabelę "MyTable", a mytable nie zostanie rozpoznane jako jej nazwa.

Zły typ danych. Jeśli podasz nieistniejący typ danych, zapytanie zakończy się błędem.

CREATE TABLE example (
    column1 STRANGE_TYPE
);

To zapytanie nie zadziała, bo STRANGE_TYPE nie istnieje.

Brak PRIMARY KEY. Jeśli zapomnisz dodać klucz główny, tabela się utworzy, ale identyfikacja wierszy będzie trudniejsza.

2
Zadanie
SQL SELF, poziom 17, lekcja 0
Niedostępne
Tworzenie podstawowej tabeli
Tworzenie podstawowej tabeli
2
Zadanie
SQL SELF, poziom 17, lekcja 0
Niedostępne
Tworzenie tabeli z różnymi typami danych
Tworzenie tabeli z różnymi typami danych
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION