Résumé TP : Base de Données PDF
Document Details
Uploaded by FlatteringNiobium2119
ENCG CASA
Tags
Summary
Ce document est un résumé d'un TP sur les bases de données. Il couvre les concepts de base, comme les types de données, la création de tables et les requêtes SQL. Le document est bien structuré et organisé.
Full Transcript
# Resumé Tp: Base de Données ## Une base de données: - Une collection d'information organisée afin d'être facilement consultable, manipulable et analysée. - "Ils sont utilisés dans des entreprises pour stocker des informations et être analysées". - L'information est organisée dans des tableaux à...
# Resumé Tp: Base de Données ## Une base de données: - Une collection d'information organisée afin d'être facilement consultable, manipulable et analysée. - "Ils sont utilisés dans des entreprises pour stocker des informations et être analysées". - L'information est organisée dans des tableaux à 2 dimensions appelés relations ou tableaux. - Une ligne & muplets ou enregistrement. ### Représentation table: #### Colonnes: Attributs | CIN | NOM | PRENOM | Age | |---|---|---|---| | *19 attributs* | | | | **Nomenclature** - Commencer par une lettre. - Utilisation de lettres (min, moy...), caractères @ $ - chiffres. - Pas d'espaces. - Pas de mots réservés. ## SGBD **Système gestion de Base données** - Ensemble de logiciels qui manipulent le contenu des BD. - A comme objectif garantir la cohérence du contenu de la BD. - Assure un accès facile aux données. - Accès simultanés de plusieurs users. - Manipulation de données "facile". ## Types de SGBD - **SGBDR:** SGBD + implémentant des BD. - **Théorie relationnelle** - **Garantie intégrité des BD** **MySQL** - est un SGBD distribué à double licence: - **GNU** (propriétaire) - **Oracle** (BDR) distribué par Oracle - **Structured Query Language:** Langage des requetages structurés. - **Langage informatique normalisé savant à exploiter des BDR**. ### Langages - **Langage définition des données:** (LDD) - Gestion/Modification de base de données/tables. - **Langage de manipulation de données:** (LMD) - Rechache/Ajoute/Modifie/Supprime des enregistrements. - **Langage de contrôle:** - Autorise/Interdit accès à qq personnes. - Transaction (LCT): Commence & termine les transactions. ## Types de données | Types | Description | |---|---| | Numérique | | | Textuels | (Alphamumérique) | | Temporal | | ### Nombre entiers - **TINY INT:** 1 octet. - **SMALLINT:** 2 octets. - **MEDIUM INT:** 3 octets. - **INT:** 4 octets. - **BIG INT:** 8 octets. - **UNSIGNED:** Pour designer qu'il s'agit d'un entier positif. On ajoute UNSIGNED. - **ZEROFILL:** Pour préciser le nombre de chiffre minimum à afficher. Type entier (max). - **DECIMAL:** Nombre à gauche du nombre. ### Nombre Decimaux - **NUMERIC:** Ils sont équivalents. Accepte la précision. Définit le nombre de chiffres significatifs. - **FLOAT:** Il peut être utilisé avec 2 paramètres. - **REAL:** 4 octets. - **DOUBLE:** 8 octets. - **FLOAT** (precision, échelle): Définit le nombre de chiffre après la virgule. - **Texte court:** Stocke sous forme de chaîne de caractère. - **CHAR(X):** - Stocke jusqu'à X caractères. - Remplaçant le reste de 255 par des espaces vides. - **VARCHAR(X):** - Stocke jusqu'à X caractères (max X). - 1 espace mémoire de plus, en fonction de la taille. - **Texte long:** - **CHAR(X):** - Mémoire espace: X octets - **VARCHAR(X):** - Mémoire espace: 1 octet. - **TINY TEXT:** < 256 caractères - mémoire espace: 2 octets. - **TEXT:** < 65.536 caractères. - mémoire espace: 2 octets. - **MEDIUM TEXT:** < 16.777.216 caractères - mémoire espace: 3 octets. - **LONG TEXT:** - mémoire espace: 4 octets. ### ENUM - Est une colonne. - Définit le type. - Ex: ENUM ('vol 1', 'vol 2', ...). - Permet de remplir un champ ENUM. - Ex: Indique l'indexe associé: (vide) - "vide" - "vol 1". ### SET - Est une colonne. - Prend n valeurs. - Ex: SET (val1, val2, .....) - Permet de stocker plusieurs valeurs dans cette colonne. ## Donnée temporelle | Type | Description | |---|---| | DATE | | | DATE TIME | | | TIME | | | YEAR | | ### DATE - Permet de stocker la date et le jour. - Stocke l'année, le mois et le jour. - On peut stocker une date exacte. - On peut stocker l'année, le mois, le jour et la seconde. - On peut stocker l'heure. - On peut stocker la minute et la seconde. - Pour la date: AAAA-MM-JJ - AAA: - Année. - MM: - mois. - JJ: - jour. ### DATE TIME - Permet de stocker la date et l'heure. - Stocke l'année, le mois, le jour, l'heure, la minute et la seconde. ### TIME - Permet de stocker l'heure. - Stocke l'heure, la minute et la seconde. - HH:MM:SS - HH: - heure. - MM: - minute. - SS: - seconde. ### YEAR - Permet de stocker l'année. - Prend 1 seul octet en mémoire. - Stocke l'année. - Entre 1901 et 2155. ## Base de données: - **Création:** - `CREATE DATABASE nom_base;` Créer une base de données. - `DROP DATABASE nom_base;` Supprimer une base de données. - `SHOW DATA BASES;` Afficher les bases de données. - `CREATE DATABASE IF NOT EXISTS nom_base;` Créer une base de données. - `CREATE TABLE nom_table(attribut1 type, attribut2 type, ...);` Créer une table. - **Suppression:** - `DROP TABLE nom_table;` Supprimer une table. - `DROP TABLE IF EXISTS nom_table;` Supprimer une table si elle existe. - `SHOW CREATE TABLE nom_base, nom_table;` Créer la structure d'une table. - **Affichage:** - `SHOW TABLES;` Afficher les tables de la base de données. - `DESCRIBE nom_table;`Afficher la structure de la table. ### Affichage - `CREATE TABLE nom_table (attribut1 type, attribut2 type, ...);` Créer une table. - `NOT NULL`: interdit de laisser la case vide. - `DEFAULT Valeur:` Valeur par défaut. - `PRIMARY KEY:` Clé primaire. - `AUTOINCREMENT` : Ajoute 1 automatiquement. - `CREATE TABLE personne (CNI CHAR (8), NOM VARCHAR(20), Age INT(3), ville CHAR (6)); ` - `CONSTRAINT pk_persone PRIMARY KEY(CNI); ` - `CONSTRAINT fk_persone_ville FOREIGN KEY (ville) REFERENCES ville (code_ville); ` - `CREATE TABLE ville (code_ville char(6) PRIMARY KEY, superficie INT (10), population INT(6));` ## Clé primaire - **Est une contrainte d'unicité:** (PRIMARY KEY) - **Permet d'identifier** une ou plusieurs colonnes de façon unique. ## Clé étrangère - **Est une contrainte qui garantit l'intégrité référentielle entre 2 tables dans une BDR.** - **Identifie une colonne** qui fait référence à une autre colonne d'une autre table. - `CONSTRAINT fk_persone_ville FOREIGN KEY (ville) REFERENCES ville (code_ville);` ## Modification - **Modification d'une table:** - `ALTER TABLE nom_table RENAME TO nom_table2;` Renommer une table. - `ALTER TABLE nom_table ADD [column1] type,[column2] type...;` Ajouter une colonne. - `ALTER TABLE nom_table ALTER [column1] type;` Changer le type d'une colonne. - `ALTER TABLE nom_table RENAME [column1] TO nom_table2;` Renommer une colonne. - `ALTER TABLE nom_table MODIFY type optiong;` Modifier une colonne. - **Ajout de clé primaire:** - `ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte PRIMARY KEY (nom_colonne);` - **Suppression de clé primaire:** - `ALTER TABLE nom_table DROP PRIMARY KEY; ` - **Ajout de clé étrangère:** - ``ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte FOREIGN KEY (nom_colonne1) REFERENCES table2 (nom_colonne2);` - **Suppression de clé étrangère:** - `ALTER TABLE nom_table DROP CONSTRAINT nom_contrainte;` ## Emaegistret - `INSERT INTO nom_table VALUES (val1, val2, ...) ; ` Insérer des données. - `LOAD DATA LOCAL INFILE 'nom_fichier' INTO TABLE nom_table FIELDS (champs ...);` Insérer des données depuis un fichier. - `TERMINATED BY 'separateur';` (Encapsulation) - `ENCLOSED BY 'séparateur';` (Ligne) - `STARTING BY 'séparateur';` (Encapsulation) - `IGNORE` ignorer les lignes incorrectes. ## Suppression - `DELETE FROM nom_table WHERE condition;` Effacer des lignes de la table. ## Modification - `UPDATE nom_table SET col1=val1, col2=val2 WHERE condition;` Modifier des données. ## Affichage des données de la table - `SELECT * FROM nom_table;` Afficher toutes les colonnes de la table. - `SELECT * FROM nom_table WHERE condition;` Afficher les colonnes de la table qui répondent à une condition. ### Opérations - '+', '-', '*', '/' - `AND, OR, NOT` (voir manipule - Données). - **Elimination des doublons:** - - `SELECT DISTINCT nom_colonne1 FROM nom_table;` ### Retreindre les résultats de l'affichage à l'aide de LIMIT - `SELECT nom_colonne1, nom_colonne2…FROM nom_table ORDER BY nom_colonne1 [ASC] nom_colonne2 [ASC] … LIMIT mbn_ligne [OFFSET decalage];` ### Ordonner Resulta l'affichage - ` SELECT nom_colonne1, nom_colonne... FROM nom_table ORDER BY nom_colonne1 [ASC] nom_colonne2 [ASC] …; ` ### Des conditions de selection avec la clause WHERE - `SELECT nom_colonne1… FROM nom_table WHERE (condition); ` - `NOT LIKE` - `AND, OR, XOR, NOT` - `BETWEEN… AND …` - `LIKE…` - `IS NOT NULL, IS NULL` - **Opérations:** - `=`, `<>`, `!=`, `>`, `>=`, `<`, `<=` - `IN` - **L'opération IN est adaptée par la nethache dans cet ensemble d'options:** - `SELECT nom_colonne… FROM nom_table WHERE nom_colonne IN (op1, op2 …);` - `SELECT nom_colonne… FROM nom_table WHERE nom_colonne= op1 OR nom_colonne = op2 OR nom_colonne=op3...;` ### Affichage des données de la table - `SELECT nom_colonne1, nom_colonne2… FROM nom_table;` Afficher les colonnes de la table. - `SELECT * FROM nom_table WHERE condition;` Afficher les colonnes de la table qui répondent à une condition. ### Fonction d'agrégation. - `SELECT COUNT (*), MIN (*), MAX (*), SUM (*), AVG (*), GROUP CONCAT (*); ` - `COUNT(*)` : Compte le nombre de lignes. - `MIN(*)` : Retourne la valeur minimale - `MAX(*)` : Retourne la valeur maximale - `SUM(*)` : Retourne la somme. - `AVG(*)` : Retourne la moyenne.` ## Regroupement - `SELECT nom_colonne1, nom_colonne2 FROM nom_table GROUP BY nom_colonne1;` - Retourne les valeurs de la colonne 1, groupées par les valeurs de la colonne 2. - **Exemple:** ```sql SELECT client, SUM(tarif) AS somme FROM achat GROUP BY client; ``` - `SELECT nom_colonne1 AS [nom] , SUM(nom_colonne2) FROM nom_table GROUP BY nom_colonne1;` - **Atention:** - On ne peut pas effectuer de fonctions sur une colonne qui n'est pas dans le `GROUP BY`. ### Fonction d'agrégation. - `SELECT COUNT (*), MIN (*), MAX (*), SUM (*), AVG (*), GROUP CONCAT (*); ` - `COUNT(*)` : Compte le nombre de lignes. - `MIN(*)` : Retourne la valeur minimale - `MAX(*)` : Retourne la valeur maximale - `SUM(*)` : Retourne la somme. - `AVG(*)` : Retourne la moyenne.` ## Jointure - **Jointure interne:** - `SELECT nom_colonne1, nom_colonne2 FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - **Jointure externe:** - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - **Jointure naturelle:** - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2;` ## Jointure - **Jointure interne:** - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - **Jointure externe:** - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - **Jointure naturelle:** - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2;` - **Jointure entre deux tables:** - `SELECT nom_colonne1, nom_colonne2… FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2 ;` - **Jointure entre trois tables:** - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne3 = nom_colonne4;` - **Aut jointure:** - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; ` - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` ## Jointure - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2; - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` - **Jointure externe:** - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - **Jointure naturelle:** - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2; - **Jointure entre deux tables:** - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2 ; - **Jointure entre trois tables:** - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2; - **Aut jointure:** - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` ## Jointures - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2;` - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne;` - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` ## Jointures - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2;` - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne;` - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` - **Jointure externe:** - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - **Jointure naturelle:** - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2; - **Jointure entre deux tables:** - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2 ; - **Jointure entre trois tables:** - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2; - **Aut jointure:** - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` - **Jointure externe:** - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - **Jointure naturelle:** - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2; - **Jointure entre deux tables:** - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2 ; - **Jointure entre trois tables:** - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2; - **Aut jointure:** - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` ## Jointures - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2;` - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne;` - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` ## Jointures - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2;` - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2;` - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` - **Jointure externe:** - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - **Jointure naturelle:** - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2; - **Jointure entre deux tables:** - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2 ; - **Jointure entre trois tables:** - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2; - **Aut jointure:** - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;` - **Jointure externe:** - `SELECT * FROM nom_table1 LEFT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 RIGHT [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - `SELECT * FROM nom_table1 FULL [OUTER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2; - **Jointure naturelle:** - `SELECT * FROM nom_table1 NATURAL JOIN nom_table2; - **Jointure entre deux tables:** - `SELECT * FROM nom_table1 [INNER] JOIN nom_table2 ON nom_colonne1 = nom_colonne2 ; - **Jointure entre trois tables:** - `SELECT * FROM nom_table1 JOIN nom_table2 ON nom_colonne1 = nom_colonne2 JOIN nom_table3 ON nom_colonne1 = nom_colonne2; - **Aut jointure:** - `SELECT * FROM nom_table1 AS A1, nom_table1 AS A2 WHERE A1.nom_colonne = A2.nom_colonne; - `SELECT * FROM nom_table1 AS A1 JOIN nom_table1 AS A2 ON A1.nom_colonne = A2.nom_colonne;`