Aller au contenu

Rappel: Introduction aux bases de données relationnelles#

Définition et concepts fondamentaux#

  • Les bases de données relationnelles sont des systèmes de gestion de bases de données (SGBD) basés sur le modèle relationnel, inventé par E.F. Codd.
  • Les données sont organisées en tables (ou relations) qui sont composées de lignées (ou tuples) et de colonnes (ou attributs).
  • Une clé primaire unique identifie chaque ligne dans une table.
  • Les relations entre les tables sont définies par des clés étrangères.

Modèle relationnel et langage SQL#

  • Le langage SQL (Structured Query Language) est utilisé pour interagir avec les bases de données relationnelles.
  • SQL permet de créer, de lire, de mettre à jour et de supprimer des données (opérations CRUD).

Rappel: Concepts clés de SQL#

DDL (Data Definition Language): CREATE, ALTER, DROP#

  • Le DDL définit et gère les objets de la base de données.
  • CREATE est utilisé pour créer des objets dans la base de données.
  • ALTER est utilisé pour modifier la structure des objets existants dans la base de données.
  • DROP est utilisé pour supprimer des objets de la base de données.

Exemple de commandes SQL DDL :

CREATE TABLE Utilisateurs (
    ID int,
    Nom varchar(255),
    Email varchar(255),
    PRIMARY KEY (ID)
);
ALTER TABLE Utilisateurs
ADD DateNaissance date;
DROP TABLE Utilisateurs;

DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE#

  • Le DML concerne les opérations sur les données.
  • SELECT est utilisé pour interroger les données dans la base de données.
  • INSERT est utilisé pour insérer de nouvelles données dans la base de données.
  • UPDATE est utilisé pour mettre à jour des données existantes dans la base de données.
  • DELETE est utilisé pour supprimer des données de la base de données.

Exemple de commandes SQL DML :

SELECT * FROM Utilisateurs;
INSERT INTO Utilisateurs (ID, Nom, Email)
VALUES (1, 'Dupont', 'dupont@example.com');
UPDATE Utilisateurs
SET Email = 'dupont2@example.com'
WHERE ID = 1;
DELETE FROM Utilisateurs
WHERE ID = 1;

Clauses SQL : WHERE, ORDER BY, GROUP BY, HAVING, JOIN#

  • WHERE est utilisé pour filtrer les résultats d'une requête.
  • ORDER BY est utilisé pour trier les résultats d'une requête.
  • GROUP BY est utilisé pour regrouper les résultats d'une requête.
  • HAVING est utilisé pour filtrer les résultats d'une requête GROUP BY.
  • JOIN est utilisé pour combiner des rangées de deux ou plusieurs tables.

Exemple de commandes SQL avec clauses :

SELECT * FROM Utilisateurs WHERE Nom = 'Dupont';
SELECT * FROM Utilisateurs ORDER BY Nom;
SELECT COUNT(*), Pays FROM Utilisateurs GROUP BY Pays;
SELECT COUNT(*), Pays FROM Utilisateurs GROUP BY Pays HAVING COUNT(*) > 1;
SELECT Utilisateurs.Nom, Commandes.Numero
FROM Utilisateurs


JOIN Commandes ON Utilisateurs.ID = Commandes.UtilisateurID;

Rappel: Pratique de SQL#

Environnement SQL et outils de travail#

  • Un environnement SQL typique comprend un SGBD (par exemple, PostgreSQL, MySQL), un shell pour exécuter les commandes SQL et un outil d'interface utilisateur (par exemple, pgAdmin pour PostgreSQL, phpMyAdmin pour MySQL).

Création et manipulation de tables#

  • Utilisez la commande CREATE pour créer une table.
  • Utilisez la commande INSERT pour ajouter des données à une table.
  • Utilisez la commande UPDATE pour modifier des données dans une table.
  • Utilisez la commande DELETE pour supprimer des données d'une table.

Exemple de création et manipulation de tables :

CREATE TABLE Commandes (
    Numero int,
    UtilisateurID int,
    DateCommande date,
    PRIMARY KEY (Numero)
);
INSERT INTO Commandes (Numero, UtilisateurID, DateCommande)
VALUES (1, 1, '2023-06-20');
UPDATE Commandes
SET DateCommande = '2023-06-21'
WHERE Numero = 1;
DELETE FROM Commandes
WHERE Numero = 1;

Exécution de requêtes SQL#

  • Utilisez la commande SELECT pour interroger les données dans la base de données.
  • Les clauses SQL (WHERE, ORDER BY, GROUP BY, HAVING, JOIN) peuvent être utilisées pour personnaliser les résultats de la requête.

Exemple d'exécution de requêtes SQL :

SELECT * FROM Commandes WHERE UtilisateurID = 1;
SELECT * FROM Commandes ORDER BY DateCommande;
SELECT COUNT(*), UtilisateurID FROM Commandes GROUP BY UtilisateurID;
SELECT COUNT(*), UtilisateurID FROM Commandes GROUP BY UtilisateurID HAVING COUNT(*) > 1;
SELECT Utilisateurs.Nom, Commandes.Numero
FROM Utilisateurs
JOIN Commandes ON Utilisateurs.ID = Commandes.UtilisateurID;