SQL Requêtes simples. Outline ... A.D., S.B. Février 2013. .1 Introduction. .2 Requêtes mono-relation. .3 Requêtes multi-relations



Documents pareils
Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Le langage SQL Rappels

Les bases de données

Bases de Données. Plan

Le Langage SQL version Oracle

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Langage SQL : créer et interroger une base

16H Cours / 18H TD / 20H TP

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

1 Introduction et installation

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Introduction au Système de Gestion de Base de Données et aux Base de Données

Cours: Les Jointures 1

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de données relationnelles

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Introduction aux Bases de Données

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

SQL Historique

Information utiles. webpage : Google+ : digiusto/

Cours Base de données relationnelles. M. Boughanem, IUP STRI

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Bases de données avancées Introduction

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Présentation du module Base de données spatio-temporelles

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Bases de données cours 1

SOMMAIRE. Travailler avec les requêtes... 3

1 Modélisation d une base de données pour une société de bourse

CREATION WEB DYNAMIQUE

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

Introduction : présentation de la Business Intelligence

Systèmes de Gestion de Bases de Données

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Mysql. Les requêtes préparées Prepared statements

LE LANGAGE SQL2 1. INTRODUCTION

MODE OPERATOIRE OPENOFFICE BASE

Administration des bases de données. Jean-Yves Antoine

Cours Bases de données

SAP BusinessObjects Web Intelligence (WebI) BI 4

TP Bases de données réparties

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données élémentaires Maude Manouvrier

MySQL / SQL EXEMPLES

Modélisation de bases de données : Le modèle relationnel

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

Dossier I Découverte de Base d Open Office

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

INTRODUCTION : Données structurées et accès simplifié

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Introduction aux Bases de Données 2004/2005

Intégrité des données

Le Langage De Description De Données(LDD)

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

TD n 10 : Ma première Base de Données

Introduction aux Bases de Données Relationnelles Conclusion - 1

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de Données Avancées

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

COURS de BASES de DONNEES

Bases de données Outils de gestion

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Vincent Augusto

TP 8: LES OPERATEURS ENSEMBLISTES

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Le langage SQL (première partie) c Olivier Caron

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Session S12 Les bases de l optimisation SQL avec DB2 for i

BASES DE DONNÉES CONCEPTS ET PROGRAMMATION. Antoine Cornuéjols. AgroParisTech, Spécialité Informatique ( ) Version du 19 octobre 2009

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Création de Sous-Formulaires

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Année Universitaire 2009/2010 Session 2 de Printemps

Bases de données et sites WEB Licence d informatique LI345

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

Optimisation SQL. Quelques règles de bases

PHP 5. La base de données MySql. A. Belaïd 1

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

David LUCAS 15/01/10 Ludovic HUET Sébastien LE NECHET Jason JAMOT. Projet BO

Projet Business Object

Encryptions, compression et partitionnement des données

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Introduction aux SGBDR

Transcription:

SQL Requêtes simples BD4 AD, SB Licence MASS, Master ISIFAR, Paris-Diderot Février 2013 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 1/19 Février 2013 1 / 19 Outline 1 2 Requêtes mono-relation 3 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 2/19 Février 2013 2 / 19

SQL - SQL : Structured Query Language Langage permettant : interrogation des données (requêtes) définitions des données et des contraintes structurelles sur celles-ci manipulation des données (insertion, suppression, mise à jour) définition des vues et des index administration des bases de données Plusieurs fois normalisés par l'iso : SQL-86, SQL-89, SQL-92, SQL-99 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 3/19 Février 2013 3 / 19 Dans ce premier cours : SQL comme Langage de manipulation de données (LMD) Une instruction SQL permet de combiner : restriction (sélection), projection, renommage, SELECT < liste attribut > FROM < table > WHERE <condition >; correspond à : π <listeattribut> (σ <condition> (< table >)) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 4/19 Février 2013 4 / 19

Syntaxe - requêtes simples SELECT [ DISTINCT ] * ou < liste attribut > FROM < liste de tables > [ WHERE < condition >] * : sélection de tous les attributs [] : condition facultative DISTINCT : supprime les doublons Base de données exemple : Employe( NoEmpl, NomE, Annee, TelE, Nodept) Fournisseur (NomF, VilleF, AdresseF) Piece(NomP, Prix, Couleur) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 5/19 Février 2013 5 / 19 Syntaxe - requêtes simples SELECT NomF, VilleF FROM Fournisseur; Equivalent à : π NomF,VilleF (Fournisseur) SELECT * FROM Fournisseur; Equivalent à : Fournisseur SELECT * FROM Fournisseur WHERE VilleF='Paris'; Equivalent à : σ VilleF = Paris (Fournisseur) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 6/19 Février 2013 6 / 19

Requêtes mono-relation Structure de base Ḷa structure de base d'une requête s'appuie sur les trois mots clés suivants : SELECT correspond à l opérateur de projection sur la liste d attributs demandée il peut aussi être suivi de fonctions d attributs FROM indique la ou les relations concernées WHERE précise une condition et correspond à l opération de restriction/sélection en algèbre relationnelle BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 7/19 Février 2013 7 / 19 Requêtes mono-relation Syntaxe de la Condition Ụne condition se construit à l'aide des opérations suivantes : Comparaison avec opérateurs : =, <>, >,<, >=, <= SELECT * FROM Employe WHERE NomE <>'Durand' Combinaison de conditions à l'aide des opérateurs : AND, OR, NOT SELECT DISTINCT NomF FROM Fournisseur WHERE ( VilleF=' Londres') OR ( VilleF='Paris'); Attention aux priorités dans l'évaluation des expressions logiques BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 8/19 Février 2013 8 / 19

