0Pricing
SQL Academy · Leçon

INSERT avec plusieurs lignes

Insérez une ou plusieurs lignes avec une seule instruction et utilisez INSERT ... SELECT pour copier des données entre des tables.

INSERT avec plusieurs lignes est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.

INSERT sur une seule ligne

La forme la plus simple nomme les colonnes et fournit les valeurs :

INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams');

INSERT sur plusieurs lignes

Insérez plusieurs lignes dans une seule instruction. C'est plus rapide que de nombreux allers-retours :

INSERT INTO users (email, full_name) VALUES
  ('alice@example.com', 'Alice Adams'),
  ('bob@example.com',   'Bob Brown'),
  ('carol@example.com', 'Carol Chen');

Pourquoi les insertions multi-lignes sont plus rapides

Moins d’allers-retours vers la base de données, moins de cycles d’analyse et de planification, un seul vidage de WAL. Pour les insertions en masse de centaines de lignes, les valeurs multiples avec VALUES sont 5 à 10 fois plus rapides qu’une insertion ligne par ligne.

Valeurs par défaut

Omettez une colonne pour utiliser sa valeur DEFAULT (ou NULL) :

INSERT INTO orders (user_id, total)
VALUES (1, 99.50);
-- id, created_at, status filled by DEFAULTs

DEFAULT explicite

Vous pouvez aussi utiliser le mot-clé DEFAULT :

INSERT INTO orders (id, user_id, total, status)
VALUES (DEFAULT, 1, 99.50, DEFAULT);

RETURNING

Récupérez les colonnes de la ou des lignes insérées sans effectuer une seconde requête (PostgreSQL) :

INSERT INTO users (email, full_name)
VALUES ('alice@example.com', 'Alice Adams')
RETURNING id, created_at;

INSERT … SELECT

Copiez ou transformez des lignes provenant d’une autre table :

INSERT INTO archive_orders (id, user_id, total)
SELECT id, user_id, total
FROM orders
WHERE created_at < NOW() - INTERVAL '5 years';

Chargement en masse avec COPY

Pour des dizaines de milliers de lignes ou davantage, utilisez la commande COPY : c’est de loin la méthode la plus rapide :

COPY users (email, full_name) FROM '/tmp/users.csv' (FORMAT csv, HEADER true);

-- Or from STDIN in a client:
COPY users (email, full_name) FROM STDIN;
 alice@example.com\tAlice
 bob@example.com\tBob
 \.

Évitez les grandes transactions d’insertion sans raison

Une transaction correspond à un bloc atomique. Si l’importation d’un million de lignes échoue à mi-parcours, toute l’opération est annulée. C’est parfois ce que vous voulez ; parfois, il vaut mieux traiter les lignes par lots de 10 000.

Conseils de performance pour INSERT

Pour les insertions volumineuses :

  • Supprimez les index secondaires, effectuez l’insertion, puis recréez-les
  • Désactivez les déclencheurs et les vérifications FK si c’est sans risque
  • Utilisez COPY lorsque c’est possible
  • Ajustez maintenance_work_mem pour la reconstruction des index

Aperçu de la gestion des conflits

Pour « insérer si la ligne est nouvelle, sinon la mettre à jour », utilisez INSERT ... ON CONFLICT — ce point sera traité dans la prochaine leçon.

Récapitulatif

INSERT est simple ; les instructions multi-lignes avec VALUES et INSERT … SELECT couvrent les cas courants. RETURNING évite les allers-retours supplémentaires. Pour les traitements en masse, utilisez COPY.

Vérification rapide

Quelle est la méthode la plus rapide pour charger 100 000 lignes depuis un fichier CSV dans PostgreSQL ?

Questions Fréquemment Posées

La leçon « INSERT avec plusieurs lignes » est-elle gratuite ?

Oui — le texte complet de « INSERT avec plusieurs lignes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « INSERT avec plusieurs lignes » ?

Insérez une ou plusieurs lignes avec une seule instruction et utilisez INSERT ... SELECT pour copier des données entre des tables. Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer SQL Academy ?

Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « INSERT avec plusieurs lignes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?

Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. INSERT avec plusieurs lignes
  2. UPSERT : ON CONFLICT DO UPDATE (PostgreSQL)
  3. UPDATE avec FROM et mises à jour de type JOIN
  4. DELETE avec USING et modèles sûrs
← Retour à SQL Academy