TLDR

  • NOT NULL – Wymusza aby wartość nie była NULL
  • UNIQUE – Wymusza aby wartkość była unikalna
  • PRIMARY KEY – Klucz główny, unikalnie identyfikuje rekord w tabeli
  • FOREIGN KEY – Klucz obcy, identyfikuje rekord w tabeli
  • DEFAULT – Ustawia wartość domyślną dla danych
  • AUTO_INCREMENT – Automatycznie przydziela nowym rekordom wartość poprzedniego+1
  • CHECK – Wymusza aby dodawane dane spełniały podany warunek

NOT NULL

Wymusza aby wartość nie była NULL

Przykład:

CREATE TABLE przyklad(
    id INT NOT NULL,
    wiek INT
);

ALTER TABLE przyklad MODIFY COLUMN wiek INT NOT NULL;

UNIQUE

Wymusza aby wartkość była unikalna, nie jest wymagane jeśli używasz PRIMARY KEY na kolumnie.

Przykład:

CREATE TABLE przyklad(
    id INT UNIQUE,
    numer_bagazu INT
);

ALTER TABLE przyklad MODIFY COLUMN numer_bagazu INT UNIQUE;

PRIMARY KEY

Klucz główny, unikalnie identyfikuje rekord w tabeli. Kolumny użyte w PRIMARY KEY muszą mieć nadane ograniczenie NOT NULL.

Przykład:

CREATE TABLE przyklad(
    id INT NOT NULL,
    numer_bagazu INT,
    PRIMARY KEY (id)
);

CREATE TABLE przyklad2(
    id INT NOT NULL,
    nick VARCHAR(40) NOT NULL,
    numer_bagazu INT,
    CONSTRAINT PK_id_nick PRIMARY KEY (ID,nick)
); 

-- Dodaj klucz główny 
ALTER TABLE przyklad ADD PRIMARY KEY (id); 

-- Dodaj klucz główny z nazwą
ALTER TABLE przyklad ADD CONSTRAINT PK_id_nick PRIMARY KEY (id,nick);

-- Usuń klucz główny
ALTER TABLE przyklad DROP PRIMARY KEY;

FOREIGN KEY

Klucz obcy, identyfikuje rekord w tabeli.

Przykład:

CREATE TABLE temp(
    id int NOT NULL,
    PRIMARY KEY (id_temp)
);

CREATE TABLE przyklad(
    id INT UNIQUE,
    numer_bagazu INT,
    id_temp INT,
    id_temp2 INT,
    PRIMARY KEY (id),
    FOREIGN KEY (id_temp) REFERENCES temp(id),
    CONSTRAINT FK_temp2 FOREIGN KEY (id_temp2) REFERENCES temp(id),
);

-- Dodaj klucz obcy odwołujący się do tabeli temp
ALTER TABLE przyklad ADD FOREIGN KEY (id_temp) REFERENCES temp(id);

-- Dodaj klucz obcy z nazwą
ALTER TABLE przyklad ADD CONSTRAINT FK_temp2 FOREIGN KEY (id_temp2) REFERENCES temp(id);

DEFAULT

Ustala wartość domyślną dla danych, która zostanie użyta, jeśli kolumna zostanie pominięta podczas wprowadzania danych.

Przykład:

CREATE TABLE przyklad(
    id INT NOT NULL,
    profil_klasy varchar(255) DEFAULT 'Mat-Inf',
    data_utworzenia date DEFAULT CURRENT_DATE(),
    wiek INT,
);

-- Zmień typ danych aby miał wartość domyślną
ALTER TABLE przyklad MODIFY COLUMN wiek INT DEFAULT 18;

-- Dodaj wartość domyślna bezpośrednio
ALTER TABLE przyklad ALTER wiek SET DEFAULT 18;

-- Zmień typ danych aby usunąć wartość domyślną
ALTER TABLE przyklad MODIFY COLUMN wiek INT;

-- Usuń wartość domyślna bezpośrednio
ALTER TABLE przyklad ALTER wiek DROP DEFAULT; 

AUTO_INCREMENT

Automatycznie zwiększa nowe rekordy o 1, jeśli nie podano danych przy wstawianiu.

Przykład:

CREATE TABLE przyklad(
    id INT AUTO_INCREMENT,
    numer_bagazu INT
);

ALTER TABLE przyklad MODIFY COLUMN numer_bagazu INT AUTO_INCREMENT;

Pierwszą wartością domyślnie jest 1, aby to zmienić można użyć:

ALTER TABLE przyklad AUTO_INCREMENT=100;

CHECK

Wymusza aby dodawane dane spełniały podany warunek

Przykład:

CREATE TABLE przyklad(
    id INT UNIQUE,
    wiek INT,
    jest_studentem BOOLEAN,
    CHECK (wiek>=18)
);

-- Dodaj warunek
ALTER TABLE przyklad ADD CHECK (wiek>=18);

-- Dodaj warunek z nazwą
ALTER TABLE przyklad ADD CONSTRAINT CHK_wiek_profil CHECK (wiek>=18 AND jest_studentem=TRUE);

-- Usuń warunek z nazwą
ALTER TABLE przyklad
DROP CHECK CHK_wiek_profil; 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *