Definiując tabelę mamy możliwość określenia z góry pewnych warunków, jakie muszą spełniać dopuszczalne wiersze tej tabeli. Warunki takie nazywamy warunkami (lub więzami) integralności (constraints). Na przykład możemy zażądać, aby wypełnienie wartości we wskazanej kolumnie było obowiązkowe, aby wartości we wskazanej kolumnie nigdy się nie powtarzały, aby wartości w kolumnie pochodziły z określonego (statycznie lub na podstawie innej tabeli) zakresu itp.
Omówimy teraz sposoby definiowania więzów integralności.
Podając definicję kolumny tabeli możemy od razu wskazać, czy wiersze tej tabeli mają dopuszczać wartości nieokreślone (NULL) w polach tej kolumny. Nieco bardziej rozbudowana wersja rozkazu CREATE TABLE może wyglądać tak:
CREATE TABLE |
nazwa tablicy | ||
(nazwa kolumny |
typ |
(rozmiar) [ NULL |
NOT NULL], |
nazwa kolumny |
typ |
(rozmiar) [ NULL |
NOT NULL], |
. . .) ; |
• NULL oznacza, że pola tej kolumny mogą przyjmować wartości NULL. Jest to domyślny atrybut kolumny (stąd rzadko występuje w pisanych poleceniach CREATE TABLE).
• Wyspecyfikowanie NOT NULL nie dopuszcza do wystąpienia wartości NULL w kolumnie. ORACLE sygnalizuje błąd przy próbie wstawienia lub modyfikacji wiersza z wartością NULL w tej kolumnie.
Utworzenie tabeli DEPT z obowiązkową kolumną DEPTNO.
CREATE TABLE (DEPTNO DNAME LOC
DEPT
NUMBER(2) NOT NULL, VARCHAR2(12), YARCHAR2(12));
13-9
Język definiowania danych, słownik systemowy