32731 ullman198 (2)

32731 ullman198 (2)



4UZ 6 WIĘZY IWYZWALACZE W JĘZYKU SQL

PRZYKŁAD 6.12

Można nawet określić nazwę kluczy zarówno głównych, jak i obcych. Na przykład, aby nazwać więzy klucza głównego określone na rys. 6.1, możemy w następujący sposób zapisać treść z wiersza 2):

2) nazwisko CHAR(30) CONSTRAINT NazwiskoToKlucz PRIMARY KEY,

W podobny sposób można zdefiniować więzy atrybutów CHECK, które wy stępują w przykładzie 6.6:

4) płeć CHAR(1) CONSTRAINT NieNijaki

CHECK (płeć IN ('K', 'M')),

Z kolei nazwę dla więzów dziedziny z przykładu 6.8 można określić w następujący sposób:

CREATE DOMAIN DziedzinaCert INT

CONSTRAINT sześćCyfr CHECK (VALUE >= 100000);

W końcu następująca definicja:

6) CONSTRAINT PrawoDoTytułu

CHECK (płeć = 'F' OR nazwisko NOT LIKE 'Ms.\%')

służy do nazwania więzów krotkowych CHECK, określonych poprzednio w' wierszu 6) na rys. 6.4.

6.5.2. Modyfikowanie więzów określonych dla tabel

Więzy określone dla tabel, dziedzin lub atrybutów można zmieniać za pomocą instrukcji ALTER. Niektóre aspekty stosowania tej instrukcji przedstawiono już w p. 5.7.4 przy okazji usuwania atrybutów z tabel i dołączania nowych; korzystaliśmy wówczas z instrukcji ALTER table. Z kolei w p. 5.7.6 opisano użycie instrukcji AT,TER DOMAIN przy dołączaniu wartości domniemanych.

Tego typu instrukcji można również użyć w przypadku zmian więzów, przy czym zarówno do modyfikowania więzów atrybutów, jak i więzów krotek używa się postaci ALTER TABLE. Usunięcia więzów dokonuje się, stosując słowo kluczowe DROP, po którym podaje się nazwę usuwanych więzów, a z kolei dołączenie nowych więzów wyraża się przez słowo kluczowe A! po którym definiuje się nowe więzy.

PRZYKŁAD 6.13

Dołączanie i usuwanie prześledzimy na więzach z przykładu 6.12. Najpie zostaną usunięte więzy klucza głównego nazwisko w relacji GwiazdaFi mowa:

ALTER TABLE GwiazdaFi linowa DRO? CONSTRAINT Na zwi s koTcKIucz;

Potem usuniemy więzy atrybutu typu CHECK, które służą do ograniczcr zakresu wartości atrybutu płeć:

ALTER TABLE GwiazdaFilinowa DROP CONSTRAINT NieNijaki;

Można także usunąć więzy, które nadają prawo korzystania z tytułu ' Ms. wy łącznie kobietom:

ALTER TABLE GwiazdaFilmowa DROP CONSTRAINT PrawoDcTytułu;

Można przywrócić te więzy, dołączając je ponownie do schematu relac

GwiazdaFilmowa.

ALTER TABLE GwiazdaFilmowa ADD CONSTRAINT NazwiskoToKlucz PRIMARY KEY (nazwisko);

ALTER TABLE GwiazdaFilmowa ADD CONSTRAINT NieNijaki CHECK(płeć IN ('K', 'Mr));

ALTER TABLE GwiazdaFilmowa ADD CONSTRAINT PrawoDoTytułu

CHECK (płeć = 'K' OR nazwisko NOT LTKE 'Ms. \%');

Teraz wszystkie więzy są więzami kratkowymi, a nie atrybutowymi. Ni można im przywrócić charakteru więzów' atrybutowych, gdyby natomiast t< były więzy dziedziny, lo można by zmieniać w całej dziedzinie, a nie tylk< w relac j i Gwi a zda Fi Imowa.

W powyższych definicjach nazwa w ięzów nie jest parametrem obowiąz kowym. Jednakże nie można polegać na $QL, że definicje więzów sprzed icl usunięcia są pamiętane i mogą zostać odtworzone. A zatem trzeba podać defi nicję więzów, a nie tylko ich nazwę.


Wyszukiwarka

Podobne podstrony:
11038 ullman189 (2) 384 6. WIĘZY IWYZWALACZE W JĘZYKU SQL 1 Odpowiedniość między atrybutami pre
ullman202 (2) 410 6. WIĘZY IWYZWALACZE W JĘZYKU SQL 1)    CREATE TRIGGER WyzwąlaczśrC
ullman195 (2) 396 6. WIĘZY l WYZWALACZE W JEŻYKU SQl. nyrni”. Podczas gdy pozostałe typy więzów są t
ullman201 (2) 408 6. WIĘZY I WYZWALACZE W JĘZYKU SQL 1 1)    CREATE TRIGGER Cena
ullman204 (2) 414 6. WIĘZY 1 WYZWALACZE W JĘZYKU SQL ♦    Więzy kratkowe typu CIIEC.K
53198 ullman186 (2) a__________Więzy i wyzwalacze w języku SQL W bieżącym rozdziale opiszemy te aspe
ullman140 (2) 286 $. jąZYK BAZ DANYCH SQL PRZYKŁAD 5.3 Poniższy przykład dotyczy lego samego zapytan

więcej podobnych podstron