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
- Zdefiniuj schemat o nazwie ZAL (to działa poprawnie)
CREATE SCHEMA ZAL; - 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
-
Zapewnij by do tabeli czytelnicy nie byli wprowadzani czytelnicy ktorzy nie ukonczyli 10 lat,wykorzystac rejestr daty zegara systemowego
Nie wiem kompletnie??? -
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
- 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