Cw7 Goscik odp - Odpowiedzi do zapytań SQL PDF

Title Cw7 Goscik odp - Odpowiedzi do zapytań SQL
Course Bazy danych
Institution Politechnika Bialostocka
Pages 6
File Size 64.8 KB
File Type PDF
Total Downloads 71
Total Views 263

Summary

/*Zad. 1 Stworzyć taďele ;ďez tworzeŶia kluĐzyͿ: a) Autor b) Ksiazka c) Autor_ksiazka id_autora id_ksiazki id_autora imie tytul id_ksiazki nazwisko cena data_wydania */drop table autor cascade constraints; create table autor( id_autora number(6), imie varchar2(10), nazwisko varchar2(15) );create tab...


Description

/* Zad. 1 Stworzyć tabele (bez tworzenia kluczy): a) Autor b) Ksiazka c) Autor_ksiazka id_autora id_ksiazki id_autora imie tytul id_ksiazki nazwisko cena data_wydania */

drop table autor cascade constraints; create table autor( id_autora number(6), imie varchar2(10), nazwisko varchar2(15) );

create table ksiazka ( id_ksiazki number(6), tytul varchar(15), cena number(5,2), data_wydania date );

create table autor_ksiazka ( id_autora number(6), id_ksiazki number(6) );

/*

Zad. 2 Nałożyć na nowo powstałe tabele ograniczenia (nadać wybranym ograniczeniom własne nazwy): • klucze główne (kolumny podkreślone wchodzą w skład klucza głównego danej tabeli), • klucze obce (z opcją ON DELETE CASCADE), • data_wydania, domyślną datą ma być data dzisiejsza, bez nazwy ograniczenia • cena książki powinna być większa od 0, • imię i nazwisko autora oraz tytuł książki nie może być NULL. */

alter table autor add constraint klucz_glowny_autor primary key(id_autora);

alter table ksiazka add constraint klucz_glowny_ksiazka primary key(id_ksiazki);

alter table autor_ksiazka add constraint klucz_glowny_autor_ksiazka primary key (id_autora, id_ksiazki);

alter table autor_ksiazka add(

constraint klucz_obcy_autor foreign key(id_autora) references autor(id_autora) on delete cascade,

constraint klucz_obcy_ksiazka foreign key(id_ksiazki) references ksiazka(id_ksiazki) on delete cascade );

alter table ksiazka modify data_wydania default sysdate;

alter table ksiazka modify cena constraint ogranicz_cena check (cena > 0);

alter table autor add (

constraint ogranicz_imie check (imie is not null),

constraint ogranicz_nazwisko check (nazwisko is not null)

);

alter table ksiazka add (

constraint ogranicz_tytul check (tytul is not null)

);

-- przy tworzeniu tabeli create table autor_ksiazka ( id_autora number constraint autor_ksiazka_fk_autor REFERENCES Autor(id_autora) ON DELETE CASCADE, id_ksiazki number constraint autor_ksiazka_fk_ksiazka REFERENCES Ksiazka(id_ksiazki) ON DELETE CASCADE, CONSTRAINT autor_ksiazka_pk PRIMARY KEY (id_autora, id_ksiazki) );

select * from user_constraints where table_name = 'AUTOR_KSIAZKA'; select * from user_cons_columns where table_name = 'AUTOR_KSIAZKA';

select * from user_constraints where table_name = 'AUTOR'; select * from user_cons_columns where table_name = 'AUTOR';

/* Zad. 3

Wstawić do każdej z tabel przykładowe wiersze. */

-- 5 autorów -- 8 książek -- co najmniej jedna książka z dwoma autorami

desc ksiazka; insert into ksiazka(id_ksiazki, tytul, cena, data_wydania) values (22, 'tytul22', 35.50, to_date('08/01/2021', 'DD/MM/YYYY'));

select * from ksiazka;

INSERT INTO autor VALUES (1, 'Pawel', 'Kowal'); INSERT INTO autor VALUES (2, 'Patryk', 'Wysocki' ); INSERT INTO autor VALUES (3, 'Dariusz', 'Sikora'); INSERT INTO autor VALUES (4, 'Ida', 'Szymczak'); INSERT INTO autor VALUES (5, 'Stefania', 'Szewczyk'); desc ksiazka; INSERT INTO ksiazka VALUES (1, 'Enigma', 23, to_date('08/01/2021', 'DD/MM/YYYY')); INSERT INTO ksiazka VALUES (2, 'Klejnot Nilu', 49, to_date('08/04/1989', 'DD/MM/YYYY')); INSERT INTO ksiazka VALUES (3, 'Historia Piekna', 45, to_date('08/03/2017', 'DD/MM/YYYY')); INSERT INTO ksiazka VALUES (4, 'Mitologia w obrazach', 70, to_date('13/12/2019', 'DD/MM/YYYY')); INSERT INTO ksiazka VALUES (5, 'Mitologia Grecka', 35, to_date('08/01/2021', 'DD/MM/YYYY')); INSERT INTO ksiazka VALUES (6, 'Znaczy Kapitan', 25, to_date('18/11/2013', 'DD/MM/YYYY')); INSERT INTO ksiazka VALUES (7, 'Hamlet', 20, to_date('08/01/2021', 'DD/MM/YYYY')); INSERT INTO ksiazka VALUES (8, 'Romeo i Julia', 27, to_date('19/05/1973', 'DD/MM/YYYY'));

delete from autor; desc autor;

/* Zad. 4 Do tabeli Ksiazka dodać kolumnę wydawca (typ danych znakowy). */

alter table ksiazka add wydawca varchar2(50);

/* Zad. 5 Nałożyć na kolumnę wydawca ograniczenie o nazwie Wyd, które by uniemożliwiło wstawienie wydawcy, którego nazwa jest ciągiem znaków krótszym niż 10. */

ALTER TABLE ksiazka ADD CONSTRAINT wydawca CHECK (LENGTH(wydawca) >=10);

/* Zad. 6 Usunąć ograniczenie nałożone na kolumnę wydawca. */

ALTER TABLE ksiazka DROP CONSTRAINT wydawca;

/* Zad. 7 Przy pomocy jednego polecenia stworzyć tabelę Autor1 i wstawić wszystkie wiersze z tabeli Autor. Sprawdzić, czy na tabelę Autor1 są nałożone jakieś ograniczenia. */

drop table autor1; create table autor1 as select * from autor;

select * from autor1;

select * from user_constraints where table_name = 'AUTOR1'; select * from user_cons_columns where table_name = 'AUTOR1';...


Similar Free PDFs