Correction prosit1 SQL
--Suppression de tables existantes
drop table membres cascade constraints;
drop table categories cascade constraints;
drop table prestataires_services cascade constraints;
drop table achats cascade constraints;
drop table deals cascade constraints;
--creation des tables
create table membres
(
login varchar2(15) constraint pk_membres primary key,
mdp varchar2(50),
nom varchar2(50) not null,
prenom varchar2(50) not null,
constraint ck_mdp1 check (regexp_like (mdp, '[[:lower:]]')),
constraint ck_mdp2 check (regexp_like (mdp, '[[:upper:]]')),
constraint ck_mdp3 check (regexp_like (mdp, '[[:digit:]]'))
);
create table categories
(
nom_categorie varchar2(20) constraint pk_categories primary key,
descriptionC varchar2(80)
);
create table prestataires_services
(
nom_prest varchar2(50) constraint pk_prest_services primary key,
num_adresse number,
rue_adresse varchar2(20),
ville varchar2(20) not null,
CP number,
tel number not null,
email varchar2(50) constraint ck_email check(email like '%@%.%'),
page_fb varchar2(50) UNIQUE constraint ck_page_fb check(page_fb like
'[Link]
);
create table deals
(
intitule varchar2(50) constraint pk_deals primary key,
description_D varchar2(50) not null,
prix_i number,
prix_d number,
reduction number not null,
date_d date not null,
period_v number not null,
noteD number constraint ck_noted check(noted between 0 and 5),
expire varchar2(3) default 'NON' constraint ck_expire check(expire='OUI'
OR expire='NON'),
nom_catg varchar2(20) constraint fk_deals_categories references
categories(nom_categorie),
nom_prestataire varchar2(50) constraint fk_deals_prestServices
references prestataires_services(nom_prest)
);
create table achats
(
intitule varchar2(50) constraint fk_achats_deals references
deals(intitule),
login varchar2(15) constraint fk_achats_membres references
membres(login),
nbcoupon number not null,
constraint pk_achats primary key(intitule, login)
);
--Les modifications
alter table deals modify prix_i not null;
alter table membres add constraint ck_mdp4 check (mdp not like '%'||
nom||'%' and mdp not like '%'||prenom||'%');
alter table deals drop(prix_d);
alter table achats add(date_achat date);
alter table achats drop constraint pk_achats;
alter table achats add constraint pk_achats primary
key(intitule,login,date_achat);
alter table achats add constraint ck_nbcoupon check (nbcoupon between 1
and 5);
--Les insertions
insert into membres values ('Hello2017','H17test','gharbi','salma');
insert into membres values ('Ahmed1617','A132bc','ben chaabene','ali');
insert into membres values ('Daddou123','B098tt','Ben
mahmoud','taoufik');
--il faut apporter certaines modifications sur la définition de la table
pour faire les insertions
alter table prestataires_services drop constraint ck_page_fb;
alter table prestataires_services add constraint ck_page_fb check
(page_fb like '[Link] OR page_fb like '[Link]
alter table prestataires_services modify rue_adresse varchar2(40);
alter table prestataires_services modify page_fb varchar2(100);
insert into prestataires_services values ( 'Square Optical
L''Aouina',2,'Résidence Mesk Jinen Ain zaghouan','Ariana', 2036,
71100001,'[Link]@[Link]','[Link]
optical396558407144821/?fref=ts');
insert into prestataires_services values ( 'Forever Beauty',2,'rue Taher
el Memmi 1 er étage','Tunis', 2091,
71234098,'[Link]@[Link]','[Link]
eautycenter/?fref=ts');
insert into prestataires_services values ( 'Le Parador la
Goulette',9,'Immeuble Labrise Tour','Tunis', 2060,
71893425,'[Link]@[Link]','[Link]
Parador-La-Goulette-Restaurant/725375497514325?fref=ts');
alter table categories modify nom_categorie varchar2(30);
insert into categories values ('Restaurant et café', 'Deals relatifs aux
restaurants et cafés et salons de thé');
insert into categories values ('Beauté', 'Deals relatifs aux salons de
coiffure et SPA');
insert into categories values ('Hôtel', 'Deals relatifs aux hôtels');
insert into categories values ('Life style et accessoires', 'Deals
relatifs aux accessoires bijoux lunettes montres ...');
alter table deals modify intitule varchar2(100);
alter table deals modify description_d varchar2(150);
insert into deals values ('Square Optical L''Aouina : Un bon d''achat de
valeur de 250 DT', 'L''offre comprend: - Un bon d''achat de valeur de
250 DT - 30% de réduction sur tout achat des lentilles de couleur',
250,60, to_date('12/10/2016 9','dd/mm/yyyy hh'), 5, null,'NON',null,
'Square Optical L''Aouina');
insert into deals values ('Le Parador la Goulette : un menu de déjeuner
ou de dîner à partir de 49 DT Seulement', 'L''offre vous propose des
mets qui vont vous ouvrir l''appétit et donner à vos papilles de grandes
envies! Choisissez l''offre qui vous
convient...',131,63,to_date('10/10/2016 9','dd/mm/yyyy
hh'),3,null,'NON',null, 'Le Parador la Goulette');
insert into achats values ('Square Optical L''Aouina : Un bon d''achat
de valeur de 250 DT','Hello2017', 2, to_date('13/10/2016
15/10','dd/mm/yyyy hh24/mi'));
insert into achats values ('Square Optical L''Aouina : Un bon d''achat
de valeur de 250 DT','Ahmed1617', 4, to_date('14/10/2016
10/03','dd/mm/yyyy hh24/mi'));
insert into achats values ('Square Optical L''Aouina : Un bon d''achat
de valeur de 250 DT','Daddou123', 3, to_date('12/10/2016
11/00','dd/mm/yyyy hh24/mi'));
insert into achats values ('Le Parador la Goulette : un menu de déjeuner
ou de dîner à partir de 49 DT Seulement','Hello2017', 5,
to_date('12/10/2016 14/05','dd/mm/yyyy hh24/mi'));
commit;