Cours 6.3. Requêtes SQL les plus utilisées

Un langage de requêtes

Chaque commande envoyée au moteur de la base de données est appelée une requête. Sur cette page, nous allons lister les principales requêtes les plus utilisées dans un contexte de développement Web.

Création d'une nouvelle table

La commande suivante permet de créer une nouvelle table users en définissant chacun des champs :

CREATE TABLE users (
  id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
  lastname VARCHAR(100),
  firstname VARCHAR(100),
  email VARCHAR(255)
);

Insertion d'une nouvelle ligne

La requête suivante crée une nouvelle ligne dans la table en spécifiant les données contenues dans cette ligne. Notez que le champ id n'est pas définit car, cette colonne a été définie en auto-incrément.

INSERT INTO `users` (`firstname`, `lastname`, `email`) VALUES ('Lary', 'Page', 'lary.page@google.com');

Modification d'une ligne

Lors de la modification d'une ligne, il est nécessaire de préciser de quelle ligne il s'agit, ici par son identifiant id.

UPDATE `users` SET email = 'lary.page@gmail.com' WHERE id=1;

Suppression d'une ligne

Comme pour la modification, il faut spécifier quelle ligne il faut supprimer. La commande suivante va supprimer toutes les lignes dont le nom de famille de l'utilisateur est Page :

DELETE FROM `users` WHERE lastname='Page';

Exemple

L'exemple suivant :

-- Create table
CREATE TABLE users (
  id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
  lastname VARCHAR(100),
  firstname VARCHAR(100),
  email VARCHAR(255)
);

-- Insert rows
INSERT INTO `users` (`firstname`, `lastname`, `email`) VALUES ('Lary', 'Page', 'lary.page@google.com');
INSERT INTO `users` (`firstname`, `lastname`, `email`) VALUES ('Sergueï', 'Brin', 'serguei.brin@google.com');
INSERT INTO `users` (`firstname`, `lastname`, `email`) VALUES ('Elon', 'Musk', 'elon.musk@tesla.com');
INSERT INTO `users` (`firstname`, `lastname`, `email`) VALUES ('Steve', 'Jobs', 'steve.jobs@apple.com');
INSERT INTO `users` (`firstname`, `lastname`, `email`) VALUES ('Noël', 'Père', 'santa@clause.com');

-- Update row
UPDATE `users` SET email = 'steve.jobs@paradise.com' WHERE lastname="jobs";

-- Delete row
DELETE FROM `users` WHERE email='santa@clause.com';

-- Select the full table
SELECT * FROM `users`;

-- Select rows sorted by lastname
SELECT * FROM `users` ORDER BY lastname;

-- Select rows for a given last name
SELECT * FROM `users` WHERE lastname = 'Page';

Exercice

On donne la création de table suivante :

CREATE TABLE products (
  id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
  name VARCHAR(100),
  price FLOAT
);
  1. Ecrire les requêtes permettant de peupler la table avec les données suivantes :
Nom Prix
smartphone 399€
laptop 699€
keyboard 29.99€
mouse 19.90€
printer 1650€
modem 99€
  1. Écrire la requête afin de corriger le prix de l'imprimante (165€ au lieu de 1650€).
  2. Écrire la requête permettant de supprimer le modem.
  3. Écrire la requête permettant de sélectionner tous les articles dont le prix est inférieur à 200€.

Quiz

Quelle(s) requête(s) SQL permet(tent) d'insérer des données dans la base de données ?

Vérifier Bravo ! La syntaxe est INSERT INTO table (champs) VALUES (données). Essaie encore ...

Le(s)quel(s) de ces réponses n'est (ne sont) pas des mots-clés de MySQL ?

Vérifier Bravo ! DROP permet de supprimer une table, DELETE une ligne et UPDATE de mettre à jour des données. Essaie encore ...

Quelle(s) syntaxe(s) permet(tent) de classer les résultats d'une requête SQL dans l'ordre alphabétique ?

Vérifier Bravo ! C'est bien ORDER BY dans l'ordre croissant (ASCendant)). Essaie encore ...

Voir aussi


Dernière mise à jour : 17/09/2022