poniedziałek, 24 września 2018

SQLite ograniczenia


SQLite - Constraints

Ograniczenia są regułami wymuszonymi na kolumnach danych w tabeli. Służą one do ograniczenia typu danych, które mogą wejść do tabeli. Zapewnia to dokładność i wiarygodność danych w bazie danych.
Ograniczenia mogą być na poziomie kolumny lub tabeli. Ograniczenia na poziomie kolumny są stosowane tylko do jednej kolumny, podczas gdy ograniczenia na poziomie tabeli są stosowane do całej tabeli.
Poniżej przedstawiono powszechnie stosowane ograniczenia dostępne w SQLite.
·      NOT NULL Constraint - Zapewnia, że ​​kolumna nie może mieć wartości NULL.
·      DEFAULT Constraint - Zapewnia domyślną wartość dla kolumny, gdy żadna nie jest określona.
·      UNIQUE Constraint - Zapewnia, że ​​wszystkie wartości w kolumnie są różne.
·      Klucz PRIMARY - jednoznacznie identyfikuje każdy wiersz / rekord w tabeli bazy danych.
·      CHECK Constraint - Zapewnia, że ​​wszystkie wartości w kolumnie spełniają określone warunki.

NOT NULL ograniczenie

Domyślnie kolumna może zawierać wartości NULL. Jeśli nie chcesz, aby kolumna miała wartość NULL, musisz zdefiniować takie ograniczenie w tej kolumnie, określając, że NULL jest teraz niedozwolone dla tej kolumny.
Wartość NULL różni się od danych, ale reprezentuje nieznane dane.
Przykład
Na przykład poniższa instrukcja SQLite tworzy nową tabelę o nazwie FIRMA i dodaje pięć kolumn, z których trzy, ID i NAZWA i WIEK, nie akceptują wartości NULL.
CREATE TABLE PRACOWNIK(
   ID INT PRIMARY KEY     NOT NULL,
   nazwisko               TEXT    NOT NULL,
   wiek            INT     NOT NULL,
   adres           CHAR(50),
   pensja          REAL
);

DEFAULT ograniczenie

Ograniczenie DEFAULT zapewnia wartość domyślną dla kolumny, gdy instrukcja INSERT INTO nie zapewnia określonej wartości.
Przykład
Na przykład następująca instrukcja SQLite tworzy nową tabelę o nazwie PRACOWNIK i dodaje pięć kolumn. W tym miejscu kolumna PENSJA jest domyślnie ustawiona na 5000,00, dlatego w przypadku, gdy instrukcja INSERT INTO nie zapewnia wartości dla tej kolumny, domyślnie kolumna ta będzie ustawiona na 5000,00.
CREATE TABLE PRACOWNIK(
   ID INT PRIMARY KEY     NOT NULL,
   nazwisko               TEXT    NOT NULL,
   wiek                   INT     NOT NULL,
   adres                  CHAR(50),
   pensja                 REAL    DEFAULT 50000.00
);

UNIQUE ograniczenie

Polecenie UNIQUE uniemożliwia dwóm rekordom posiadanie identycznych wartości w określonej kolumnie. Na przykład w tabeli PRACOWNIK możesz chcieć zapobiec temu, aby dwie lub więcej osób miało identyczny wiek.
Przykład
Na przykład następująca instrukcja SQLite tworzy nową tabelę o nazwie PRACOWNIK i dodaje pięć kolumn. Tutaj kolumna WIEK jest ustawiona na UNIQUE, więc nie możesz mieć dwóch rekordów z tym samym wiekiem:
CREATE TABLE PRACOWNIK(
   ID INT PRIMARY KEY     NOT NULL,
   nazwisko        TEXT    NOT NULL,
   wiek            INT     NOT NULL UNIQUE,
   adres           CHAR(50),
   pensja          REAL    DEFAULT 50000.00
);

PRIMARY KEY ograniczenie

Ograniczenie PRIMARY KEY jednoznacznie identyfikuje każdy rekord w tabeli bazy danych. Może istnieć więcej kolumn UNIQUE, ale tylko jeden klucz podstawowy w tabeli. Klucze podstawowe są ważne podczas projektowania tabel bazy danych. Klucze podstawowe to unikalne identyfikatory.
Używamy ich w odniesieniu do wierszy tabeli. Klucze podstawowe stają się kluczami obcymi w innych tabelach podczas tworzenia relacji między tabelami. Z powodu "długotrwałego niedopatrzenia", klucze podstawowe mogą mieć wartość NULL w SQLite. Tak nie jest w przypadku innych baz danych.
Klucz podstawowy to pole w tabeli, które jednoznacznie identyfikuje poszczególne wiersze / rekordy w tabeli bazy danych. Klucze podstawowe muszą zawierać unikalne wartości. Kolumna klucza podstawowego nie może mieć wartości NULL.
Tabela może mieć tylko jeden klucz podstawowy, który może składać się z jednego lub wielu pól. Gdy wiele pól jest używanych jako klucz podstawowy, są one nazywane kluczem złożonym.
Jeśli tabela ma klucz podstawowy zdefiniowany w dowolnym polu (polach), wówczas nie można mieć dwóch rekordów o tej samej wartości tego pola.
Przykład
Widzieliście już różne przykłady powyżej, w których stworzyliśmy tabelę PRACOWNIK z identyfikatorem jako kluczem podstawowym.
CREATE TABLE PRACOWNIK(
   ID INT PRIMARY KEY     NOT NULL,
   nazwisko        TEXT    NOT NULL,
   wiek            INT     NOT NULL,
   adres           CHAR(50),
   pensja          REAL
);

CHECK ograniczenie

Ograniczeniee CHECK umożliwia sprawdzenie wartości wprowadzanej do rekordu. Jeśli warunek zostanie uznany za fałszywy, rekord narusza ograniczenie i nie jest wprowadzany do tabeli.
Przykład
Poniższy przykład SQLite tworzy nową tabelę o nazwie PRACOWNIK i dodaje pięć kolumn. Tutaj dodajemy kolumnę PENSJA z opcją CHECK, aby nie można było wprowadzić warości zero.
CREATE TABLE PRACOWNIK3(
   ID INT PRIMARY KEY     NOT NULL,
   nazwisko        TEXT    NOT NULL,
   wiek            INT     NOT NULL,
   adres           CHAR(50),
   pensja          REAL    CHECK(pensja > 0)
);

Usuwanie ograniczenia

SQLite obsługuje ograniczony podzbiór ALTER TABLE. Polecenie ALTER TABLE w SQLite pozwala użytkownikowi zmienić nazwę tabeli lub dodać nową kolumnę do istniejącej tabeli. Nie można zmienić nazwy kolumny, usunąć kolumny ani dodać lub usunąć ograniczeń z tabeli.

Brak komentarzy:

Prześlij komentarz