You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
4.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

DROP TABLE Voiture, Types, Client, Réservartion, Stock;
CREATE TABLE Voiture(
immatriculation CHAR(9) PRIMARY KEY CONSTRAINT Problème_Immatriculation CHECK(immatriculation ~ '[A-Z][A-Z]-[0-9][0-9][0-9]-[A-Z][A-Z]'),
marque VARCHAR(50) NOT NULL,
kilométrage NUMERIC(6) NOT NULL,
couleur VARCHAR(40) NOT NULL,
année NUMERIC(4) NOT NULL CHECK(année > 1900 AND DATE_PART('year', current_date) - année >= 0),
modèle VARCHAR(50) NOT NULL REFERENCES Type
);
CREATE TABLE Type(
modèle VARCHAR(50) PRIMARY KEY,
caution NUMERIC(6) NOT NULL
);
CREATE TABLE Client(
num_permis CHAR(15) PRIMARY KEY,
nom VARCHAR(40) NOT NULL,
prenom VARCHAR(40) NOT NULL,
année_obtention NUMERIC(4) NOT NULL CONSTRAINT Problème_Date CHECK(date_obtention <= DATE_PART('year', current_date) - 3 AND date_obtention > 1942),
adresse VARCHAR(100) NOT NULL,
code_postal NUMERIC(5) NOT NULL CHECK(9999 < code_postal AND code_postal < 99999),
ville VARCHAR(100) NOT NULL,
tel CHAR(15) NOT NULL CONSTRAINT Problème_Téléphone CHECK(tel ~ '[06,07].[0-9][0-9].[0-9][0-9].[0-9][0-9].[0-9][0-9]')
);
CREATE TABLE Réservation(
num_reservation NUMERIC(12) PRIMARY KEY,
immatriculation CHAR(9) REFERENCES Voiture CHECK(immatriculation LIKE '[A-Z][A-Z]-[0-9][0-9][0-9]-[A-Z][A-Z]'),
num_permis CHAR(15) REFERENCES Client,
disponibilité NUMERIC(1) NOT NULL CHECK(disponibilité = 0 OR disponibilité = 1),
DateReservation DATE NOT NULL,
forfait NUMERIC(5,2) CONSTRAINT Problème_Forfait CHECK (Forfait > 0.00),
Durée NUMERIC(2) CONSTRAINT Problème_Durée CHECK(Durée <= 7 AND Durée >= 1),
DateRetour DATE CONSTRAINT Date_Retour CHECK (dateretour > DateReservation AND dateRetour = DateReservation + Durée * INTERVAL '1 day')
);
CREATE TABLE Fournisseur(
nom_fournisseur VARCHAR(100) PRIMARY KEY,
type_contrat VARCHAR(100) NOT NULL,
date_contrat DATE NOT NULL
);
INSERT INTO Voiture VALUES('GR-056-ON','Bugatti',23189,'Noir','Chiron',2018);
INSERT INTO Voiture VALUES('EZ-667-EK','Koenigsegg',34129,'Jaune','Regera',2016);
INSERT INTO Voiture VALUES('PO-726-TG','Ferrari',65023,'Rouge','458 Italia',2011);
INSERT INTO Voiture VALUES('CO-138-OL','Ford',10298,'Argent','Mustang GT',1969);
INSERT INTO Voiture VALUES('BI-132-NO','Bugatti',85543,'Noir et Rouge','Veyron',2009);
INSERT INTO Voiture VALUES('VI-404-MS','Tesla',10298,'Argent','Cybertruck',2022);
INSERT INTO Voiture VALUES('PQ-100-DB','Lamborghini',8765,'Vert','Aventador SV',2022);
INSERT INTO Type VALUES('Veyron',150000);
INSERT INTO Type VALUES('Chiron',240000);
INSERT INTO Type VALUES('Regera',230000);
INSERT INTO Type VALUES('458 Italia',30000);
INSERT INTO Type VALUES('Cybertruck',9500);
INSERT INTO Type VALUES('Mustang GT',12300);
INSERT INTO Type VALUES('Aventador SV',35000);
INSERT INTO Client VALUES('654684321685486','Musk','Elon',1990,'3 Rue des Potiers',75000,'Paris', '06 18 16 69 48');
INSERT INTO Client VALUES('546513546843546','Natendo','Stéphane',1976,'21 Rue du Pape',21000,'Tisoumits','06 85 96 12 04');
INSERT INTO Client VALUES('487465443154873','Joseph','Hugue',2003,'91 Avenue de lUnion Soviétique',17742,'Mouscou','07 39 14 45 75');
INSERT INTO Client VALUES('464384543544456','Cénou','John',1999,'47 Rue du Combattant',93000,'Ring','07 83 53 73 76');
INSERT INTO Client VALUES('248798745615644','Delacroix','Joé',2012,'18 rue de Porte de la Chapelle',89623,'Saint-Augustin','06 65 87 64 45');
INSERT INTO Client VALUES('454845115464846','Du-Bourg-Palette','Sacha',2010,'30 Boulevard de Lavanville',10100,'Kanto','06 78 69 41 65');
INSERT INTO Client VALUES('546843544654681','Galaire','Geoffroy',1986,'7 Avenue de Fleury Mérogis',91700,'Bouchaire-sur-mer', '06 46 38 12 32');
INSERT INTO Client VALUES('787543487343547','Sangle','Glocou',2008,'6 Boulevard des Norutau',86853,'Papou','06 85 41 25 73');
INSERT INTO Client VALUES('257272727376578','Félicité','Alexis',1993,'58 Rue Montalembert',63000,'Clermont-Ferrand','06 13 46 38 68');
INSERT INTO Client VALUES('284654984654389','Hirrite','Sam',2007,'147 Avenue Léon Blum',63000,'Clermont-Ferrand','07 35 46 98 75');
INSERT INTO Client VALUES('543484345484354','Chiling Ben','Ben',1998,'18 Rue de Waterburries',41649,'Kentucky','06 23 60 87 01');
INSERT INTO Client VALUES('126868621651645','Mau','Enzo',2010,'62 Rue des Archives',75004,'Les Marais','06 69 96 48 85');
INSERT INTO Fournisseur VALUES('Midas','Location','15/08/2022');
INSERT INTO Fournisseur VALUES('Clapette','Achat','14/02/2022');
INSERT INTO Fournisseur VALUES('Tutur2Luxe','Achat','12/09/2022');
INSERT INTO Fournisseur VALUES('Ford','Essai','09/11/2022');
INSERT INTO Fournisseur VALUES('LaQimatra','Location','01/04/2022');
INSERT INTO Fournisseur VALUES('Roux2Scoure','Achat','06/06/2022');
INSERT INTO Fournisseur VALUES('Formili1','Achat','03/03/2022');