SQLite - Sous-requêtes : Un Guide Pour Débutants

Bonjour, futurs programmeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde des sous-requêtes SQLite. Ne vous inquiétez pas si vous êtes nouveau dans le domaine de la programmation - je serai votre guide amical, expliquant tout pas à pas. Plongeons dedans !

SQLite - Subqueries

Qu'est-ce que les sous-requêtes ?

Avant de rentrer dans les détails, comprenons ce qu'elles sont. Imaginez que vous organisez une fête et que vous devez créer une liste d'invités. Vous pourriez d'abord faire une liste de tous vos amis, puis la réduire à ceux qui habitent à proximité. En SQL, une sous-requête est comme cette deuxième étape - une requête à l'intérieur d'une requête qui vous aide à affiner vos résultats.

Sous-requêtes avec l'instruction SELECT

Commençons avec l'utilisation la plus courante des sous-requêtes - dans les instructions SELECT.

Exemple de sous-requête de base

SELECT name
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

Dans cet exemple, nous trouvons les employés dont le salaire est supérieur à la moyenne. La requête interne (SELECT AVG(salary) FROM employees) calcule le salaire moyen, et la requête externe utilise ce résultat pour filtrer les employés.

Sous-requête dans la clause FROM

SELECT department, avg_salary
FROM (
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
) AS dept_salaries
WHERE avg_salary > 50000;

Ici, nous créons une table temporaire avec les salaires moyens par département, puis nous sélectionnons les départements avec un salaire moyen supérieur à 50 000.

Sous-requêtes avec l'instruction INSERT

Les sous-requêtes peuvent également être utilisées pour insérer des données basées sur des informations existantes.

INSERT INTO high_earners (employee_id, name)
SELECT id, name
FROM employees
WHERE salary > (SELECT AVG(salary) * 1.5 FROM employees);

Cette requête insère les employés gagnant plus de 1,5 fois le salaire moyen dans une table 'high_earners'.

Sous-requêtes avec l'instruction UPDATE

Mettre à jour des données basées sur des sous-requêtes est une autre fonctionnalité puissante.

UPDATE employees
SET bonus = salary * 0.1
WHERE department_id IN (
SELECT id
FROM departments
WHERE performance_rating > 8
);

Cette requête accorde une prime de 10 % aux employés des départements à haute performance.

Sous-requêtes avec l'instruction DELETE

Enfin, regardons comment les sous-requêtes peuvent aider à supprimer des données.

DELETE FROM products
WHERE id NOT IN (
SELECT product_id
FROM orders
WHERE order_date > DATE('now', '-1 year')
);

Cette requête supprime les produits qui n'ont pas été commandés au cours de l'année écoulée.

Méthodes de sous-requête

Voici un tableau récapitulatif des différentes méthodes que nous avons couvertes :

Méthode Description Exemple
SELECT avec sous-requête Utiliser une sous-requête pour filtrer ou calculer des valeurs pour la requête principale SELECT ... WHERE colonne > (SELECT AVG(...))
Sous-requête dans FROM Créer une table dérivée pour y effectuer une requête SELECT ... FROM (SELECT ...) AS table_dérivée
INSERT avec sous-requête Insérer des données basées sur une sous-requête INSERT INTO ... SELECT ... WHERE ...
UPDATE avec sous-requête Mettre à jour des données basées sur une sous-requête UPDATE ... SET ... WHERE colonne IN (SELECT ...)
DELETE avec sous-requête Supprimer des données basées sur une sous-requête DELETE FROM ... WHERE colonne NOT IN (SELECT ...)

Conclusion

Félicitations ! Vous avez刚刚 fait vos premiers pas dans le monde des sous-requêtes SQLite. Souvenez-vous, comme apprendre à rider un vélo, maîtriser les sous-requêtes nécessite de la pratique. Ne soyez pas découragé si cela ne vous vient pas immédiatement - continuez à expérimenter avec différentes requêtes, et bientôt vous écrirez des sous-requêtes complexes avec aisance.

Pour conclure, voici une petite histoire de mon expérience d'enseignement : j'ai eu une étudiante qui avait du mal avec les sous-requêtes. Elle les comparait aux poupées russes - des requêtes à l'intérieur d'autres requêtes. Cette analogie l'a aidée à visualiser le concept, et elle est devenue l'une des meilleures de la classe en rédigeant des sous-requêtes.

Donc, que vous voyiez les sous-requêtes comme des poupées russes, ou peut-être comme une chasse au trésor où chaque requête vous rapproche du prix, continuez à pratiquer et à explorer. Le monde des données est vaste et passionnant, et les sous-requêtes sont votre clé pour dévérouiller ses secrets !

Bonne requête, et souvenez-vous - dans le monde des bases de données, la curiosité est votre meilleur ami. Continuez à poser des questions, et vous continuerez à trouver des réponses !

Credits: Image by storyset