Bases de données PDF Gratuit

Cours PDF SQL : Maîtriser le Langage de Base (Débutant)

Maîtrisez SQL avec ce cours PDF gratuit à télécharger pour apprendre les bases et appliquer des requêtes sur des bases relationnelles. Le support s'appuie sur le standard SQL et illustre l'usage dans des SGBDR courants pour faciliter la transposition vers des environnements réels.

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server
« Préférez des requêtes lisibles et des index adaptés : la maintenabilité et les performances se gagnent dès la conception des schémas. » — Éric Venot et Hervé Lagant

🎯 Ce que vous allez apprendre

  • Introduction à SQL : fondamentaux et logique du standard pour interroger et structurer des données relationnelles.
  • Instructions SQL : construction de requêtes simples et composées, et compréhension des syntaxes principales.
  • Langage de manipulation des données : insertion, mise à jour et suppression d'enregistrements avec bonnes pratiques.
  • Langage de définition de données : création et modification des structures (tables, index, contraintes) adaptés aux besoins applicatifs.
  • Contrôle des transactions et sécurité : gestion de l'intégrité, des transactions et des droits d'accès pour des applications robustes.
  • Notions procédurales : initiation aux procédures stockées et variables pour automatiser des traitements côté serveur.

Pourquoi apprendre le SQL ?

Le langage relationnel constitue le point d'accès principal aux données stockées : extraire, agréger et transformer des volumes importants directement côté serveur simplifie l'analyse et accélère les traitements. La maîtrise de ces concepts facilite l'obtention d'insights opérationnels, l'optimisation de requêtes critiques et l'intégration de pipelines de données avec des outils d'analyse ou des applications métiers.

Prérequis pour ce cours

  • Connaissances de base en informatique
  • Un SGBDR installé (MySQL, PostgreSQL ou Oracle Express)
  • Un éditeur de texte ou client SQL (DBeaver, SQL Developer)
  • Notions élémentaires en SQL (SELECT, WHERE, JOIN) recommandées pour suivre les exercices pratiques

Les opérations CRUD et les jointures

Les opérations CRUD sont illustrées par des exemples pratiques et accompagnées de bonnes pratiques pour préserver l'intégrité et la performance. La section sur les jointures explique comment relier des tables et quand préférer des requêtes imbriquées plutôt que des jointures pour des besoins spécifiques de lisibilité ou d'efficacité.

  • Commandes principales du Langage de Manipulation des Données (DML) : SELECT, INSERT, UPDATE, DELETE
  • Fonctions d'agrégation couvertes : SUM, AVG, COUNT, MIN, MAX

Analyse de données : agrégations et groupements

L'usage de GROUP BY permet d'agréger des lignes selon une ou plusieurs colonnes pour obtenir totaux, moyennes ou comptes par groupe. La clause HAVING filtre les groupes après agrégation, contrairement à WHERE qui agit sur les lignes avant l'agrégation. Des exemples montrent l'enchaînement des fonctions d'agrégation avec GROUP BY et l'utilisation de HAVING pour isoler des résultats significatifs dans des rapports métier.

Différences entre SQL standard et SQL procédural

Le SQL déclaratif permet de formuler des requêtes pour manipuler et récupérer des données. Les extensions procédurales (PL/SQL, T-SQL) ajoutent des constructions impératives : variables, conditions, boucles et gestion d'exceptions. Ces extensions permettent d'écrire des blocs réutilisables et d'automatiser des traitements côté serveur, utiles pour procédures stockées et scripts d'administration.

-- Exemple simple de procédure stockée (syntaxe MySQL/MariaDB ; adaptation nécessaire selon SGBDR)
DELIMITER $$
CREATE PROCEDURE calculer_total_ventes(IN p_date DATE, OUT p_total DECIMAL(10,2))
BEGIN
  SELECT SUM(montant) INTO p_total
  FROM ventes
  WHERE DATE(date_op) = p_date;
END$$
DELIMITER ;

Les extensions procédurales intègrent également des mécanismes d'automatisation comme les Triggers (déclencheurs), qui exécutent du code en réponse à des événements DML ou DDL pour valider ou historiser des opérations. On y rencontre aussi des dialectes et variantes propriétaires tels que SPL (Stored Procedure Language), utilisés dans certains SGBDR pour développer des routines, procédures stockées et tâches d'administration spécifiques.

Le langage SPL (Stored Procedure Language)

