SIO SI3 : Exploitation des données Chapitre 3 : La sélection avancée des données
La sélection avancée Dans le chapitre 2, nous avons étudié la base des requêtes SQL, à savoir la projection, l'origine, la sélection simple et le tri des données.
La sélection avancée La syntaxe générale des requêtes pour l'instant ressemble à ceci : SELECT <liste des champs à récupérer> FROM <tables> WHERE <critère de sélection> [AND <critère de sélection>] [OR <critère de sélection>] ORDER BY <Champ de tri [ASC|DESC]> [,<Champ de tri [ASC|DESC]>]
Les bases du SQL La table de ce chapitre. Critère de sélection sur les nombres. Critère de sélection sur les dates. Critère de sélection sur les chaînes de caractères. Exercice. .
Les bases du SQL La table de ce chapitre. Critère de sélection sur les nombres. Critère de sélection sur les dates. Critère de sélection sur les chaînes de caractères. Exercice. .
La base de données Les bases étudiées pour l'instant sont simplissimes et totalement déconnectées de la réalité. Pour l'instant … Client Client ( Cli_Num, Cli_Nom, Cli_Rue, Cli_CP, Cli_Ville, Cli_Tel ) - Cli_Num - Cli_Nom - Cli_Rue - Cli_CP - Cli_Ville - Cli_Tel .
Les bases du SQL La table de ce chapitre. Critère de sélection sur les nombres. Critère de sélection sur les dates. Critère de sélection sur les chaînes de caractères. Exercice. .
Sélection sur les nombres Il est possible de comparer des champs de type numérique (entier ou réel) avec des constantes, à savoir des valeurs définies à l'écriture de la requête. Il suffit d'utiliser l'un des opérateurs binaires < <= = >= > <>, avec d'un côté le champ objet de la sélection et de l'autre la valeur. Comme tout critère de sélection, ceci s'écrit … dans la clause WHERE. Syntaxe : WHERE (champ opérateur valeur) AND/OR (...) .
Sélection sur les nombres Travail à faire : écrivez les requêtes suivantes. Le nom et la classe des enfants qui font partie d'une fratrie d'au moins 3 enfants, triés par ordre alphabétique ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les nombres Travail à faire : écrivez les requêtes suivantes. Le nom, la classe des enfants qui sont enfants uniques ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les nombres Travail à faire : écrivez les requêtes suivantes. Le nom et la classe des enfants qui font partie d'une fratrie composée d'un à trois enfants.. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Les bases du SQL La table de ce chapitre. Critère de sélection sur les nombres. Critère de sélection sur les dates. Critère de sélection sur les chaînes de caractères. Exercice. .
Sélection sur les dates Travail à faire : écrivez les requêtes suivantes. Le nom et la classe des enfants qui sont né avant le 18 septembre 1998 . ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les dates Elles peuvent également faire l'objet de critères de sélection formés d'intervalles de valeurs. .
Sélection sur les dates Travail à faire : écrivez les requêtes suivantes. Le nom et la classe des enfants qui sont né entre le 18 septembre 1998 et le 31 décembre 1999. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les dates Mais il est également possible de ne travailler que sur une partie de la date (le jour, le mois ou l'année). YEAR(champ_date) renvoie l'année du champ date MONTH(champ_date) renvoie le mois du champ date DAY(champ_date) renvoie le jour du champ date .
Sélection sur les dates Exemples SELECT CURRENT_DATE() ; => 2016-09-14 SELECT YEAR(‘1986-02-22’) ; => 1986 SELECT MONTH(« 1986-02-22 ») ; => 02 SELECT DAY(« 1986-02-22 ») ; => 22 SELECT DAYNAME(NOW()) ; => Thursday SELECT MONTHNAME(NOW()) ; => September .
Sélection sur les dates Travail à faire : écrivez les requêtes suivantes. Le nom et la classe des enfants qui sont nés en juillet et en août. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les dates Il est également possible d'appliquer à une date des fonctions arithmétiques : <date> interval <nombre> Par exemple : mysql> SELECT DATE("1986-02-28") + INTERVAL 1 DAY ; => 1986-03-01 mysql> SELECT DATE("1986-02-22") + INTERVAL 1 YEAR; => 1987-02-22 DAY MONTH YEAR .
Sélection sur les dates Il est enfin possible de comparer la date, toute ou en partie, avec la date courante. SELECT CURDATE() ; => 2016-09-14 SELECT CURTIME() ; => 14:30:00 SELECT NOW() ; => 2016-0914 14:30:00 SELECT YEAR(NOW()) - YEAR("2000-01-01"); => 15 SELECT El_Nom FROM ELEVE WHERE YEAR(CURDATE) – YEAR(El_DateN) BETWEEN 20 AND 22 .
Sélection sur les dates Travail à faire : écrivez les requêtes suivantes. Le nom et la classe des enfants qui sont majeurs. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les dates A noter que des fonctions similaires existent pour traiter l'heure. De même de très nombreuses autres fonctions de manipulation des dates existent. Pour plus d'information, reportez-vous au chapitre 12 de la documentation de mySQL. .
Les bases du SQL La table de ce chapitre. Critère de sélection sur les nombres. Critère de sélection sur les dates. Critère de sélection sur les chaînes de caractères. Exercice. .
Sélection sur les chaînes Nous avons vu dans le chapitre 2 qu'il était possible de comparer des champs de type texte avec des constantes, à savoir des valeurs définies à l'écriture de la requête. .
Sélection sur les chaînes Il est également possible d'aller plus loin : comparer une partie d'un champ texte avec une valeur. Pour cela, il faut utiliser les caractères génériques % et _ % permet de remplacer n'importe quelle chaîne de caractère, y compris une chaîne vide, _ permet de remplacer exactement un caractère. .
Sélection sur les chaînes Travail à faire : donnez des exemples de chaînes qui peuvent répondre à chaque critère de sélection suivant : Where Cli_Nom like "Dupon_" Where nimporte_quoi like "%b%l%" Where nimporte_quoi like "_l%" A noter, que l'opérateur de comparaison = a été remplacé par l'opérateur like. .
Sélection sur les chaînes Travail à faire : écrivez les requêtes suivantes. Le nom, la classe et la ville de tous les élèves qui habitent dans les Hautes-Alpes. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les chaînes Travail à faire : écrivez les requêtes suivantes. Le numéro et le nom de tous les élèves dont le nom commence par D ou L. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les chaînes Travail à faire : écrivez les requêtes suivantes. Le nom et la classe de tous les élèves dont le nom contient au moins un Y et un F. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les chaînes Travail à faire : écrivez les requêtes suivantes. Tout sur les élèves dont le nom est composé d'exactement 8 lettres. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Sélection sur les chaînes Travail à faire : écrivez les requêtes suivantes. Tout sur les élèves qui n'habitent pas les Hautes-Alpes. ELEVE - El_Num - El_Nom - El_Prenom El_TailleFratrie - El_Classe - El_DateN - El_Régime - El_CPostal - El_Ville .
Les bases du SQL La table de ce chapitre. Critère de sélection sur les nombres. Critère de sélection sur les dates. Critère de sélection sur les chaînes de caractères. Exercice. .
Exercice Produit Voici une table classique : Donnez le modèle relationnel correspondant à ce modèle physique . Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure .
Exercice Produit Travail à faire : écrivez les requêtes suivantes. La référence et la désignation des produits qui se vendent à la pièce Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure .
Exercice Produit Travail à faire : écrivez les requêtes suivantes. La référence et la désignation de tous les produits dont le prix unitaire est inférieur à 10 euros Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure .
Exercice Produit Travail à faire : écrivez les requêtes suivantes. Tout sur tous les produits, triés par ordre alphabétique Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure .
Exercice Produit Travail à faire : écrivez les requêtes suivantes. Tout sur les produits dont la référence commence par SAV, triés du plus cher au moins cher. Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure .
Exercice Produit Travail à faire : écrivez les requêtes suivantes. La référence et la désignation des produits dont la désignation contient le mot "joint" Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure .
Exercice Produit Travail à faire : écrivez les requêtes suivantes. Tout sur les produits dont le prix est compris entre 30 et 50 euros inclus Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure .
Exercice Produit Travail à faire : écrivez les requêtes suivantes. La référence, la désignation, le prix unitaire et l'unité de mesure des produits, dont le prix est compris entre 30 et 50 euros inclus, dont la désignation contient le mot "joint", le tout trié par ordre décroissant de prix et alphabétique. Produit - Prod_Ref - Prod_Des - Prod_PU - Prod_UMesure ..
Fin