• Nie Znaleziono Wyników

Klucz podstawowy – PRIMARY KEY

N/A
N/A
Protected

Academic year: 2021

Share "Klucz podstawowy – PRIMARY KEY "

Copied!
23
0
0

Pełen tekst

(1)

Autor: Joanna Karwowska

(2)

Klucz podstawowy – PRIMARY KEY

Klucz kandydujący – UNIQUE

Klucz alternatywny - klucze

kandydujące, które nie zostały wybrane na klucz podstawowy

Klucz obcy - REFERENCES

(3)

Tworząc tabelę, można zdefiniować zarówno klucz główny jak i klucze kandydujące.

Zdefiniowanie klucza głównego wymaga użycia klauzuli PRIMARY KEY.

W tabeli może być zidentyfikowany tylko jeden klucz główny.

Definicja klucza głównego znajduje się po

definicjach pól, jeżeli klucz główny składa się z kilku pól podaje się listę nazw pól oddzieloną przecinkami.

(4)

Słowo UNIQUE służy do określenia, która

kolumna (lub grupa kolumn) musi być unikalna i jest przez to kluczem kandydującym.

Użycie ograniczenia UNIQUE powoduje, że

próba powtórzenia danych w tych kolumnach będzie przez bazę danych powstrzymana.

(5)

Atrybut PRIMARY KEY oznacza, że dana kolumna będzie kluczem podstawowym.

Kolumny z takim atrybutem są automatycznie indeksowane oraz unikatowe (każdy wiersz

takiej kolumny musi mieć inną wartość).

Indeksowanie kolumny oznacza, że wewnątrz bazy powstanie specjalna struktura

porządkująca dane w kolumnie (kolumnach), co przyspiesza wiele operacji takich jak

sortowanie czy wyszukiwanie.

(6)

Utwórz tabelę

osoby

, w której pole id będzie kluczem podstawowym.

CREATE TABLE

osoby

(

id INT PRIMARY KEY AUTO_INCREMENT, nazwisko VARCHAR(25),

);

(7)

Utwórz tabelę

test

, w której pola id i nazwa tworzą klucz podstawowy.

CREATE TABLE

test

(

id INT,

nazwa VARCHAR(20),

PRIMARY KEY(id, nazwa) );

(8)

Dodaj do tabeli

osoby

klucz podstawowy składający się z kolumny id.

ALTER TABLE osoby ADD CONSTRAINT pk PRIMARY KEY (id);

gdzie pk jest nazwą klucza podstawowego.

(9)

Dodaj do tabeli

osoby

klucz podstawowy

składający się z kolumn id, imie, nazwisko.

ALTER TABLE osoby ADD CONSTRAINT pk

PRIMARY KEY (id, imie, nazwisko);

(10)

Usuń z tabeli

osoby

klucz podstawowy.

ALTER TABLE osoby

DROP PRIMARY KEY;

(11)

Klucz kandydujący – UNIQUE – jest to pole unikatowe, które w sposób jednoznaczny identyfikuje każdy rekord tabeli.

np. PESEL CHAR(11) UNIQUE NOT NULL

Może być kluczem podstawowym tabeli.

Projektant bazy danych decyduje o tym, który z kluczy kandydujących wybrać na klucz podstawowy.

(12)

Dodanie atrybutu UNIQUE do kolumny pesel uzyskamy za pomocą instrukcji:

ALTER TABLE osoby ADD CONSTRAINT

pesel_unique UNIQUE (pesel);

(13)

Usunięcie atrybutu UNIQUE z kolumny pesel uzyskamy za pomocą instrukcji:

ALTER TABLE osoby

DROP INDEX pesel_unique;

(14)

Klucz obcy – (klauzula REFERENCES) służy do ustalenia relacji między

tabelami (definiowania więzów integralności).

Zdefiniowanie klucza obcego powoduje przerzucenie na serwer konieczności

badania spójności danych.

(15)

[CONSTRAINT

nazwa]

FOREIGN KEY (kol1, …, kolN) REFERENCES

nazwa_tabeli(kol1, …, kolN)

