Stéphane WOUTERS
https://stephanewouters.fr/
SGBD
Page web en PHP
?
SGBD
Page web en PHP
< SQL >
Grâce au langage SQL !
SGBD
Requête SQL :
"SELECT nom FROM voitures"
| Peugot 206 |
| Renault Clio |
| Citroen C3 |
Utilisateur :
Réponse : Les noms des voitures
Je veux le nom de toutes les voitures
Exemples de requêtes (plus ou moins complexes) :
Chacune de ces requêtes peut être exprimée en SQL
Réaliser des requêtes SQL
SELECT
Pour récupérer, afficher de la donnée
INSERT
Pour ajouter de nouvelles lignes dans une table
UPDATE
Pour modifier des lignes
DELETE
Pour supprimer des lignes
Soit la structure de base de données suivante :
| ID | name | price |
|---|---|---|
| 1 | Cookie chocolat noir | 0.80 |
| 2 | Cookie chocolat noir et orange | 1.20 |
| 3 | Cookie caramel beurre salé | 1.20 |
| ID | name | |
|---|---|---|
| 1 | Éliot | eliot@gmail.com |
| 2 | Michel | michel@gmail.com |
| 3 | Élise | elise@gmail.com |
Table product
Table customer
Table purchase
| id_customer | id_product | quantity |
|---|---|---|
| 1 | 1 | 2 |
| 1 | 2 | 5 |
| 3 | 3 | 8 |
SELECT [champ1], [champ2]
FROM [table]SELECT name, price FROM productExemple :
Récupérer le nom et le prix des produits
| name | price |
|---|---|
| Cookie chocolat noir | 0.80 |
| Cookie chocolat noir et orange | 1.20 |
| Cookie caramel beurre salé | 1.20 |
Récupérer de la donnée
SELECT *
FROM [table]SELECT * FROM productExemple :
Variante, pour récupérer tous les champs d'une table :
| ID | name | price |
|---|---|---|
| 1 | Cookie chocolat noir | 0.80 |
| 2 | Cookie chocolat noir et orange | 1.20 |
| 3 | Cookie caramel beurre salé | 1.20 |
SELECT [champ1], [champ2]
FROM [table]
WHERE [condition]WHERE : ajouter une condition :
Les opérateurs :
| A = 2 | A est égal à 2 |
| A != 2 | A différent de 2 |
| A > 2 | A suppérieur à 2 |
| A < 2 | A inférieur à 2 |
| A >= 2 | A supérieur ou égal à 2 |
| A <= 2 | A inférieur ou égal à 2 |
SELECT name, price
FROM product
WHERE price < 1Récupérer le nom et le prix des produits qui coûtent moins de 1€
| name | price |
|---|---|
| Cookie chocolat noir | 0.80 |
SELECT *
FROM product
WHERE id = 2Récupérer le produit qui a pour ID 2
| id | name | price |
|---|---|---|
| 2 | Cookie chocolat noir | 0.80 |
SELECT [champ1], [champ2]
FROM [table]
ORDER BY [champ] DESCSELECT name, price
FROM product
ORDER BY nameExemple :
Trier les produits par ordre alphabétique
ORDER BY : trier les valeurs
| name | price |
|---|---|
| Cookie caramel beurre salé | 1.20 |
| Cookie chocolat noir | 0.80 |
| Cookie chocolat noir et orange | 1.20 |
Option : Ajouter "DESC" pour inverser l'ordre.
SELECT [champ1], [champ2]
FROM [table]
LIMIT [N]SELECT name, price
FROM product
LIMIT 2Exemple
Récupérer les 2 premiers produits
LIMIT : Limiter le nombre de résultat
| name | price |
|---|---|
| Cookie caramel beurre salé | 1.20 |
| Cookie chocolat noir | 0.80 |
SELECT [champ1], [champ2]
FROM [table]
WHERE [condition]
ORDER BY [champ]
LIMIT [N]Une requête SELECT complète :
Soit le problème suivant :
| id_product | id_customer | quantity |
|---|---|---|
| 1 | 1 | 2 |
| 1 | 2 | 5 |
| 3 | 4 | 8 |
Comment afficher les noms des produits et des clients à la place des ID ?
Table purchase
Joindre les tables pour assembler les données
Exemple
SELECT [champ1], [champ2], ...
FROM [table1]
JOIN [table2] ON [table1.champ3]=[table2.champ4]SELECT customer.name, product.name, purchase.quantity
FROM purchase
JOIN customer ON purchase.id_customer=customer.id
JOIN product ON purchase.id_product=product.id| customer.name | product.name | quantity |
|---|---|---|
| Éliot | Cookie chocolat noir | 2 |
| Éliot | Cookie chocolat noir et orange | 5 |
| Élise | Cookie caramel beurre salé | 8 |
INSERT INTO [table] ([champ1, champ2])
VALUES ([valeur1, valeur2])Insérer une ligne dans une table
Exemple
INSERT INTO product (name, price)
VALUES ("cookie 1", 1.80)Ajoute un nouveau produit
UPDATE [table]
SET [champ1]=[valeur]
WHERE [condition]Mettre à jour une ligne existante
Exemple
UPDATE product
SET price=1.20
WHERE id=2Met à jour le prix du produit 2 à 1.20€
DELETE FROM [table]
WHERE [condition]Supprimer une ligne
Exemple
DELETE FROM product
WHERE ID=2Supprimer le produit n°2
Et si j'oublie le WHERE ?
DELETE FROM product
WHERE ID=2Réaliser des requêtes SQL