# SQL pour la documentation : SELECT, jointures et agrégats

Sciences de l'information · Bachelor 3

> Interroger une base documentaire en SQL : sélection, jointure, regroupement et tri.

## Introduction

SQL est le langage standard d'interrogation des bases relationnelles. Dans une bibliothèque ou un service d'archives, il sert à extraire des listes, produire des statistiques de prêt, repérer des anomalies de catalogage ou préparer des exports.

Ce deck présente les clauses essentielles : sélection et filtrage, jointure entre tables, regroupement et fonctions d'agrégat, tri. Il met l'accent sur la lecture d'une requête et sur les erreurs fréquentes, comme les jointures oubliées qui multiplient les lignes.

## Objectifs d'apprentissage

- Écrire une requête SELECT avec filtre et tri
- Joindre plusieurs tables à l'aide des clés
- Calculer des statistiques avec GROUP BY et les fonctions d'agrégat

## Concepts clés

- **SELECT ... FROM ... WHERE** : Choisit des colonnes d'une table et filtre les lignes selon une condition.
- **JOIN** : Relie des tables en rapprochant les clés étrangères et primaires.
- **GROUP BY et agrégats** : Regroupe des lignes et calcule COUNT, SUM, AVG, MIN ou MAX par groupe.
- **ORDER BY** : Trie le résultat selon une ou plusieurs colonnes.

## Conclusion

SQL est un outil de travail courant pour les professionnels de l'information. Savoir filtrer, joindre et agréger permet de transformer une base documentaire en indicateurs fiables, à condition de rester attentif aux jointures et aux valeurs nulles.

## Cartes

### Que fait la clause SELECT ?

Elle indique les colonnes ou expressions à renvoyer.

### Que fait la clause WHERE ?

Elle filtre les lignes selon une condition avant tout regroupement.

### Que fait une jointure interne (INNER JOIN) ?

Elle renvoie uniquement les lignes pour lesquelles la condition de jointure est vérifiée dans les deux tables.

### Que fait une jointure externe gauche (LEFT JOIN) ?

Elle conserve toutes les lignes de la table de gauche, avec des valeurs nulles quand il n'y a pas de correspondance.

### À quoi sert GROUP BY ?

À regrouper les lignes ayant la même valeur pour calculer un agrégat par groupe.

### Quelle différence entre WHERE et HAVING ?

WHERE filtre les lignes avant regroupement ; HAVING filtre les groupes après agrégation.

### Que renvoie COUNT(*) ?

Le nombre de lignes du groupe ou de la table.

### Comment lister les documents jamais empruntés ?

Avec un LEFT JOIN vers les prêts et un filtre sur les lignes sans correspondance (valeur nulle).

### Quelle erreur provoque des lignes en double après une jointure ?

Oublier la condition de jointure ou joindre une table liée à plusieurs lignes, ce qui produit un produit cartésien partiel.

### Pourquoi utiliser des alias de tables ?

Pour rendre les requêtes plus lisibles et lever les ambiguïtés entre colonnes de même nom.

## Glossaire

- **SQL** : Langage d'interrogation de bases de données relationnelles.
- **Jointure** : Opération qui relie des tables par des clés.
- **Agrégat** : Fonction qui résume un ensemble de lignes.
- **Clause** : Composant d'une requête SQL.
- **Alias** : Nom court donné à une table ou une colonne.
- **Valeur nulle** : Absence de valeur, différente de zéro ou de texte vide.

https://ruvy.ch/decks/-P5CqLdUsWH0R3I7w2OF
