70990 skanuj0267 (3)

70990 skanuj0267 (3)



Rozdział 10. ♦ Podstawy SQL 281

CREATE TABLE Klient( Indeks INTEGER. Nazwa VARCHAR(20)

Każda kolumna może mieć dodatkowe atrybuty. Najczęściej spotykane, które będziemy wykorzystywać w dalszej części książki, to: PRIMARY KEY, NOT NULL, AUTO_INCREMENT, INDEX.

Atrybut PRIMARY KEY oznacza, że dana kolumna jest kluczem podstawowym. Jednocześnie wymusza to indeksowanie tej kolumny oraz zapis w kolejnych wierszach unikalnych wartości (to zrozumiałe, skoro klucz podstawowy musi jednoznacznie identyfikować każdy wiersz). Kolumny z atrybutem PRIMARY KEY są automatycznie indeksowane.

Atrybut NOT NULL oznacza, że w danej kolumnie nie mogą znajdować się wartości puste, czyli że każdy wiersz w tej kolumnie musi zawierać jakąś wartość. Próba zapisania wartości pustej zakończy się niepowodzeniem.

Atrybut AUTO_INCREMENT ma zastosowanie jedynie do kolumn, które przechowują wartości całkowite. Jeżeli podczas wstawiania nowego wiersza jako wartość kolumny zostanie podana wartość pusta NULL lub wartość O, zostanie ona zamieniona na wartość o jeden większą niż wartość maksymalna zapisana w tej kolumnie. Innymi słowy wartość takiej kolumny jest automatycznie zwiększana o jeden podczas wstawiania nowego wiersza.

Atrybut INDEX oznacza, że dana kolumna będzie indeksowana. Klucze podstawowe są indeksowane automatycznie.

Jeśli zatem w naszej przykładowej tabeli Klient kolumna Indeks miałaby być kluczem podstawowym, należałoby zastosować konstrukcję:

CREATE TABLE Klient!

Indeks INTEGER NOT NULL PRIMARY KEY.

Nazwa VARCHAR<20)

Formalnie kolumna będąca kluczem podstawowym powinna być, jak w powyższym przypadku, deklarowana również z atrybutem NOT NULL. Jeśli jednak atrybut ten zostanie pominięty, serwer doda go automatycznie. Nie zostanie zatem zgłoszony błąd, jeśli zastosuje się formę skróconą w postaci:

CREATE TABLE Klient!

Indeks INTEGER PRIMARY KEY.

Nazwa VARCHAR(20)

Jeśli chcielibyśmy, aby kolumna Indeks była kluczem podstawowym z generowanymi automatycznie wartościami, natomiast kolumna Nazwa nie mogła zawierać wartości pustych, należałoby zastosować konstrukcję:

CREATE TABLE Klient!

Indeks INTEGER AUTO INCREMENT NOT NULL PRIMARY KEY.

Nazwa VARCHAR(20) NOT NULL


Wyszukiwarka

Podobne podstrony:
skanuj0269 (3) Rozdział 10. ♦ Podstawy SQL 283 Tabela 10.1. Typy całkowitoliczbowe Typ Zakres
skanuj0271 (3) Rozdział 10. ♦ Podstawy SQL 285 W przypadku typu DECIMAL i jego synonimów możliwe jes
skanuj0279 (3) Rozdział 10. ♦ Podstawy SQL 293Zapytania wprowadzające dane Tabele utworzone w sposób
skanuj0281 (3) Rozdział 10. ♦ Podstawy SQL 295Druga postać instrukcji INSERT Druga wersja instrukcji
skanuj0283 (3) Rozdział 10. ♦ Podstawy SQL 297 Listing 10.1. Instrukcja SOL wstawiające przykładowe

więcej podobnych podstron