SQL Requêtes simples. Introduction A.D., S.B., F.C. Janvier-Février Licence MIASHS, Master ISIFAR, Paris-Diderot

Documents pareils
Les bases de données

1 Introduction et installation

Le langage SQL Rappels

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

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

16H Cours / 18H TD / 20H TP

Cours: Les Jointures 1

Langage SQL : créer et interroger une base

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

SQL Historique

Introduction aux Bases de Données

Bases de Données. Plan

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

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

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

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

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

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

Le Langage SQL version Oracle

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

Bases de données relationnelles

Bases de données avancées Introduction

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

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

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

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

Vincent Augusto

Bases de données cours 1

TP Bases de données réparties

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

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

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

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

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

Bases de données Outils de gestion

Introduction aux Bases de Données Relationnelles Conclusion - 1

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

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

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

Information utiles. webpage : Google+ : digiusto/

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

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

UML et les 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

A QUOI SERVENT LES BASES DE DONNÉES?

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

Encryptions, compression et partitionnement des données

Bases de Données Avancées

Structured Query Language

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

Cours Bases de données

Systèmes de Gestion de Bases de Données

CREATION WEB DYNAMIQUE

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

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : , ISBN 13 :

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

Bases de données avancées

Introduction aux Bases de Données 2004/2005

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

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Projet Business Object

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

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

Olivier Mondet

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

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

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

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

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

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

Intégrité des données

LE LANGAGE SQL2 1. INTRODUCTION

Optimisation SQL. Quelques règles de bases

INTRODUCTION AU DATA MINING

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Année Universitaire 2009/2010 Session 2 de Printemps

MODE OPERATOIRE OPENOFFICE BASE

Cours SQL. Base du langage SQL et des bases de données

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson

Interpréteur d algèbre relationnelle

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

Datawarehouse and OLAP

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

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Master Exploration Informatique des données DataWareHouse

Les BASES de DONNEES dans WampServer

Comprendre et optimiser la base de données WordPress WP TECH 2014

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

La rencontre du Big Data et du Cloud

Introduction aux Bases de Données

Bases de données élémentaires Maude Manouvrier

Transcription:

SQL Requêtes simples BD4 A.D., S.B., F.C. Licence MIASHS, Master ISIFAR, Paris-Diderot Janvier-Février 2016 BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 1/25 Janvier-Février 2016 1 / 25 BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 2/25 Janvier-Février 2016 2 / 25

Outline 1 2 Requêtes mono-relation 3 4 Conclusion BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 3/25 Janvier-Février 2016 3 / 25 BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 4/25 Janvier-Février 2016 4 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 5/25 Janvier-Février 2016 5 / 25 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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 6/25 Janvier-Février 2016 6 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 7/25 Janvier-Février 2016 7 / 25 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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 8/25 Janvier-Février 2016 8 / 25

Requêtes mono-relation Requêtes mono-relation BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 9/25 Janvier-Février 2016 9 / 25 Structure de base Requêtes mono-relation La 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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 10/25 Janvier-Février 2016 10 / 25

Syntaxe de la Condition Requêtes mono-relation Une 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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 11/25 Janvier-Février 2016 11 / 25 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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 12/25 Janvier-Février 2016 12 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 13/25 Janvier-Février 2016 13 / 25 BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 14/25 Janvier-Février 2016 14 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 15/25 Janvier-Février 2016 15 / 25 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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 16/25 Janvier-Février 2016 16 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 17/25 Janvier-Février 2016 17 / 25 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=L.NomF Livraison) BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 18/25 Janvier-Février 2016 18 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 19/25 Janvier-Février 2016 19 / 25 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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 20/25 Janvier-Février 2016 20 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 21/25 Janvier-Février 2016 21 / 25 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 ON F. NomF = L. NomF WHERE VilleF = ' Paris ' BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 22/25 Janvier-Février 2016 22 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 23/25 Janvier-Février 2016 23 / 25 Conclusion Conclusion BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 24/25 Janvier-Février 2016 24 / 25

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 MIASHS, Master ISIFAR, Paris-Diderot) SQL 25/25 Janvier-Février 2016 25 / 25