0% ont trouvé ce document utile (0 vote)
4 vues9 pages

Règles de passage MLD à MPD en SQL

Le document présente les règles de passage du Modèle Logique des Données (MLD) au Modèle Physique des Données (MPD) en Merise, en détaillant les choix de types de données, la création de clés, la gestion des index et des contraintes. Il fournit également un guide sur les principales requêtes SQL en MySQL, incluant la définition de la structure de la base, la manipulation des données, les jointures, et la création de vues. Enfin, il explique les différences entre les jointures internes et externes, ainsi que la notion de tables gauche et droite dans les requêtes SQL.

Transféré par

atibubob470
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues9 pages

Règles de passage MLD à MPD en SQL

Le document présente les règles de passage du Modèle Logique des Données (MLD) au Modèle Physique des Données (MPD) en Merise, en détaillant les choix de types de données, la création de clés, la gestion des index et des contraintes. Il fournit également un guide sur les principales requêtes SQL en MySQL, incluant la définition de la structure de la base, la manipulation des données, les jointures, et la création de vues. Enfin, il explique les différences entre les jointures internes et externes, ainsi que la notion de tables gauche et droite dans les requêtes SQL.

Transféré par

atibubob470
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

✅ 1.

RÈGLES DE PASSAGE DU MLD (Modèle Logique des Données) AU MPD


(Modèle Physique des Données) EN MERISE

Ce passage consiste à adapter le MLD à un SGBD réel comme MySQL, PostgreSQL,


Oracle, etc., en tenant compte des contraintes techniques (types de données, index,
performance…).

🔹 Règles générales :

➤ 1.1 Choisir les types physiques des attributs :

Passer des types logiques aux types physiques du SGBD choisi.

Type logique MySQL (MPD)


Texte VARCHAR(n)
Entier INT, SMALLINT
Décimal DECIMAL(p, s)
Date DATE, DATETIME
Booléen BOOLEAN (alias de TINYINT)
Code CHAR(n)

➤ 1.2 Créer les clés primaires et étrangères :

 Utiliser PRIMARY KEY (colonne) pour les identifiants.


 FOREIGN KEY (colonne) REFERENCES autre_table(colonne) pour les relations.

➤ 1.3 Gérer les index :

 Ajouter des INDEX ou UNIQUE si nécessaire pour optimiser les performances.

➤ 1.4 Implémenter les contraintes :

 NOT NULL pour les attributs obligatoires.


 DEFAULT pour une valeur par défaut.
 CHECK pour une contrainte de domaine (selon SGBD, peu supporté dans
MySQL avant v8).
➤ 1.5 Gérer les noms physiques :

 Respecter la convention de nommage du SGBD (minuscules, pas d’espaces, pas


d’accents…).

➤ 1.6 Créer les tables, relations, et éventuellement des vues, procédures


stockées, triggers, etc.

✅ 2. TOUTES LES PRINCIPALES REQUÊTES SQL EN MySQL

Voici les principales commandes que tu dois connaître pour créer, manipuler et
interroger une base de données MySQL :

🔸 2.1 DDL (Data Definition Language) – Structure de la base

sql
CopierModifier
-- Créer une base
CREATE DATABASE nom_base;

-- Utiliser une base


USE nom_base;

-- Créer une table


CREATE TABLE client (
id_client INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(50),
email VARCHAR(100) NOT NULL UNIQUE
);

-- Modifier une table


ALTER TABLE client ADD colonne_age INT;
ALTER TABLE client DROP COLUMN colonne_age;

-- Supprimer une table


DROP TABLE client;

🔸 2.2 DML (Data Manipulation Language) – Manipulation des données

sql
CopierModifier
-- Insérer des données
INSERT INTO client (nom, email) VALUES ('Jean', 'jean@[Link]');

-- Mettre à jour
UPDATE client SET nom = 'Jean Dupont' WHERE id_client = 1;

-- Supprimer
DELETE FROM client WHERE id_client = 1;

🔸 2.3 DQL (Data Query Language) – Requêtes

sql
CopierModifier
-- Sélection simple
SELECT * FROM client;

-- Sélection avec condition


SELECT nom FROM client WHERE email LIKE '%@[Link]';

-- Trier
SELECT * FROM client ORDER BY nom ASC;

-- Limiter le nombre
SELECT * FROM client LIMIT 10;

-- Agrégation
SELECT COUNT(*) FROM client;
SELECT AVG(age) FROM client;

🔸 2.4 Requêtes avec jointures

sql
CopierModifier
-- Jointure interne
SELECT [Link], commande.date_commande
FROM client
JOIN commande ON client.id_client = commande.id_client;

-- Jointure externe gauche


SELECT [Link], commande.date_commande
FROM client
LEFT JOIN commande ON client.id_client = commande.id_client;
🔸 2.5 Contraintes et clés

sql
CopierModifier
-- Ajouter une clé étrangère
ALTER TABLE commande
ADD CONSTRAINT fk_client
FOREIGN KEY (id_client) REFERENCES client(id_client);

🔸 2.6 Vues

sql
CopierModifier
-- Créer une vue
CREATE VIEW vue_clients_gmail AS
SELECT * FROM client WHERE email LIKE '%@[Link]';

-- Utiliser une vue


SELECT * FROM vue_clients_gmail;

🔸 2.7 Autres (index, procédures…)

