Insertion de données

Objectifs

  • Savoir insérer des données dans une table ;

  • Connaître le format des données à insérer en fonction des types.

Mise en situation

Une fois les tables d'une base de données créées et leurs contraintes bien définies, vous allez enfin pouvoir stocker les données à proprement parler.

SQL fournit une syntaxe puissante pour ce stockage, appelée insertion, permettant d'insérer un grand lot de données d'un seul coup et même de choisir quels sont les attributs que vous voulez renseigner.

En revanche, il y a des contraintes à respecter sur le format des données, en fonction de leur type : une date s'écrit différemment d'une chaîne de caractères et d'un nombre.

Introduction

Le langage SQL fournit des instructions pour ajouter des nouveaux tuples à une relation. Il offre ainsi une interface standard pour ajouter des informations dans une base de données.

SyntaxeInsertion de valeurs

1
INSERT INTO <Nom de la relation> (<Liste ordonnée des propriétés à valoriser>)
2
VALUES (<Liste ordonnée des valeurs à affecter aux propriétés spécifiées ci-dessus>);

Exemple

1
CREATE TABLE transfer (
2
number INTEGER NOT NULL,
3
amount INTEGER NOT NULL,
4
object TEXT,
5
PRIMARY KEY (number)
6
);
7
8
INSERT INTO transfer (number, amount, object)
9
VALUES (1, 1000, 'Prime de naissance');
1
SELECT * 
2
FROM transfer;
1
| number | amount | object             |
2
| ------ | ------ | ------------------ |
3
| 1      | 1000   | Prime de naissance |

Remarque

  • Les propriétés non valorisées sont affectées à la valeur NULL.

  • Il est possible de ne pas spécifier les propriétés à valoriser, dans ce cas, toutes les propriétés de la relation seront considérées, dans leur ordre de définition dans la relation (à n'utiliser que dans les cas les plus simples).

1
INSERT INTO transfer (number, amount)
2
VALUES (2, 200);
1
SELECT * 
2
FROM transfer;
1
| number | amount | object             |
2
| ------ | ------ | ------------------ |
3
| 1      | 1000   | Prime de naissance |
4
| 2      | 200    |                    |

MéthodeChaînes de caractères

  • Les chaînes de caractères doivent être protégées par des apostrophes : '

  • Pour insérer une apostrophe, doubler le caractère : ''

Exemple

1
CREATE TABLE book (
2
  title VARCHAR(255),
3
  PRIMARY KEY (title)
4
);
5
6
INSERT INTO book (title) 
7
VALUES ('L''Attrape-cœurs');

MéthodeDates

La saisie des dates peut se faire de plusieurs façons dépendantes du SGBD. La méthode la plus simple consiste à entrer la date comme une chaîne au format « YYYY-MM-DD » (4 chiffres de l'année, 2 chiffres du mois, 2 chiffres du jour).

Il est plus standard de faire précéder cette notation du mot-clé DATE.

Exemple

1
CREATE TABLE book (
2
  title VARCHAR(255),
3
  publication DATE,
4
  PRIMARY KEY (title)
5
);
6
7
INSERT INTO book (title, publication) 
8
VALUES ('As we may think', DATE '1945-07-14');