#
# Skrypty przykładowe do przedmiotu RBD - Wykład03 (Zapytania SQL i Spójność)
#      (c) Wojciech Mościbrodzki
#      wyłącznie dla moich ulubionych studentów PJWSTK Gdańsk :-)
#

#
# tu znajduja sie skrypty tworzące bazę danych - należy wykonać jeden z nich
#    ALBO bazę 1 - nie zapewniającą spójności referencyjnej
#    ALBO bazę 2 - zapewniającą spójność referencyjną


#
# baza 1 - tu nie ma zapewnienia spójności referencyjnej
#

drop table if exists dzial;
drop table if exists pracownik;
drop table if exists telefon;

create table dzial (
  id int auto_increment primary key,
  nazwa char(10)
);

create table pracownik (
  id int auto_increment primary key,
  imie char(10),
  nazwisko char(15),
  id_dzi int
);

create table telefon (
  id int auto_increment primary key,
  model char(10),
  serial char(7),
  id_pra int
);

insert into dzial values (1,'Finanse');
insert into dzial values (2,'Administracja');
insert into dzial values (3,'Kadry');
insert into dzial values (4,'IT');

insert into pracownik values (1,'Jan','Nowak',1);
insert into pracownik values (2,'Jan','Pasek',2);
insert into pracownik values (3,'Ewa','Nowak',3);
insert into pracownik values (4,'Iza','Kacyk',1);

insert into telefon values (1,'Nokia NG','NP3451',1);
insert into telefon values (2,'HTC','ED2221',2);
insert into telefon values (3,'SE X10','AP1111',3);
insert into telefon values (4,'SE X10','AP1311',3);
insert into telefon values (5,'SE W800i','AS8751',4);
insert into telefon values (6,'Samsung U9','SU9458',3);

#
# baza 2: zapewniona spojnosc referencyjna
#



drop table if exists telefon;
drop table if exists pracownik;
drop table if exists dzial;

create table dzial (
  id int auto_increment primary key,
  nazwa char(10)
) ENGINE=InnoDB;

create table pracownik (
  id int auto_increment primary key,
  imie char(10),
  nazwisko char(15),
  id_dzi int,
  CONSTRAINT FOREIGN KEY (id_dzi) REFERENCES dzial(id)
  ON DELETE CASCADE
) ENGINE=InnoDB;

create table telefon (
  id int auto_increment primary key,
  model char(10),
  serial char(7),
  id_pra int,
  CONSTRAINT FOREIGN KEY (id_pra) REFERENCES pracownik(id)
  ON DELETE SET NULL
) ENGINE=InnoDB;

insert into dzial values (1,'Finanse');
insert into dzial values (2,'Administracja');
insert into dzial values (3,'Kadry');
insert into dzial values (4,'IT');

insert into pracownik values (1,'Jan','Nowak',1);
insert into pracownik values (2,'Jan','Pasek',2);
insert into pracownik values (3,'Ewa','Nowak',3);
insert into pracownik values (4,'Iza','Kacyk',1);

insert into telefon values (1,'Nokia NG','NP3451',1);
insert into telefon values (2,'HTC','ED2221',2);
insert into telefon values (3,'SE X10','AP1111',3);
insert into telefon values (4,'SE X10','AP1311',3);
insert into telefon values (5,'SE W800i','AS8751',4);
insert into telefon values (6,'Samsung U9','SU9458',3);