sql
CopierModifier
-- Créer un index
CREATE INDEX idx_nom ON client(nom);

-- Procédure stockée simple


DELIMITER //
CREATE PROCEDURE liste_clients()
BEGIN
SELECT * FROM client;
END;
//
DELIMITER ;

CALL liste_clients();

Bien sûr ! Voici une explication claire et illustrée des jointures internes et externes
en SQL, utilisées pour combiner des données provenant de plusieurs tables.

🔷 1. JOINTURE INTERNE (INNER JOIN)


📌 Définition :

La jointure interne (INNER JOIN) ne garde que les lignes qui ont des
correspondances dans les deux tables.

🔧 Syntaxe :

sql
CopierModifier
SELECT *
FROM tableA
INNER JOIN tableB ON [Link] = [Link];

📊 Exemple :

Table Client :
id_client nom
1 Alice
2 Bob
3 Charly
Table Commande :
id_commande id_client date
101 1 2024-01-01
102 2 2024-01-02
103 4 2024-01-03
Requête :
sql
CopierModifier
SELECT [Link], [Link]
FROM Client
INNER JOIN Commande ON Client.id_client = Commande.id_client;
Résultat :
nom date
Alice 2024-01-01
Bob 2024-01-02

🔎 Le client Charly (id=3) est exclu car il n’a pas passé de commande. Et la commande
103 (id_client=4) est exclue car ce client n'existe pas dans la table Client.
🔷 2. JOINTURE EXTERNE (OUTER JOIN)

📌 Définition :

La jointure externe garde toutes les lignes d’au moins une des deux tables, même
si elles n’ont pas de correspondance dans l’autre.

🔹 a) LEFT JOIN (Jointure externe gauche)

 Garde toutes les lignes de la table de gauche, même sans correspondance


dans la droite.
 Les colonnes de la droite seront NULL s’il n’y a pas de correspondance.

Requête :
sql
CopierModifier
SELECT [Link], [Link]
FROM Client
LEFT JOIN Commande ON Client.id_client = Commande.id_client;
Résultat :
nom date
Alice 2024-01-01
Bob 2024-01-02
Charly NULL

🔎 Charly apparaît même s’il n’a pas passé de commande.

🔹 b) RIGHT JOIN (Jointure externe droite)

 Garde toutes les lignes de la table de droite, même sans correspondance dans
la gauche.

Requête :
sql
CopierModifier
SELECT [Link], [Link]
FROM Client
RIGHT JOIN Commande ON Client.id_client = Commande.id_client;
Résultat :
nom date
Alice 2024-01-01
Bob 2024-01-02
NULL 2024-01-03

🔎 La commande 103 apparaît même si son client (id=4) n'existe pas.

🔹 c) FULL OUTER JOIN (Jointure externe complète)

 Garde toutes les lignes des deux tables, même sans correspondance.

🛑 ⚠️MySQL ne supporte pas FULL OUTER JOIN directement, mais on peut le


simuler :

sql
CopierModifier
SELECT [Link], [Link]
FROM Client
LEFT JOIN Commande ON Client.id_client = Commande.id_client

UNION

SELECT [Link], [Link]


FROM Client
RIGHT JOIN Commande ON Client.id_client = Commande.id_client;

🔍 Résumé des différences

Type de jointure Données conservées


INNER JOIN Lignes communes (match dans les deux tables)
LEFT JOIN Toutes les lignes de gauche + match dans la droite
RIGHT JOIN Toutes les lignes de droite + match dans la gauche
FULL OUTER JOIN Toutes les lignes de gauche et de droite
Si tu veux, je peux te montrer un exemple complet avec code SQL et jeu de données à
tester dans MySQL. Tu veux que je te le prépare ?

Vous avez dit :


c'est quoi la table gauche et droite exactement
ChatGPT a dit :

Très bonne question 👇

✅ C’est quoi la table de gauche et la table de droite dans une jointure SQL ?

Dans une requête SQL avec jointure, la table de gauche est simplement la première
table que tu mentionnes après le FROM, et la table de droite est celle que tu
mentionnes après le JOIN.

🔷 Exemple simple :

sql
CopierModifier
SELECT *
FROM Client
LEFT JOIN Commande ON Client.id_client = Commande.id_client;

 Table de gauche → Client (car elle vient après FROM)


 Table de droite → Commande (car elle vient après LEFT JOIN)

🔷 Visuellement :

text
CopierModifier
FROM JOIN
Client ← Commande
↑ gauche ↑ droite

✅ Pourquoi c’est important ?

Parce que dans une LEFT JOIN, MySQL :

 Prend toutes les lignes de la table de gauche


 Et y associe les lignes correspondantes de la table de droite
 S’il n’y a pas de correspondance, les colonnes de la table de droite seront
NULL

🔸 Autre exemple avec RIGHT JOIN :

sql
CopierModifier
SELECT *
FROM Client
RIGHT JOIN Commande ON Client.id_client = Commande.id_client;

 Ici, Commande est la table de droite


 Donc on garde toutes les commandes, même si aucun client correspondant
n’existe

🔍 Astuce pour ne jamais te tromper :

Lis ta requête comme une phrase :

LEFT JOIN → garde tout ce qu’il y a à gauche (dans le FROM)

RIGHT JOIN → garde tout ce qu’il y a à droite (dans le JOIN)

Vous aimerez peut-être aussi