
--- les drops 
drop table LancerSort;
drop table Sorts;
drop table Alchimistes;
drop table Mages;
drop table Categories;
drop table Joueurs;
--- les creates
create table Joueurs 
(
idJoueur int identity,
alias varchar(10) unique not null,
nbPtVie int not null default 100,
typeJoueur char(1) not null,
constraint pk_joueur primary key(idJoueur),
constraint ck_ptvie check (nbPtVie >=1),
constraint ck_type check (typeJoueur ='M' or typeJoueur='A' or typeJoueur='I')
);
-------------------------------
create table Categories
(
idCategorie char(1) not null,
nomCategorie varchar(40) not null,
constraint pk_catagorie primary key (idCategorie),
);
--------------------------------------
Create table Alchimistes
(
idAlchimiste int not null,
niveau int not null default 1,
typePotion Char(1)
constraint pk_alchimiste primary key(idAlchimiste),
constraint fk_alchimiste_Joueur foreign key(idAlchimiste) references Joueurs(idJoueur),
constraint ck_potion check (typePotion in('A', 'D', 'T')),
constraint ck_niveau check (niveau <=5 and niveau>=1)
);
------------------------------------------

Create table Mages
(
idMage int not null,
idCategorie char(1),
mana int,
constraint pk_mage primary key(idMage),
constraint fk_mage_Joueur foreign key(idMage) references Joueurs(idJoueur),
constraint ck_mana check (mana >=0),
constraint fk_idCategorie foreign key (idCategorie) references Categories(idCategorie)
);

---------------------------------------
create table Sorts
(
idSort int identity (1000,1),
descriptions varchar(50) not null,
nbDegaMax int not null,
nbDegaMin int not null,
coutMana int not null,
constraint pk_sort primary key (idSort),
constraint ck_cout check(coutMana>=0)
);
---------------------------------
create table LancerSort
(
idMage int not null,
idSort int not null,
nbPtDegat int not null,
constraint fk_idMage foreign key (idMage) references Mages (idMage),
constraint fk_iSort foreign key (idSort) references Sorts (idSort),
constraint pk_LanceSort primary key(idMage,idSort)
);

----insertions dans Categories
insert into Categories values('F', 'Feu');
insert into Categories values('E', 'Eau');
insert into Categories values('G', 'Givre');

---Insertion Sorts ---------------------------
insert into Sorts(descriptions, nbDegaMax,nbDegaMin, coutMana) values('boule de feu', 500,100,10);
insert into Sorts(descriptions, nbDegaMax,nbDegaMin, coutMana) values('Avalanche', 800,200,400);
insert into Sorts(descriptions, nbDegaMax,nbDegaMin,coutMana) values('Tornade', 600,100,500);
insert into Sorts(descriptions, nbDegaMax,nbDegaMin,coutMana) values('boule de neige', 300,50,5);

---insertion des Joueurs;
insert into Joueurs (alias,typeJoueur) values('Wilow','M');
insert into Joueurs (alias,typeJoueur) values('Madow','M');
insert into Joueurs (alias,typeJoueur) values('Dilow','M');
insert into Joueurs (alias,typeJoueur) values('Panoramix','A');
insert into Joueurs (alias,typeJoueur) values('Potionix','A');
insert into Joueurs (alias,typeJoueur) values('Zoltar','M');
insert into Joueurs (alias,typeJoueur) values('Herbix','A');
insert into Joueurs (alias,typeJoueur) values('Botanix','A');
insert into Joueurs (alias,typeJoueur) values('Magix','M');
insert into Joueurs (alias,typeJoueur) values('Gandalf','M');
insert into Joueurs (alias,typeJoueur) values('Fleurix','A');
insert into Joueurs (alias,typeJoueur) values('Simba','M');

---- insertion des mages;

insert into Mages values (1,'F',1000);
insert into Mages values (2,'F',800);
insert into Mages values (3,'G',1000);
insert into Mages values (6,'G',600);
insert into Mages values (9,'E',1000);
insert into Mages values (10,'F',1000);
insert into Mages values (12,'G',800);

-- insertion Alchimistes
insert into Alchimistes values(4,1,'A');
insert into Alchimistes values(5,3,'A');
insert into Alchimistes values(7,1,'D');
insert into Alchimistes values(8,3,'T');
insert into Alchimistes values(11,5,'D');


select * from Categories;
select * from Joueurs
select * from Alchimistes
select * from Mages
select * from Sorts