💻sciences

Données en tables NSI : ne plus confondre avec SQL

9 août 2026 7 min de lecture

En NSI, tu vas souvent manipuler des données : des listes de notes, des fichiers clients, des résultats de mesures… Deux approches reviennent sans cesse : les données en tables (souvent stockées dans des fichiers CSV) et le langage SQL pour interroger des bases de données. Beaucoup d'élèves les confondent, mais elles répondent à des besoins différents. Dans cet article, on va clarifier tout ça, avec du Python à l'appui, pour que tu sois serein en cours et au bac.

Qu'est-ce qu'une donnée en table ?

Une table, c'est une structure en lignes et colonnes. Chaque colonne représente un attribut (par exemple : nom, prénom, âge), et chaque ligne est un enregistrement (une entrée). C'est exactement comme un tableau Excel ou un fichier CSV.

En NSI, on utilise souvent des fichiers CSV (Comma Separated Values) pour stocker ce genre de données. Voici un exemple simple :

nom,age,ville
Alice,17,Paris
Bob,16,Lyon
Chloé,17,Marseille

Ce fichier est une table : trois colonnes (nom, age, ville) et trois lignes de données. Pour le manipuler en Python, on peut utiliser le module csv de la bibliothèque standard, ou bien lire le fichier ligne par ligne.

L'important, c'est de comprendre que ces données sont statiques : elles sont stockées dans un fichier, et pour les traiter, tu écris du code Python qui les lit et les transforme. Par exemple, pour afficher les noms des élèves majeurs :

import csv

with open('eleves.csv', newline='', encoding='utf-8') as f:
    lecteur = csv.DictReader(f)
    for ligne in lecteur:
        if int(ligne['age']) >= 18:
            print(ligne['nom'])

Ici, on lit le fichier, on parcourt chaque ligne, et on filtre selon une condition. C'est du traitement de données en tables : le code Python fait tout le travail.

Et le SQL alors ?

Le SQL (Structured Query Language) est un langage dédié à l'interrogation de bases de données relationnelles. Une base de données, c'est un ensemble de tables, souvent reliées entre elles par des clés. Le SQL te permet de poser des questions sur ces données : quels sont les élèves de plus de 18 ans ?, quelle est la moyenne des notes ?, etc.

Contrairement au traitement en tables avec Python, le SQL est déclaratif : tu dis ce que tu veux obtenir, pas comment le faire. Par exemple, pour obtenir les noms des élèves majeurs à partir d'une table eleves :

SELECT nom FROM eleves WHERE age >= 18;

Pas de boucle, pas de gestion de fichier : la base de données s'occupe de tout. C'est très puissant, surtout quand les données sont volumineuses ou réparties sur plusieurs tables.

En NSI, tu apprends à utiliser SQL en Terminale, généralement avec SQLite (une base de données légère, intégrée à Python). Tu peux créer une table, insérer des données, et faire des requêtes.

Voici un exemple complet avec Python et SQLite :

import sqlite3

# Connexion à une base (ou création)
conn = sqlite3.connect('eleves.db')
c = conn.cursor()

# Création de la table
c.execute('''CREATE TABLE eleves (nom TEXT, age INTEGER, ville TEXT)''')

# Insertion de données
c.execute("INSERT INTO eleves VALUES ('Alice', 17, 'Paris')")
c.execute("INSERT INTO eleves VALUES ('Bob', 16, 'Lyon')")
c.execute("INSERT INTO eleves VALUES ('Chloé', 17, 'Marseille')")
conn.commit()

# Requête
c.execute('SELECT nom FROM eleves WHERE age >= 18')
print(c.fetchall())

conn.close()

Ici, on utilise SQL pour interroger la base. On ne lit pas un fichier CSV, on demande à la base de nous donner les résultats.

Les différences fondamentales

Pour bien distinguer les deux, retiens ces points :

  • Stockage : les données en tables (CSV) sont dans un fichier texte simple ; les bases de données SQL sont gérées par un système qui optimise l'accès et la manipulation.
  • Manipulation : avec les tables CSV, tu écris du code Python pour tout faire ; avec SQL, tu utilises des requêtes déclaratives.
  • Relation : une base de données peut contenir plusieurs tables liées ; un fichier CSV est généralement une seule table.
  • Performance : SQL est plus performant pour les gros volumes de données et les opérations complexes (jointures, agrégations).

En clair, les fichiers CSV sont parfaits pour des données simples, statiques, et pour apprendre les bases du traitement. SQL est indispensable dès que les données deviennent nombreuses et structurées.

Cas d'usage concret : un mini-projet

Imaginons que tu doives analyser les notes d'une classe. On te donne un fichier notes.csv avec les colonnes : eleve, matiere, note.

