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 l’Union 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');