-- phpMyAdmin SQL Dump -- version 5.2.3 -- https://www.phpmyadmin.net/ -- -- Hôte : 127.0.0.1:3306 -- Généré le : mer. 16 sep. 2026 à 08:43 -- Version du serveur : 8.4.7 -- Version de PHP : 8.3.28 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Base de données : `voituresapi` -- DELIMITER $$ -- -- Procédures -- DROP PROCEDURE IF EXISTS `sp_deleteVoiture`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_deleteVoiture` (IN `p_id` INT) BEGIN DELETE FROM cars WHERE id = p_id; SELECT ROW_COUNT() AS affected; END$$ DROP PROCEDURE IF EXISTS `sp_getEtatVoiture`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_getEtatVoiture` (IN `p_id` INT) BEGIN SELECT c.*, (SELECT valeur FROM kilometrage WHERE car_id = c.id ORDER BY date_releve DESC, id DESC LIMIT 1) AS dernier_km FROM cars c WHERE c.id = p_id; SELECT * FROM maintenance_logs WHERE car_id = p_id ORDER BY date_evenement DESC; SELECT * FROM notes WHERE car_id = p_id ORDER BY date_creation DESC; END$$ DROP PROCEDURE IF EXISTS `sp_getKilometrages`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_getKilometrages` (IN `p_id` INT, IN `p_limit` INT) BEGIN SELECT id, car_id, valeur, date_releve FROM kilometrage WHERE car_id = p_id ORDER BY date_releve DESC, id DESC LIMIT p_limit; END$$ DROP PROCEDURE IF EXISTS `sp_insertVoiture`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insertVoiture` (IN `p_marque` VARCHAR(255), IN `p_modele` VARCHAR(255), IN `p_annee` INT, IN `p_dateAchat` DATE, IN `p_VIN` VARCHAR(255), IN `p_immatriculation` VARCHAR(20)) BEGIN INSERT INTO cars (marque, modele, annee, dateAchat, VIN, immatriculation) VALUES (p_marque, p_modele, p_annee, p_dateAchat, p_VIN, p_immatriculation); SELECT LAST_INSERT_ID() AS new_id; END$$ DELIMITER ; -- -------------------------------------------------------- -- -- Structure de la table `cars` -- DROP TABLE IF EXISTS `cars`; CREATE TABLE IF NOT EXISTS `cars` ( `id` int NOT NULL AUTO_INCREMENT, `marque` varchar(50) NOT NULL, `modele` varchar(50) NOT NULL, `annee` int NOT NULL, `dateAchat` date NOT NULL, `VIN` varchar(17) DEFAULT NULL, `immatriculation` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `idx_immatriculation` (`immatriculation`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- -- Déchargement des données de la table `cars` -- INSERT INTO `cars` (`id`, `marque`, `modele`, `annee`, `dateAchat`, `VIN`, `immatriculation`) VALUES (1, 'Peugeot', '207', 2009, '2025-05-20', 'VF3WA8HZCXXXXXXXX', 'AB-123-CD'), (2, 'Peugeot', '208', 2010, '2025-05-20', 'VF3WA8HZCXXXXXXXX', 'EF-456-GH'); -- -------------------------------------------------------- -- -- Structure de la table `kilometrage` -- DROP TABLE IF EXISTS `kilometrage`; CREATE TABLE IF NOT EXISTS `kilometrage` ( `car_id` int NOT NULL, `date_releve` date NOT NULL, `valeur` int NOT NULL, KEY `fk_km_car_id` (`car_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- -- Déchargement des données de la table `kilometrage` -- INSERT INTO `kilometrage` (`car_id`, `date_releve`, `valeur`) VALUES (1, '2026-04-20', 133000), (1, '2026-04-20', 133200); -- -------------------------------------------------------- -- -- Structure de la table `maintenance_logs` -- DROP TABLE IF EXISTS `maintenance_logs`; CREATE TABLE IF NOT EXISTS `maintenance_logs` ( `id` int NOT NULL AUTO_INCREMENT, `car_id` int NOT NULL, `type_entretien` varchar(100) NOT NULL, `date_evenement` date NOT NULL, `kilometrage` int NOT NULL, `description` text, `prix` decimal(10,2) DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_car_id` (`car_id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- -- Déchargement des données de la table `maintenance_logs` -- INSERT INTO `maintenance_logs` (`id`, `car_id`, `type_entretien`, `date_evenement`, `kilometrage`, `description`, `prix`) VALUES (1, 1, 'Vidange', '2023-10-15', 145000, 'Huile 5W40 + Filtre à huile', 85.00), (2, 1, 'Pneus', '2024-02-01', 152000, 'Changement pneus avant Michelin', 160.00); -- -------------------------------------------------------- -- -- Structure de la table `notes` -- DROP TABLE IF EXISTS `notes`; CREATE TABLE IF NOT EXISTS `notes` ( `id` int NOT NULL AUTO_INCREMENT, `car_id` int NOT NULL, `titre` varchar(100) DEFAULT NULL, `contenu` text NOT NULL, `date_creation` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `fk_notes_car_id` (`car_id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; -- -- Déchargement des données de la table `notes` -- INSERT INTO `notes` (`id`, `car_id`, `titre`, `contenu`, `date_creation`) VALUES (2, 1, 'Clé', 'Ne pas oublier de faire revenir légèrement la clé vers la gauche une fois démarrée', '2026-04-20 14:58:46'), (3, 1, 'Batterie', 'Recharger la batterie', '2026-04-20 15:03:01'); -- -- Contraintes pour les tables déchargées -- -- -- Contraintes pour la table `kilometrage` -- ALTER TABLE `kilometrage` ADD CONSTRAINT `fk_km_car_id` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE; -- -- Contraintes pour la table `maintenance_logs` -- ALTER TABLE `maintenance_logs` ADD CONSTRAINT `fk_car_id` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE; -- -- Contraintes pour la table `notes` -- ALTER TABLE `notes` ADD CONSTRAINT `fk_notes_car_id` FOREIGN KEY (`car_id`) REFERENCES `cars` (`id`) ON DELETE CASCADE; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;