Laboratorium 7: klucze zewnętrzne, warunki spójności

SQL


  • opcje kluczy obcych - domyślnie, baza uniemożliwia usuwanie wierszy na które wskazują klucze obce, możemy jednak wskazać inne zachowanie, tzn. on delete cascade powoduje usuwanie wierszy przy kasowaniu obiektów na które wskazują klucze obce, lub on delete set null powoduje zamienie wartości przez NULL przy kasowaniu obiektów na które wskazują klucze obce:
k_id varchar(16) REFERENCES tab1, 
k_id2 varchar(16) REFERENCES tab2 ON DELETE cascade, 
k_id3 varchar(16) REFERENCES tab2 ON DELETE SET NULL,
  • klucze obce składające się w wielu kolumn
CREATE TABLE a (
  id integer,
  a integer,
  b integer,
  CONSTRAINT fk_abc FOREIGN KEY (a,b) REFERENCES inna_tabela (id,kod)
);
  • usuwanie tabeli wraz z wszystkimi tabelami zależnymi:
drop table nazwa cascade constraints;
  • zamiana definicji tabeli,
ALTER TABLE nazwa_tabeli ADD (nazwa_kolumny typ);
ALTER TABLE nazwa_tabeli MODIFY (nazwa_kolumny typ);
ALTER TABLE nazwa_tabeli DROP (nazwa_kolumny);
ALTER TABLE nazwa_tabeli ADD (constraint nazwa definicja);
ALTER TABLE nazwa_tabeli enable constraint nazwa;
ALTER TABLE nazwa_tabeli disable constraint nazwa; -- czasowe wyłączenie więzów spójności
  • tworzenie i usuwanie indeksów
  • CREATE [ UNIQUE ] INDEX nazwa_indeksu ON nazwa_tabeli (kol1 [ ASC|DESC ], kol2 ... );
    DROP INDEX nazwa_indeksu; -- usuwanie
    • pseudokoluman ROWNUM
    SELECT ROWNUM,id FROM tabela;
    SELECT * FROM tabela WHERE ROWNUM <10;
    -- uwaga!! ale nie SELECT * FROM tabela WHERE ROWNUM <10;
    • synonimy (skrócone nazwy tabeli i perspektyw)
    CREATE SYNONYM nazwa FOR nazwa_tabeli;
    DROP SYNONYM nazwa;
    • Typy danych: BLOB (binarne duże obiekty), CLOB (tekstowe duże obiekty), LOB (binarne lub testowe).
      Funkcje EMPTY_BLOB(), EMPTY_CLOB() zwracają puste obiekty.

    PL/SQL



    Ćwiczenie. Zmień rozmiar pola imię w tabeli czytelnicy z 64 znaków na 32 znaki.

Ćwiczenie.Zmień definicję kluczy obcych w bazie biblioteki, tak by były typu ON DELETE CASCADE. Sprawdź jak teraz działa usuwanie elementów tablicy czytelnicy.

Ćwiczenie. Dodaj indeksy: idx_data_w zawierający pole data_wypozyczenia, oraz idx_data_z zawierający pole data_zwrotu, do tabeli wypożyczenia .

Ćwiczenie. Wypisz książki których tytuły składają się z co najmniej dwóch wyrazów.

Ćwiczenie. Wczytaj i wypisz zawartość strony stencel.mimuw.edu.pl.

Ćwiczenie. Wypisz wszystkie odnośniki ze strony stencel.mimuw.edu.pl