Script SQL de Gestion de Base de Données: Création, Mise à Jour, Requêtes

Telechargé par Lusa Athanase
-- 1. Supprimer la base si elle existe et la recréer
DROP DATABASE IF EXISTS Gestion_Epargne_Credit;
CREATE DATABASE Gestion_Epargne_Credit;
USE Gestion_Epargne_Credit;
-- 2. Création des tables
CREATE TABLE UTILISATEUR (
IdUser INT PRIMARY KEY,
NomUser VARCHAR(30),
PostnomUser VARCHAR(30),
PrenomUser VARCHAR(25),
Adresse VARCHAR(25),
Contact VARCHAR(15),
LoginUser VARCHAR(25),
PasswordUser VARCHAR(25),
EmailUser VARCHAR(25),
RoleUser VARCHAR(25)
);
CREATE TABLE CLIENT (
IdClient INT PRIMARY KEY,
NomClient VARCHAR(25),
PostnomClient VARCHAR(30),
Residence VARCHAR(50),
SexeClient VARCHAR(15),
NumClient VARCHAR(15),
DateNaissance DATE,
LieuNaissance VARCHAR(15)
);
CREATE TABLE COMPTE (
IdCompte INT PRIMARY KEY,
Folio VARCHAR(15),
DateOuverture DATE,
TypeCompte VARCHAR(10),
SoldeCompte DECIMAL(10,2)
);
CREATE TABLE CREDIT (
IdCredit INT PRIMARY KEY,
MontantCredit DECIMAL(10,2),
DateDebut DATE,
DateFin DATE,
TauxInteret DECIMAL(10,2),
TypeCredit VARCHAR(28),
StatutCredit VARCHAR(20),
IdClient INT,
IdUser INT,
FOREIGN KEY (IdClient) REFERENCES CLIENT(IdClient),
FOREIGN KEY (IdUser) REFERENCES UTILISATEUR(IdUser)
);
-- 1. Suppression de la table OPERATION
DROP TABLE IF EXISTS OPERATION;
-- 2. Analyse de la table CREDIT
ANALYZE TABLE CREDIT;
-- 3. Mise à jour du contact de l'utilisateur ayant Id = 2
UPDATE UTILISATEUR SET Contact = 'NOUVEAU_CONTACT' WHERE IdUser = 2;
-- 4. Suppression du client dont le nom est "Nasindo"
DELETE FROM CLIENT WHERE NomClient = 'Nasindo';
-- 5. Affichage des crédits en cours
SELECT * FROM CREDIT WHERE StatutCredit = 'Actif';
-- 6. Plan d'exécution de la requête sur les crédits en cours
EXPLAIN SELECT * FROM CREDIT WHERE StatutCredit = 'Actif';
-- 7. Verrouillage de la table COMPTE pour écriture exclusive
LOCK TABLE COMPTE WRITE;
-- 8. Affichage des types de crédits sans doublons
SELECT DISTINCT TypeCredit FROM CREDIT;
-- 9. Affichage des crédits entre le 1er et le 3 août 2025
SELECT * FROM CREDIT
WHERE DateDebut BETWEEN '2025-08-01' AND '2025-08-03';
-- 10. Affichage des deux premiers clients enregistrés
SELECT * FROM CLIENT
ORDER BY IdClient ASC
LIMIT 2;
-- 11. Compter combien de crédits ont été accordés par utilisateur
SELECT IdUser, COUNT(*) AS NombreCredits
FROM CREDIT
GROUP BY IdUser;
-- Réinsertion des données (avec Contact modifié pour IdUser=2 et suppression de Nasindo)
INSERT INTO UTILISATEUR (IdUser, NomUser, PostnomUser, PrenomUser, Adresse, Contact, LoginUser,
PasswordUser, EmailUser, RoleUser)
VALUES
(1, 'Musiwa', 'Kininga', 'Luc', 'La voix', '978293474', 'User1', '1111','musiwakining[email protected]', 'Admn'),
(2, 'Alice', 'Kininga', 'Grace', 'USA', 'NOUVEAU_CONTACT', 'User2', '2222','alice@gmail.com', 'Sec'),
(3, 'Mugoli', 'Safari', 'Reine', 'Nguba', '4311111111', 'User3', '333','mugoli@gmail.com','Agent');
INSERT INTO CLIENT (IdClient, NomClient, PostnomClient, Residence, SexeClient, NumClient,
DateNaissance, LieuNaissance)
VALUES
(1, 'Ehota', 'Selemani', 'Isp-Bukavu', 'M', '243999449999', '2006-02-09', 'Kinshasa'),
(2, 'Felicien', 'Mukamba', 'Nguba', 'M', '243993339299', '2004-12-05', 'Bukavu'),
(3, 'Faida', 'Kininga', 'Goma', 'F', '243999999779', '2009-02-09', 'Uvira'),
(4, 'Mubasi', 'Wampoko', 'Place', 'M', '243999999889', '1999-11-01', 'Beni');
INSERT INTO COMPTE (IdCompte, Folio, DateOuverture, TypeCompte, SoldeCompte)
VALUES
(1, 'AD3333', '2025-02-09', 'Epargne', 400000),
(2, 'DA3421', '2026-12-02', 'Epargne', 235000),
(3, 'AA5437', '2024-07-10', 'Epargne', 408000),
(4, 'CF4377', '2023-04-11', 'Epargne', 100000),
(5, 'KP7746', '2024-03-04', 'Epargne', 990000);
INSERT INTO CREDIT (IdCredit, MontantCredit, DateDebut, DateFin, TauxInteret, TypeCredit,
StatutCredit, IdClient, IdUser)
VALUES
(1, 100000, '2024-11-12', '2025-11-12', 2.5, 'Encours', 'Actif', 1, 1),
(2, 20000, '2024-11-15', '2025-11-11', 2.5, 'Expiré', 'Terminé', 1, 2),
(3, 110000, '2025-07-07', '2026-07-07', 2.5, 'Alerte', 'En attente', 2, 1),
(4, 500000, '2025-07-01', '2026-01-17', 2.5, 'Encours', 'Actif', 2, 1),
(5, 480000, '2026-01-01', '2026-01-12', 2.5, 'Encours', 'Actif', 2, 1);
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!