Le SPL désigne des ensembles de fonctionnalités procédurales présents dans certains SGBDR non standardisés. Il couvre la définition de procédures stockées, fonctions et gestion de curseurs selon des syntaxes propres au fournisseur. Le guide décrit les concepts habituels du SPL (déclaration de variables, contrôle de flux, gestion d'exceptions) et souligne les différences d'implémentation pour faciliter la portabilité de blocs logiques entre environnements.

Triggers (déclencheurs)

Les déclencheurs servent à automatiser des actions en réponse à des événements de modification du schéma ou des données. Ils permettent, par exemple, la validation de contraintes complexes, l'historisation ou la réplication légère d'opérations. Les syntaxes varient selon les SGBDR ; le guide fournit un exemple générique et signale les adaptations nécessaires selon le dialecte.

-- Exemple générique d'un trigger après insertion (syntaxe variable selon SGBDR)
CREATE TRIGGER trg_after_insert_ventes
AFTER INSERT ON ventes
FOR EACH ROW
BEGIN
  INSERT INTO historique_ventes(vente_id, montant, date_op)
  VALUES (NEW.id, NEW.montant, CURRENT_TIMESTAMP);
END;

Gestion des transactions

Contrôler explicitement les transactions est essentiel pour garantir l'atomicité des opérations critiques. Exemples ci‑dessous en syntaxe générique (adaptation selon SGBDR) montrant COMMIT et ROLLBACK.

-- Exemple générique : transfert entre comptes (transaction explicite)
BEGIN TRANSACTION;  -- ou BEGIN; selon le SGBDR

UPDATE comptes SET solde = solde - 100.00 WHERE id = 1;
UPDATE comptes SET solde = solde + 100.00 WHERE id = 2;

-- si toutes les validations sont OK
COMMIT;

-- en cas d'erreur détectée
ROLLBACK;

Focus sur Transact-SQL et SPL

Transact-SQL (T-SQL) est l'extension procédurale fournie par Microsoft SQL Server. Elle ajoute des constructions spécifiques au T-SQL pour le contrôle de flux, la gestion d'erreurs (TRY...CATCH) et des fonctions système utiles en administration. Le guide compare les patterns courants en T-SQL et en PL/SQL pour aider à choisir les bonnes pratiques lors de migrations ou de développements sur SQL Server.

Le chapitre consacré au SPL explique les implications de l'utilisation de langages procéduraux propriétaires et propose des techniques pour factoriser la logique métier afin de limiter le verrouillage sur un seul dialecte, tout en tirant parti des capacités de chaque plateforme pour optimiser les traitements côté serveur.

SQL Avancé / Jointures complexes

La section avancée aborde les sous-requêtes corrélées et non corrélées, l'usage des vues matérialisées et la réécriture de requêtes via des CTE (Common Table Expressions). Les stratégies d'optimisation pour les vues complexes et les conseils pour limiter les lectures disque sont fournis. Une attention particulière est portée aux jointures complexes pour traiter des modèles relationnels étendus.

Les jointures externes sont expliquées en détail : LEFT OUTER JOIN, RIGHT OUTER JOIN et FULL OUTER JOIN permettent d'inclure des lignes même en l'absence de correspondance côté opposé, utiles pour tableaux de bord et rapports incomplets. L'auto-jointure (self-join) est présentée pour traiter des hiérarchies et des relations au sein d'une même table. Des exemples montrent aussi quand privilégier des requêtes imbriquées pour la lisibilité ou l'isolation logique.

-- Exemple de FULL OUTER JOIN (syntaxe supportée selon SGBDR)
SELECT COALESCE(a.id, b.id) AS id,
       a.nom AS nom_a,
       b.nom AS nom_b
FROM table_a a
FULL OUTER JOIN table_b b
  ON a.id = b.id;

Optimisation des requêtes et performances

L'optimisation s'appuie sur la compréhension des index, des plans d'exécution et des coûts estimés par le SGBDR. Les bonnes pratiques include la sélection de colonnes pertinentes, l'écriture de jointures en tenant compte des cardinalités et le choix d'index adaptés. Des exemples d'analyse de plan d'exécution et des techniques pratiques permettent de réduire les lectures disque et d'accélérer les requêtes critiques pour les applications en production.

Installation et configuration d'un environnement SQL

Cette section guide l'installation d'un environnement local pour s'exercer : choix d'un SGBDR adapté (MySQL, PostgreSQL, Oracle Express), configuration de comptes utilisateur minimaux et paramètres de base pour le développement (encodage, isolation des transactions, répertoires de données). Des instructions de base expliquent comment importer des jeux de données, exécuter des scripts et vérifier l'état des services afin de garantir un environnement reproductible pour les exercices et les tests.

Comprendre l'intégrité des données et les contraintes

L'intégrité référentielle et les contraintes (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL) sont essentielles pour garantir la cohérence du modèle relationnel. Cette section décrit comment définir et maintenir ces contraintes, l'impact des suppressions en cascade, et les stratégies de migration de schéma sans perte de données. Un paragraphe sur le dictionnaire de données explique l'importance de documenter les tables, colonnes et contraintes pour la maintenabilité.

Pratique : Exercices et cas concrets en SQL

Le guide propose des mises en situation progressives : création de schémas, population de données, conception d'index, analyse de plans et réécriture de requêtes. Les cas concrets couvrent des scénarios métiers courants pour renforcer la compréhension et assurer la transférabilité des compétences vers des environnements réels.

Exercices SQL corrigés inclus dans le PDF

Le PDF contient des exercices corrigés couvrant la création de tables, l'écriture de requêtes simples et imbriquées, les jointures multi‑tables, les opérations transactionnelles, la rédaction de procédures stockées et des exercices d'optimisation. Chaque exercice propose des jeux de données, des solutions commentées et des pistes d'amélioration pour consolider l'apprentissage pratique. Le fichier (44 pages) est téléchargeable et inclut les scripts et procédures présentés, prêts à l'emploi pour les exercices.

Logiciels et SGBDR compatibles

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server

Outils d'administration et clients évoqués : SQL*Plus, SQL Developer, MySQL Workbench, DBeaver. Ces outils permettent l'exécution de scripts, l'automatisation d'opérations et le diagnostic des requêtes dans des environnements Oracle ou multi‑SGBDR.

👤 À qui s'adresse ce cours ?

Destiné aux débutants, le support propose des explications pas à pas, des exemples concrets et des exercices pratiques avec corrections pour valider les acquis. Public visé : analystes de données, développeurs back-end et toute personne amenée à interroger ou manipuler des bases relationnelles.