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

Slides:



Advertisements
Présentations similaires
Manipulation des données dans SQL
Advertisements

SQL - Subtilités.
Les requêtes Manière de dialoguer avec une base de donnée pour :
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LMD: Langage de Manipulation de Données
BASE DE DONNEES RELATIONNELLES
LE LANGAGE SQL Langage de manipulation de données (LMD)
Chap 4 Les bases de données et le modèle relationnel
Bases de données et SGBD relationnels
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
SQL Partie 3 : (LID : Langage d'interrogation de données)
Cours N°2 Base de Données & Langage SQL
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL PHILIPPE BANCQUART.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Manipulation des données Requêtes simples
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Initiation aux bases de données et à la programmation événementielle
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
Limiter et trier des données
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Le langage SQL LDD : Langage de Définition de Données
SIO SLAM1: Exploitation d’un schéma de données
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
Traduction des opérations sous MySQL
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Sous-Interrogations.
Module 7 : Utilisation de requêtes élaborées
Sélection de colonnes (la projection)
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Utilisation de fonctions Module 3. 2 Fonctions Transtypage : Il permet de changer le type de données d'une colonne afin d’effectuer une comparaison de.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES SQL -2
Complément sous-requêtes
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Introduction au langage PL/SQL
Le Langage de Manipulation de Données LMD Module 6.
CONCEPTS BD - Synthèse journée 1 :
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 8 Support de cours rédigé par Bernard COFFIN Université.
Les fonctions et les regroupements B.T.S. S.I.O – SI3 – 1.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Intégration du P7 dans l’épreuve E41
Initiation aux bases de données et à la programmation événementielle
Langage de manipulation de données (LMD)
SQL LID – INTERROGATIN DES DONNEES
Manipulation D’Une Base De Données
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
Transcription de la présentation:

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

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  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  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  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  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  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  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 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  Majuscule : UPPER(chaîne)  Minuscule : LOWER(chaîne) Base de données VI Autres opérateurs de caractères MySQL ORACLE

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  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  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  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  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  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  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 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  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  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  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  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  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  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 FIN DU COURS