-- corr_maj.sql 
-- tourne 12/9/2012
-------------------------------------------------------------------------------

-- ordres tapes par le programmeur (disons compte SGDB waller_a) :

drop table sejour;
drop table client;
drop table village;

create table client(
  idc int, 
  nom varchar2(10), 
  age int,
  avoir int default 2000
);

-- attention : les varchar2 ne doivent pas depasser 10 caracteres, sinon 
-- affichage select illisible (y compris dans le projet)

create table village(
  idv int,
  ville varchar2(12),
  activite varchar2(10),
  prix int,
  capacite int
);

create table sejour(
  ids int,
  idc int,
  idv int, 
  jour int
);

-- modeles d'ordres :
-- on donne en gros dans l'ordre chronologique naturel
-- tapes par employes et clients devant un client interactif sous le compte du
-- programmeur, en copie-colle, en adaptant les valeurs parametres

-- employes :
-- village : 
insert into village values(10, 'NY', 'resto', 50, 200);
insert into village values(11, 'NY', 'MOMA', 60, 300);
insert into village values(12, 'Chatelaillon', 'kitesurf', 100, 20);
select * from village;
update village set capacite = capacite + 10, prix = prix - 10 
    where activite = 'kitesurf';
select * from village;
--  sejour : 
select * from sejour ;
delete sejour where jour < 100;

-- clients :
-- traitement 1 : 
-- retours : idc
insert into client(idc, nom, age) values(2, 'Rita', 22);
-- authentification en debut de session :
select * from client where idc = 2 and nom = 'Rita';
-- traitement 2 (Rita, idc 2, pour NY le jour 45) :
select idv, prix from village where ville = 'NY' order by prix;
update client set avoir = avoir - 60 where idc = 2;
insert into sejour values(100, 2, 11, 45);
-- consulter villages pour lesquels aucun sejour achete :
(select idv from village) minus (select idv from sejour);
-- consulter ses infos (Rita, idc 2)
select * from client where idc = 2;
select * from sejour where idc = 2;
select village.idv, ville, activite, prix from village, sejour 
    where village.idv = sejour.idv and idc = 2;

-------------------------------------------------------------------------------
-- pour avoir quelques autres lignes dans la base :
insert into client(idc, nom, age) values(1, 'Riton', 23);
select * from client where idc = 1 and nom = 'Riton';
-- traitement 2 (Riton, idc 1, pour Chatelaillon le jour 365) :
-- retours : idv, ids, activite
select idv, prix from village where ville = 'Chatelaillon' order by prix;
update client set avoir = avoir - 90 where idc = 1;
insert into sejour values(101, 1, 12, 365);
-- consulter ses infos (Riton, idc 1)
select * from client where idc = 1;
select * from sejour where idc = 1;
select village.idv, ville, activite, prix from village, sejour 
    where village.idv = sejour.idv and idc = 1;

-------------------------------------------------------------------------------