nazwa –

nazwa ograniczenia, za pomocą której będzie ono identyfikowane; może być pominięta (wówczas zostanie nadana nazwa systemowa);

kolumny wymienione po słowach FOREIGN KEY określają kolumny w tabeli dla której definiujemy ograniczenie, zawierające klucz obcy;

nazwa_tabeli

określa, z której tabeli pochodzi klucz podstawowy;

kolumny wymienione po REFERENCES

nazwa_tabeli

określają, z których kolumn pochodzi klucz podstawowy.

(16)

nazwa_kolumny typ_kolumny atrybuty

REFERENCES nazwa_tabeli(nazwa_kolumny) np.

stanowisko_id INT NOT NULL

REFERENCES stanowiska(id_stanowiska)

(17)

Przykład

Sprawdź działanie poniższej instrukcji w swojej bazie danych (firma_nazwisko).

INSERT INTO pracownicy

VALUES (8, ‘Jan’, ‘Nowak’, ‘1990-01-01’,

‘90010104321’, ‘Sopot’, 6);

Uwaga!

Zostanie zgłoszony błąd, ponieważ w tabeli

stanowiska nie istnieje rekord o identyfikatorze 6!

(18)

Utwórz klucz obcy w taki sposób, aby

kolumna stanowisko.id z tabeli pracownicy była powiązana z kolumną id tabeli

stanowiska .

ALTER TABLE pracownicy

ADD CONSTRAINT stanowiska_fk FOREIGN KEY (stanowisko_id)

REFERENCES stanowiska (id_stanowiska);

(19)

Usuń ograniczenie związane z kluczem obcym w tabeli pracownicy.

ALTER TABLE nazwa_tabeli DROP FOREIGN KEY

nazwa_ograniczenia ; np.

ALTER TABLE pracownicy

DROP FOREIGN KEY stanowiska_fk ;

(20)

Zaprojektuj tabelę w której kolumna miasto będzie miała wartość domyślną SOPOT.

CREATE TABLE

osoby

(

id INT PRIMARY KEY NOT NULL, nazwisko VARCHAR(20),

miasto VARCHAR(20) DEFAULT ‘SOPOT’

);

(21)

Przypisz kolumnie miasto wartość domyślną Sopot.

ALTER TABLE osoby ALTER COLUMN

miasto SET DEFAULT ‘Sopot’ ;

(22)

Usuń wartość domyślną z kolumny miasto.

ALTER TABLE osoby

ALTER COLUMN miasto

DROP DEFAULT;

(23)

Cytaty

Powiązane dokumenty

Oczywiście po wstawieniu tabeli można dodawać lub usuwać wiersze i kolumny za pomocą narzędzi rysowania i gumki z paska tabele i krawędzie:.. Korzystając z tego samego paska

Zestawienie chałup z wybranych miejscowości łemkowskich Table 1 (cont.).. Comparison on chosen cottages of

TEST B: a/ anchor; b/ insurance; c/ cleanness; d/rusty; e/ unveil; f/ growl; g/ undersize/d/; h/ salaried TEST C: a/ beyond; b/everlasting; c/ deserve; d/ mastery;

Celem niniejszej pracy jest zbadanie wpływu siły piezoelektrycznej generowanej przez dwa aktuatory na obciąŜenie krytyczne kolumny z przegubem wzmocnionym spręŜyną

Celem pracy jest określenie relacji między siłami wzdłuŜnymi w kolumnie i pręcie, wynikającymi z przyłoŜonego obciąŜenia zewnętrznego i siły piezoelektrycznej,

Моя жена часто говорила мне, что я покупаю очень много книг и трачу на них все деньги.. Но когда я увидел новую

W 10-cio elementowej partii pewnego towaru są 2 sztuki wadliwe.. Wylosowano bez zwrotu

Utworzyć pakiet o nazwie XXXXY_PKG (XXXX pierwsze 4 litery nazwiska Y to pierwsza litera imienia – nie stosować polskich znaków) zawierający 2 jednostki:.. Funkcję zwracającą