Syntaxe de la Condition Requêtes mono-relation Test BETWEEN permettant de vérifier si la valeur d'un attribut est comprise entre deux constantes SELECT NomE FROM Employe WHERE Annee BETWEEN ' 22/ 06/ 03 ' AND ' 25/09/03 '; Test à NULL signifiant que la valeur est inconnue SELECT * FROM Employe WHERE TelE IS NULL ; BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 9/19 Février 2013 9 / 19 Requêtes mono-relation Syntaxe Condition Test d'appartenance IN qui permet de vérifier si la valeur d'un attribut appartient à une liste de constantes, SELECT * FROM Fournisseur WHERE VilleF IN ('Paris', 'Londres'); Test LIKE permettant de vérifier si un attribut de type chaîne de caractères contient une ou plusieurs sous-chaînes ; _ : remplace n'importe quel caractère % : remplace n'importe quel chaîne de caractère SELECT VilleF FROM Fournisseur WHERE VilleF LIKE 'Saint%'; BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 10/19 Février 2013 10 / 19

Exemples jusqu'à présent : une seule relation en jeu On peut : utiliser plusieurs tables dans la clause FROM Construire des conditions complexes impliquant plusieurs tables (conditions "séparées" ou jointure) Produit cartésien SELECT * FROM Employe, Piece WHERE Employe Annee='06' AND Piece NomP='xx'; σ Annee= 06 NomP= xx (Employe Piece) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 11/19 Février 2013 11 / 19 Pour lever les ambiguités Nom des attributs préfixé par nom des tables dans la condition Renommage des tables possible dans la clause FROM Retour sur exemple précédent : SELECT * FROM Employe E, Piece P WHERE E Annee='06' AND P NomP='xx'; BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 12/19 Février 2013 12 / 19

Jointure Jointures définissables en faisant porter une comparaison (=, <,, ) sur des attributs de deux tables différentes On ajoute une table Livraison à notre base : Employee( NoEmpl, NomE, Annee, TelE, Nodept) Fournisseur (NomF, VilleF, AdresseF) Piece(NomP, Prix, Couleur) Livraison( NumLiv,NomP,NomF, DateLiv, Quantite) Attention : schéma simpliste BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 13/19 Février 2013 13 / 19 Jointure Villes des fournisseurs qui ont effectué des livraisons et dates des livraisons SELECT VilleF, DateLiv FROM Fournisseur, Livraison WHERE Fournisseur NomF = Livraison NomF Equivalent (à renommage près) : π F NomF,DateLiv (Fournisseur F NomF =LNomF Livraison) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 14/19 Février 2013 14 / 19

Jointure Villes des fournisseurs qui ont effectué des livraisons de la piece 'xx' et dates des livraisons SELECT VilleF, DateLiv FROM Fournisseur F, Livraison L WHERE F NomF = L NomF AND F NomP='xx' Villes des fournisseurs qui ont effectué des livraisons de la piece 'xx', prix unitaire de cette pièce et dates des livraisons SELECT F VilleF, L DateLiv, P Prix FROM Fournisseur F, Livraison L, Piece P WHERE F NomF = L NomF AND F NomP='xx' AND P NomP='xx' BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 15/19 Février 2013 15 / 19 Expression en calcul relationnel Villes des fournisseurs qui ont effectué des livraisons de la piece 'xx', prix unitaire de cette pièce et dates des livraisons SELECT F VilleF, L DateLiv, P Prix FROM Fournisseur F, Livraison L, Piece P WHERE F NomF = L NomF AND F NomP='xx' AND P NomP='xx' BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 16/19 Février 2013 16 / 19

Jointure naturelle La norme SQL-92 prévoit (si besoin) d'utiliser une syntaxe particulière pour la jointure naturelle Noms et num de liv des fournisseurs de Paris qui ont livré : SELECT DISTINCT NomF, NumLiv FROM Fournisseur NATURAL JOIN Livraison WHERE VilleF='Paris'; Ville des fournisseurs qui ont livré des pièces rouges : SELECT DISTINCT VilleF FROM Fournisseur NATURAL JOIN Livraison NATURAL JOIN Piece WHERE Couleur='rouge '; BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 17/19 Février 2013 17 / 19 Equi-jointure Equi-jointure en spécifiant les attributs de jointure (qui ne sont mis qu'une seule fois dans le résultat) SELECT DISTINCT VilleF FROM Fournisseur NATURAL JOIN Livraison NATURAL JOIN Piece WHERE Couleur='rouge'; Equi-jointure en spécifiant le critère de jointure SELECT DISTINCT NomF, NumLiv FROM Fournisseur F JOIN Livraison L WHERE VilleF='Paris' ON F NomF = L NomF BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 18/19 Février 2013 18 / 19

Jointure externe LEFT OUTER JOIN (resp RIGHT OUTER JOIN) : on garde les tuples de la table de gauche (resp droite) qui n'ont pas de complément dans l'autre table FULL OUTER JOIN : on garde les tuples de chacune des tables qui n'ont pas de complément On complète les valeurs non renseignées par NULL SELECT DISTINCT NomF, NumLiv FROM Fournisseur F LEFT OUTER JOIN Livraison L ON F NomF = L NomF WHERE VilleF ='Paris ' BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 19/19 Février 2013 19 / 19 Conclusion Conclusion Première approche de SQL : sélection, projection, jointure, Toutes les requêtes précédentes : sans négation! Reste à considérer comme LMD : requêtes ensemblistes, requêtes imbriquées, négation, agrégats (somme, moyenne, partitionnement, etc) Voir SQL comme un Langage de Définition de Données (LDD) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 20/19 Février 2013 20 / 19