La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Les bases de données Séance 6 L ’extraction de données Le SELECT.

Présentations similaires


Présentation au sujet: "1 Les bases de données Séance 6 L ’extraction de données Le SELECT."— Transcription de la présentation:

1 1 Les bases de données Séance 6 L ’extraction de données Le SELECT

2 2  L’ordre SELECT est suffisamment complexe pour y consacrer une séance entière.  L’ordre SELECT Sur une table Sur plusieurs tables Le produit cartésien La clause WHERE Notion de pivot L’opérateur LIKE Base de données VI Ce qui est abordé

3 3  Récupérer les informations stockées dans la base de manière cohérente.  Syntaxe générale : SELECT { [, … ] | *} FROM [WHERE ] Base de données VI L’ordre SELECT MySQL ORACLE

4 4  Récupérer tous les enregistrements de la table 'ma_table' SELECT * FROM ma_table;  Récupérer seulement les colonnes c1 et c2 SELECT c1, c2 FROM ma_table; Base de données VI Forme simple du SELECT MySQL ORACLE

5 5  L’ajout d’un prédicat sur un ordre select s’exprime dans une clause WHERE par : SELECT * FROM ma_table WHERE ;  Exemple : SELECT * FROM ma_table WHERE c1 = 600; Base de données VI Ajout d’un prédicat de sélection

6 6  Opérateurs de comparaison : =, !=, <>, =,  Opérateurs logiques AND, OR, NOT  Exemple : SELECT * FROM ma_table WHERE c1 <> 12 AND c2 = 15; Base de données VI Les formes de la clause WHERE MySQL ORACLE

7 7  L’opérateur LIKE permet de tester les chaînes de caractères avec l’expression d’un motif (pattern)  Les méta-caractères sont : _ 1 seul caractère % 0 ou plusieurs caractères Base de données VI L’opérateur LIKE MySQL ORACLE

8 8  Toutes les peronnes dont le nom commence par 'A' : SELECT * FROM personne WHERE nom LIKE 'A%' ;  Tous les prénoms dont le nom contient un 'X' en deuxième position. SELECT prenom FROM personne WHERE nom LIKE '_X%' ; Base de données VI L’opérateur LIKE : Exemples MySQL ORACLE

9 9 MySQL  Concaténation : || SELECT first_name || ' ' || last_name FROM … SELECT CONCAT(first_name,' ', last_name) FROM …  Sous-chaînes : SUBSTR(chaîne, pos, long) ATTENTION : En SQL les chaînes de caractères sont indicées à partir de 1 Base de données VI Autres opérateurs de caractères

10 10  Majuscule : UPPER(chaîne)  Minuscule : LOWER(chaîne) Base de données VI Autres opérateurs de caractères MySQL ORACLE

11 11 MySQL ORACLE  Chaîne => nombre : TO_NUMBER()  Nombre => chaîne : TO_CHAR(ch,masque) Le masque permet de définir des règles de transformation pour les nombres : 9 : chiffre quelconque non représenté pour les 0 non significatifs 0 : chiffre quelconque représenté. : point décimal apparent MySQL utilise les fonctions CAST() et CONVERT() Base de données VI Conversions texte/nombre

12 12  Cas particulier des champs ‘NULL’ : Il sont testés avec le prédicat IS NULL ou IS NOT NULL.  Exemple : SELECT * FROM ma_table WHERE c2 IS NULL; Base de données VI Le cas particulier de la nullité MySQL ORACLE

13 13  Le produit cartésien de A et B s’exprime en SQL par : SELECT * FROM A, B;  ATTENTION : le produit cartésien n'a pas de sens logique, c'est la première étape d'une jointure. Base de données VI Croiser plusieurs tables MySQL ORACLE

14 14  Pour effectuer le produit 'A,B', la base de données confronte chaque enregistrement de A à tous les enregistrements de B. Base de données VI Le produit de tables, Le résultat du produit est donc une table dans laquelle on peut sélectionner des lignes.

15 15  Toutes les combinaisons ne sont pas pertinentes. Base de données VI Le produit de tables 2 Table Chaise Tabouret Echelle 4 3 2, On doit indiquer à la base de données comment sélectionner les bonnes. Nombre de pieds Mobilier Table 4 Chaise 4 Tabouret 3 Echelle 2

16 16  La jointure correcte de 2 tables s'effectue en ajoutant un pivot au produit cartésien SELECT * FROM A, B WHERE A.c1 = B.c2;  Le pivot introduit une contrainte entre les deux tables qui réduit les croisements possibles. Base de données VI Le produit de tables : le pivot

17 17  Pour effectuer des jointures multiples sur plus de deux tables, on étend le pivot : SELECT * FROM T1, T2, T3, … WHERE AND AND AND … Base de données VI Croiser plus de deux tables MySQL ORACLE

18 18 SELECT prenom(?) FROM employe, manager WHERE id_manager = id(?) AND id(?) = 23; SELECT employe.prenom FROM employe, manager WHERE id_manager = manager.id AND manager.id = 23;  Lorsque deux colonnes portent le même nom dans les deux tables jointes, il peut y avoir un problème : Base de données VI Lever les ambiguïtés MySQL ORACLE

19 19  Utilisation d’alias : SELECT a.first_name, b.first_name FROM employee [AS] a, employee [AS] b WHERE a.manager_id = b.employee_id; Base de données VI Simplifier l’écriture MySQL ORACLE

20 20  On peut regrouper plusieurs lignes d'un SELECT pour en extraire une valeur calculée.  Un groupe est un ensemble de lignes, résultat d'une requête, qui ont une valeur commune sur un ensemble de colonnes.  Cet ensemble de colonnes est appelé le facteur de groupage. Base de données VI Fonctions de groupage

21 21  Pour regrouper des données, il faut alors utiliser la clause GROUP BY suivi du facteur de groupage. SELECT,, () FROM, WHERE … GROUP BY, Base de données VI Syntaxe de groupage MySQL ORACLE

22 22  Exemple : calculer les quantités récoltés pour chaque producteur. SELECT numprod, SUM(quantite) FROM recolte GROUP BY numprod ; Base de données VI Groupage : exemple Groupeur MySQL ORACLE

23 23  Elle permet d'opposer un prédicat à un groupe. SELECT num_client, SUM(montant) FROM commandes GROUP BY num_client HAVING SUM(montant) > 1000;  HAVING s’applique sur le résultat de la requête. Base de données VI Groupage : la clause HAVING La clause HAVING élimine des groupes comme la clause WHERE élimine des lignes. MySQL ORACLE

24 24  Les fonctions suivantes réagissent au groupage AVG() : moyenne SUM() : somme MIN() : minimum MAX() : maximum COUNT() : dénombrement VARIANCE() : variance STDDEV() : écart-type Base de données VI Fonctions de groupage MySQL ORACLE

25 25 FIN DU COURS


Télécharger ppt "1 Les bases de données Séance 6 L ’extraction de données Le SELECT."

Présentations similaires


Annonces Google