Witam.
Mam do przećwiczenia takie zadania. Niektóre z nich mi działają niektóre nie. Jestem dopiero początkującą osobą zarówno w SQL jak i w DB2

  1. Zdefiniuj schemat o nazwie ZAL (to działa poprawnie)
    CREATE SCHEMA ZAL;
  2. Utwórz tabele czytelnicy w schemacie ZAL z kolumnami IDKARTY (zapewniona autonumeracja przez kolumne identyfikujaca i generowanie przez wartosc domyslna oraz klucz podstawowy) a także kolumny NAZWISKO,IMIE,MIASTO - TUTAJ TEŻ WSZYSTKO DZIAŁA

CREATE TABLE ZAL.CZYTELNICY ( IDKARTY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1 MINVALUE -2147483648 MAXVALUE 2147483647 CACHE 20 ), NAZWISKO VARCHAR(10), IMIE VARCHAR(10), MIASTO VARCHAR(10),PRIMARY KEY ( IDKARTY ) );

3)Utwórz tabele wypozyczenia w schemacie zal z kolumnami IDKARTY(not null) IDKSIAZKI(not null), DATA_WYP ( not null) oraz DATA_ZWROT(null). Założyc klucz podstawowy na kolumny IDKARTY, IDKSIAZKI,DATA_WYP - Tutaj też wszystko ,mi działa

CREATE TABLE ZAL.WYPOZYCZENIA ( IDKARTY INTEGER NOT NULL, IDKSIAZKI INTEGER NOT NULL, DATA_WYP DATE NOT NULL, DATA_ZWROT DATE,PRIMARY KEY ( IDKARTY, IDKSIAZKI, DATA_WYP ) );

I tutaj już zaczynają się schody

4)Zmodyfikuj tabele wypozyczenia stawiajacwarunek klucza obcego odnoszacego sie do tabeli czytelnicy - tutaj jeszcze chyba ok dziala

ALTER TABLE ZAL.WYPOZYCZENIA ADD CONSTRAINT KLUCZ FOREIGN KEY
(IDKARTY) REFERENCES ZAL.CZYTELNICY
(IDKARTY);

5)Zmodyfikuj tabele czytelnicy zakladajac warunek check(na kolumne miasto) tak aby mozliwe bylo wprowadzenie czytelnikow tylko z miasta warszawa poznan
Nie wiem jak to zrobić ????

ALTER TABLE CZYTELNICY ADD CONSTRAINT MS CHECK

  1. Zapewnij by do tabeli czytelnicy nie byli wprowadzani czytelnicy ktorzy nie ukonczyli 10 lat,wykorzystac rejestr daty zegara systemowego
    Nie wiem kompletnie???

  2. Wprowadzic do tabeli czytelnicy oraz wypozyczenia po 3 krotki - o ile do tabeli czytelnicy wprowadza sie poprawnie to do tabeli Wypozyczenia juz nie

INSERT INTO ZAL.CZYTELNICY(NAZWISKO,IMIE) VALUES ('KOWALSKI','JAN');
INSERT INTO ZAL.CZYTELNICY(NAZWISKO,IMIE) VALUES ('NOWAK','ROBERT');
INSERT INTO ZAL.CZYTELNICY(NAZWISKO,IMIE) VALUES ('KOWAL','GRZEGORZ');

Z tego co zrozumiałem to warunek Check można zakładać tylko na te kolumny które są NULL? czy na te na które nie jest założony klucz podstawowy? Proszę o wyjaśnienie. W każdym razie pisząc taki warunek nie działa mi wprowadzenie krotki

INSERT INTO ZAL.WYPOZYCZENIA (DATA_ZWROT) VALUES ('2017-01-13');

8)Zdefiniuj widok VIEW1 który zwróci informacje ile pozycji ksiazkowych zwrocil dany czytelnik - nie mam pojecia niestety

  1. Zdefiniuj tabele WYK jako kopie tabeli WYPOZYCZENIA oraz zdefiniuj wyzwalacz ktory przy probie oddania ksiazki (aktualizacji przez wprowadzenie daty dla kolumny DATA_ZWROT) spowoduje przesuniecie krotki do kopii tabeli WYK.
    Nie rozsumiem tutaj czy jest jakas skladnia ktora odpowiada za skopiowanie tabeli? Czy chodzi po prostu o stworzenie takiej samej . Co do wyzwalacza domyślam się że mam wybrać wyzwalacz update ale nie wiem kompletnie co dalej.

Za wszelką pomoc, wskazówki dziękuje