SQL ET POSTGRE 4.17 : Insertion de données dans une table

Dans cette leçon, nous apprenons à insérer des données dans une table PostgreSQL. On travaille dans la base test sur la table exemple qui contient les colonnes exemple_id (SERIAL), prenom, nom, email, nationalite et age. La syntaxe de base est INSERT INTO <table> (<colonnes>) VALUES (<valeurs>);.

Une seule ligne et plusieurs lignes en une requête

Pour insérer une ligne, on précise les colonnes (sauf l'id qui s'incrémente automatiquement grâce à SERIAL) puis les valeurs dans le même ordre. Les chaînes de caractères vont entre apostrophes simples ou doubles ; les entiers (INTEGER) s'écrivent sans guillemets. Exemple :

INSERT INTO exemple (prenom, nom, email, nationalite, age)
VALUES ('Vanessa', 'Dupont', 'vanessa@example.com', 'fr', 42);

Après exécution, un SELECT * FROM exemple; confirme l'insertion et montre que exemple_id a bien été généré automatiquement (1 pour la première ligne).

On peut aussi insérer plusieurs lignes en une seule requête en séparant les blocs VALUES par une virgule :

INSERT INTO exemple (prenom, nom, email, nationalite, age) VALUES
  ('Mike', 'Brown', 'mike@example.com', 'GB', 27),
  ('Cruz', 'Lopez', 'cruz@gmail.com', 'ES', 34),
  ('Anka', 'Jurgen', 'anka@example.com', 'DE', 57),
  ('John', 'Douglas', 'john@example.com', 'US', 39);

À retenir : la syntaxe INSERT INTO demande l'ordre exact des colonnes, les apostrophes pour les chaînes, et rien pour les entiers. La colonne SERIAL est exclue car gérée automatiquement par PostgreSQL. Une requête se termine toujours par un point-virgule.

En résumé

Cette leçon couvre la syntaxe SQL INSERT INTO pour ajouter des données dans une table PostgreSQL. Elle explique la structure fondamentale de la commande (INSERT INTO nom_table + colonnes + VALUES + valeurs) et démontre l'insertion simple et multiple en pratique, notamment en distinguant les chaînes de caractères (entre guillemets) des entiers (sans guillemets) et en automatisant l'incrémentation des colonnes ID.

Points clés

  • La syntaxe de base : INSERT INTO nom_table (colonne1, colonne2, ...) VALUES (valeur1, valeur2, ...)
  • Les colonnes auto-incrémentées (SERIAL) ne doivent pas être spécifiées, elles s'incrémentent automatiquement
  • Les chaînes de caractères doivent être entourées de guillemets simples ou doubles, contrairement aux entiers
  • Insertion multiple en une seule requête en séparant les lignes par des virgules : VALUES (...), (...), (...)
  • Vérification de l'insertion réussie en exécutant un SELECT simple sur la table

Questions fréquentes

Pourquoi ne pas spécifier la colonne ID lors d'une insertion?

Parce que c'est une colonne SERIAL qui s'incrémente automatiquement en PostgreSQL. Il n'est pas nécessaire (et déconseillé) de la fournir manuellement.

Comment insérer plusieurs lignes à la fois?

En utilisant la syntaxe VALUES multiple : après VALUES (ligne1_valeur1, ligne1_valeur2, ...), ajouter une virgule, puis ouvrir une nouvelle paire de parenthèses pour la ligne suivante, et répéter autant de fois que nécessaire.

Quelle est la différence entre insérer du texte et un nombre?

Les chaînes de caractères (texte) doivent être entourées de guillemets simples ou doubles, tandis que les nombres entiers se tapent directement sans signes typographiques.