Les base de données et SQL
Qu'est-ce qu'une «base de données» ?
Une base de données permet de mémoriser des informations de manière structurée.
Les tables
Les données vont êtres mémorisées dans des «tables» de la base de données.
Exemple :
- une table livre qui recensera les livres
- une table utilisateur qui recensera les lecteurs inscrits.
Les champs
Une table va comporter plusieurs champs, chacun mémorisant une information différente.
Exemple :
La table utilisateur va comporter au moins 3 champs : numeroUtilisateur, nom, prenom.
Les enregistrements
Les données stockées dans la table sont des enregistrements.
Exemple, la table livre suivante a 3 enregistrements :
titre | auteur | annee | genre |
---|---|---|---|
Le combat ordinaire | Manu Larcenet | 2004 | Bande dessinée |
La ligne de Front | Manu Larcenet | 2003 | Bande dessinée |
Madame Bâ | Erik Orsenna | 2003 | Roman |
Les requêtes SQL
Définition
Les «requêtes» sont des instructions qui vont nous permettre d'agir sur la base de données. Elles vont nous permettre de lire des données dans une base, d'en ajouter, d'en modifier et d'en supprimer.
Ces requêtes doivent respecter une syntaxe précise baptisée SQL (Structured Query Language)
Les requêtes de sélection : SELECT
Récupérer des données
Pour lire des données dans la base, nous utiliserons la syntaxe suivante :
SELECT champs_a_recuperer FROM nom_de_la_table
Exemple :
SELECT titre FROM livre
J'obtiens le résultat suivant :
titre |
---|
Le combat ordinaire |
La ligne de Front |
Madame Bâ |
Si je souhaite sélectionner plusieurs champs, je les sépare d'une virgule.
Exemple :
SELECT titre, annee FROM livre
J'obtiens le résultat suivant :
titre | annee |
---|---|
Le combat ordinaire | 2004 |
La ligne de Front | 2003 |
Madame Bâ | 2003 |
Si je souhaite sélectionner tous les champs de la table, je peux utiliser «*».
Exemple :
SELECT * FROM livre
J'obtiens le résultat suivant :
titre | auteur | annee | genre |
---|---|---|---|
Le combat ordinaire | Manu Larcenet | 2004 | Bande dessinée |
La ligne de Front | Manu Larcenet | 2003 | Bande dessinée |
Madame Bâ | Erik Orsenna | 2003 | Roman |
Récupérer des données dans un ordre précis
Je peux trier les résultats en fonction d'un champs en mettant «ORDER BY nom_du_champs» à la suite de ma requête. Je peux alors préciser le sens du tri avec «ASC» pour un tri ascendant (du plus petit au plus grand) ou «DESC» pour un tri descendant (du plus grand au plus petit )
Exemple :
SELECT * FROM livre ORDER BY annee ASC
J'obtiens le résultat suivant :
titre | auteur | annee | genre |
---|---|---|---|
La ligne de Front | Manu Larcenet | 2003 | Bande dessinée |
Madame Bâ | Erik Orsenna | 2003 | Roman |
Le combat ordinaire | Manu Larcenet | 2004 | Bande dessinée |
Récupérer seulement certaines données
Je peux sélectionner seulement certains de mes enregistrements en ajoutant une condition. J'utilise pour cela l'instruction WHERE.
Exemple, je veux sélectionner tous les livres dont l'auteur est Manu Larcenet :
SELECT * FROM livre WHERE auteur="Manu Larcenet"
J'obtiens le résultat suivant :
titre | auteur | annee | genre |
---|---|---|---|
Le combat ordinaire | Manu Larcenet | 2004 | Bande dessinée |
La ligne de Front | Manu Larcenet | 2003 | Bande dessinée |
Les requêtes d'ajout : INSERT INTO
Pour ajouter des données à une de mes tables, c'est à dire ajouter un enregistrement, j'utilise la syntaxe suivante :
INSERT INTO nom_de_la_table (nom_du_champs1, nom_du_champs2, nom_du_champs3) VALUES ('valeur du champs 1','valeur du champs 2','valeur du champs 3');
Exemple :
INSERT INTO livre (titre, auteur, annee, genre) VALUES ('Tous pareils', 'Edouard Manceau', '2007', 'Livre enfant')
Après cette requête, le contenu de ma table est donc le suivant :
titre | auteur | annee | genre |
---|---|---|---|
Le combat ordinaire | Manu Larcenet | 2004 | Bande dessinée |
La ligne de Front | Manu Larcenet | 2003 | Bande dessinée |
Madame Bâ | Erik Orsenna | 2003 | Roman |
Tous pareils | Edouard Manceau | 2007 | Livre enfant |
Les requêtes de suppression : DELETE FROM
Pour supprimer des données à une de mes tables, c'est à dire supprimer un enregistrement, j'utilise la syntaxe suivante :
DELETE FROM nom_de_la_table WHERE ma_condition_ici;
Exemple :
DELETE FROM livre WHERE titre="La ligne de Front"
Après cette requête, le contenu de ma table est donc le suivant :
titre | auteur | annee | genre |
---|---|---|---|
Le combat ordinaire | Manu Larcenet | 2004 | Bande dessinée |
Madame Bâ | Erik Orsenna | 2003 | Roman |
Tous pareils | Edouard Manceau | 2007 | Livre enfant |
Requêtes de mise à jour : UPDATE
Pour modifer des données dans une de mes tables, c'est à dire mettre à jour un enregistrement, j'utilise la syntaxe suivante :
UPDATE nom_de_la_table SET nom_du_champs1='valeur du champs 1', nom_du_champs2='valeur du champs 2' WHERE ma_condition_ici ;
Exemple :
UPDATE livre SET titre="LE COMBAT ORDINAIRE", auteur="MANU LARCENET", annee="2003" WHERE titre="Le combat ordinaire"
Après cette requête, le contenu de ma table est donc le suivant :
titre | auteur | annee | genre |
---|---|---|---|
LE COMBAT ORDINAIRE | MANU LARCENET | 2003 | Bande dessinée |
Madame Bâ | Erik Orsenna | 2003 | Roman |
Tous pareils | Edouard Manceau | 2007 | Livre enfant |