SQL & Bases de Données

Bases de Données

🦊

💾 SQL & Bases de Données

Interroger et manipuler les données relationnelles

1. Introduction aux Bases de Données Relationnelles

Structure d'une Table

Une base de données relationnelle organise l'information sous forme de tables (ou relations). Chaque table est composée de :

  • Colonnes (attributs) : définissent le type de données
  • Lignes (enregistrements) : contiennent les données
  • Clé primaire : identifie de manière unique chaque ligne

Exemple de table "Etudiants"

idnomprenomageclasse
1MartinAlice171ère
2DupontBob181ère
3DurandClaire17Terminale

2. Langage SQL - Commandes de base

CREATE TABLE - Créer une table

CREATE TABLE etudiants (
    id INTEGER PRIMARY KEY,
    nom VARCHAR(50),
    prenom VARCHAR(50),
    age INTEGER,
    classe VARCHAR(20)
);

INSERT - Ajouter des données

INSERT INTO etudiants (nom, prenom, age, classe)
VALUES ('Martin', 'Alice', 17, '1ère');

INSERT INTO etudiants (nom, prenom, age, classe)
VALUES ('Dupont', 'Bob', 18, '1ère');

SELECT - Lire des données

-- Tous les étudiants
SELECT * FROM etudiants;

-- Seulement certains champs
SELECT nom, prenom FROM etudiants;

-- Avec condition
SELECT * FROM etudiants WHERE age > 17;

-- Trier les résultats
SELECT * FROM etudiants ORDER BY nom;

UPDATE - Modifier des données

UPDATE etudiants 
SET age = 18 
WHERE nom = 'Martin' AND prenom = 'Alice';

DELETE - Supprimer des données

DELETE FROM etudiants 
WHERE id = 3;

3. Requêtes Avancées

Opérateurs de comparaison

OpérateurDescriptionExemple
=ÉgalWHERE nom = 'Martin'
!= ou <>DifférentWHERE age != 17
>SupérieurWHERE age > 17
<InférieurWHERE age < 18
>=Supérieur ou égalWHERE age >= 18
<=Inférieur ou égalWHERE age <= 17

Opérateurs logiques

-- ET logique (AND)
SELECT * FROM etudiants 
WHERE age > 17 AND classe = '1ère';

-- OU logique (OR)
SELECT * FROM etudiants 
WHERE age = 17 OR age = 18;

-- Négation (NOT)
SELECT * FROM etudiants 
WHERE NOT age = 17;

Fonctions d'agrégation

-- Nombre total d'étudiants
SELECT COUNT(*) FROM etudiants;

-- Moyenne d'âge
SELECT AVG(age) FROM etudiants;

-- Âge minimum et maximum
SELECT MIN(age), MAX(age) FROM etudiants;

-- Somme des âges
SELECT SUM(age) FROM etudiants;

4. Exemple pratique

-- Créer une table de notes
CREATE TABLE notes (
    id INTEGER PRIMARY KEY,
    etudiant_id INTEGER,
    matiere VARCHAR(30),
    note DECIMAL(4,2),
    FOREIGN KEY (etudiant_id) REFERENCES etudiants(id)
);

-- Ajouter des notes
INSERT INTO notes (etudiant_id, matiere, note)
VALUES (1, 'Mathématiques', 15.50);

-- Afficher les notes avec les noms des étudiants
SELECT e.nom, e.prenom, n.matiere, n.note
FROM etudiants e, notes n
WHERE e.id = n.etudiant_id;
Bonnes pratiques
  • Toujours spécifier les colonnes dans INSERT
  • Utiliser des noms de table et colonnes explicites
  • Tester les requêtes sur des données d'exemple
  • Sauvegarder régulièrement la base de données