Avec Python, tu peux calculer la moyenne par matière :

import csv
from collections import defaultdict

notes = defaultdict(list)

with open('notes.csv', newline='', encoding='utf-8') as f:
    for ligne in csv.DictReader(f):
        notes[ligne['matiere']].append(float(ligne['note']))

for matiere, valeurs in notes.items():
    moyenne = sum(valeurs) / len(valeurs)
    print(f"{matiere} : {moyenne:.2f}")

Maintenant, si les données sont dans une base SQL, tu peux faire la même chose avec une requête :

SELECT matiere, AVG(note) FROM notes GROUP BY matiere;

Les deux approches donnent le même résultat, mais la requête SQL est plus concise et plus rapide à écrire. En revanche, pour tracer un graphique ou faire un traitement plus personnalisé, Python est plus flexible.

Dans ton projet NSI, tu peux par exemple :

  • Lire un fichier CSV et le convertir en base SQLite.
  • Utiliser Python pour nettoyer les données (enlever les doublons, corriger les erreurs).
  • Faire des requêtes SQL pour extraire des statistiques.
  • Visualiser les résultats avec matplotlib.

Cette combinaison est très appréciée au bac. Tu montres que tu sais manipuler des données en tables et interroger une base.

Conseils pour ne plus confondre

Voici quelques astuces pour t'aider :

  • Repère le contexte : si on te parle de fichier CSV, de pandas, de lecture de fichier, c'est du traitement de tables. Si on te parle de requêtes, de SELECT, de base de données, c'est du SQL.
  • Pense à l'outil : pour lire un CSV, tu utilises Python ; pour interroger une base, tu utilises SQL (même si Python peut exécuter du SQL via sqlite3).
  • Entraîne-toi : fais des exercices où tu passes d'un format à l'autre. Par exemple, crée un CSV, puis importe-le dans une base SQLite et fais des requêtes.

Pour t'exercer, n'hésite pas à consulter nos cours NSI et nos exercices corrigés. Tu y trouveras des sujets sur les données en tables et sur SQL.

Si tu veux approfondir SQL, notre article dédié Le SQL expliqué simplement est fait pour toi.

Conclusion

En résumé, les données en tables (CSV) et le SQL sont deux outils complémentaires. Les premiers sont simples et manipulables avec Python ; le second est puissant et adapté aux bases de données. Ne les confonds plus : quand tu vois un fichier, pense traitement ; quand tu vois une base, pense requête.

Continue à pratiquer, car c'est en manipulant que tu comprendras vraiment. Et si tu as besoin d'aide, des ressources comme Allo Bac ou Allo Lycée peuvent t'accompagner.

Bon courage, tu es sur la bonne voie !

📚 Pour aller plus loin

Questions fréquentes

Quelle est la différence entre une table CSV et une base de données SQL ?

Une table CSV est un fichier texte simple, avec des lignes et des colonnes, manipulé avec Python. Une base de données SQL est un ensemble de tables gérées par un SGBD, interrogées avec le langage SQL. Le CSV est simple et statique, tandis que SQL permet des requêtes complexes et des relations entre tables.

Peut-on utiliser Python pour interroger une base de données SQL ?

Oui, on peut utiliser Python avec des modules comme sqlite3 ou psycopg2 pour exécuter des requêtes SQL. Cela combine la flexibilité de Python avec la puissance de SQL.

Quand choisir un fichier CSV plutôt qu'une base de données ?

On choisit un fichier CSV pour des données simples, de petite taille, et quand on veut les traiter avec Python (analyse, visualisation). Une base de données est préférable pour des données volumineuses, partagées entre plusieurs utilisateurs, ou nécessitant des jointures.

Est-ce que les requêtes SQL sont plus rapides que le traitement en Python ?

En général, SQL est optimisé pour les opérations sur de grandes quantités de données, donc plus rapide. Mais pour de petits volumes, la différence est négligeable. Le choix dépend aussi de la complexité de la tâche.

Comment transformer un fichier CSV en base de données SQL ?

On peut utiliser Python avec le module csv pour lire le fichier, puis sqlite3 pour créer une table et insérer les données. Exemple : lire chaque ligne du CSV et exécuter une requête INSERT.

Quels sont les concepts clés en SQL pour le bac NSI ?

Les notions essentielles sont : SELECT, FROM, WHERE, ORDER BY, GROUP BY, les jointures (INNER JOIN), et les fonctions d'agrégation comme COUNT, SUM, AVG. Il faut aussi savoir créer une table et insérer des données.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
données en tables NSIfichiers CSVSQLPythonbase de données
Pixel