Le langage SQL. Voir polycopié: Introduction à SQL SQL.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
SQL - Subtilités.
Les requêtes Manière de dialoguer avec une base de donnée pour :
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Les contraintes d’integrité
Regrouper les Données avec les Fonctions de Groupe
LE LANGAGE SQL Langage de manipulation de données (LMD)
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Copyright Oracle Corporation, Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées.
Rappel... Opérations élémentaires sur les matrices:
Les fonctions de groupes Gestion des transactions
Bases de données et SGBD relationnels
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
SQL Partie 3 : (LID : Langage d'interrogation de données)
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Algèbre Relationnelle
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
1 SQL Manipulations Avancées Witold Litwin 2 Exemple canon S P SPSP.
Manipulation des données Requêtes simples
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Requêtes et reporting Contenu : Assistant pour requêtes
OPTIMISATION DE BASE DE DONNEES ORACLE
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
Structures alternative et répétitive
Limiter et trier des données
Chapitre 5 : Le langage SQL
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Access Les requêtes Table médias Table (*) Requêtes simples.
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.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Optimisation de requêtes
 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
Fonctions avancées et graphiques
Sélection de colonnes (la projection)
XT-SOFT SQL-EDITOR. 2 Menu d’Accueil 3 4 Aide à la Sélection de Tables.
Afficher des Données Issues de Plusieurs Tables
Initiation au web dynamique Licence Professionnelle.
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Copyright  Oracle Corporation, Tous droits réservés. 11 Extraction Hiérarchique.
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).
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
Complément sous-requêtes
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
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le Langage de Manipulation de Données LMD Module 6.
Base de données Magasins.accdb
Tests relatifs aux variables qualitatives: Tests du Chi-deux.
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.
Les sous-requêtes ou requêtes imbriquées 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.
Langage de manipulation de données (LMD)
Langage d’interrogation des Données LID
Langage d’interrogation des Données LID
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
Langage d’interrogation des Données Les fonctions de groupes
Transcription de la présentation:

Le langage SQL

Voir polycopié: Introduction à SQL SQL

Afficher les employés dont les salaires sont inférieurs à 900 ? SELECT * FROM emp WHERE sal<900 ; Afficher les employés dont les salaires sont inférieurs à la moyenne des salaires du département 10 ? SELECT * FROM emp WHERE sal< ; SQL – Les sous requêtes X  SELECT AVG(sal) FROM emp WHERE deptno=10 Solution: SELECT * FROM emp WHERE sal<(SELECT AVG(sal) FROM emp WHERE deptno=10);

 Exécution SELECT * FROM emp WHERE sal<(SELECT AVG(sal) FROM emp WHERE deptno=10); 1- Exécution de la sous-requête SELECT * FROM emp WHERE sal<2916,66; 2- Exécution de la requête principale... SQL – Les sous requêtes

 Règles d’utilisation d’une Sous-Requête SELECT * FROM emp WHERE sal<(SELECT sal FROM emp WHERE deptno=10); La sous-requête renvoie une relation à une colonne et à plusieurs lignes. Peut-on comparer une valeur de sal à plusieurs valeurs de sal via l’opérateur < ? NON ! Dans ce cas (<), la sous-requête doit renvoyer une seule valeur, soit une relation à une colonne et à une ligne. SQL – Les sous requêtes

 Plus généralement: SELECT colonne(s) FROM table WHERE exp(s) OPERATEUR (SELECT col(s) FROM table); Une ligne et une colonneUne ligne et plusieurs colonnes =, !=,>,≥,<,≤=, != Plusieurs lignes et une colonne Plusieurs lignes et plusieurs colonnes  [NOT] IN  (=, !=,>,≥,<,≤) ANY/ALL [NOT] IN SQL – Les sous requêtes Afficher les employés ayant le même job et salaire que SMITH ? Afficher les employés les moins payés dans chaque département?

 Les mots clé ANY et ALL - Les SR qui produisent plusieurs lignes sont utilisées avec les opérateurs suivants :  IN, la condition est vraie si notre exp est égale à l’une des lignes retournées par la SR.  op ANY, la condition est vraie si la comparaison (en utilisant l’opérateur op) est vraie pour n’importe quelle valeur de la relation résultante.  op ALL suivie d’une liste de valeurs, la condition est vraie si la comparaison (en utilisant l’opérateur op) est vraie pour toute valeur de la relation résultante. Afficher les employés qui sont mieux payés que n’importe quel employé du département 10 ? SELECT * FROM emp WHERE sal >ANY (SELECT sal FROM emp WHERE deptno=10); SQL – Les sous requêtes

 Les mots clé ANY et ALL - Les SR qui produisent plusieurs lignes sont utilisées avec les opérateurs suivants :  IN, la condition est vraie si notre exp est égale à l’une des lignes retournées par la SR.  op ANY, la condition est vraie si la comparaison (en utilisant l’opérateur op) est vraie pour n’importe quelle valeur de la relation résultante.  op ALL suivie d’une liste de valeurs, la condition est vraie si la comparaison (en utilisant l’opérateur op) est vraie pour toute valeur de la relation résultante. Afficher les employés qui sont mieux payés que tous les employés du département 10 ? SELECT * FROM emp WHERE sal >ALL (SELECT sal FROM emp WHERE deptno=10); SQL – Les sous requêtes

 Les Sous-Requête corrélées - Afficher chaque employé dont le salaire est supérieur à la moyenne des salaires de son département? SELECT * FROM emp X WHERE X.sal> (salaire moyenne du département de l’employé fixé) SELECT * FROM emp X WHERE X.sal> (SELECT AVG(sal) FROM emp Y WHERE X.deptno=Y.deptno);  Exécution 1- La requête principale fixe une ligne de la table EMP, c’est une ligne dite candidate. 2- Ayant maintenant X.DEPTNO, la sous-requête est exécutée. 3- La condition de la clause WHERE de la requête principale est évaluée, la ligne est retournée ou non suivant la valeur de la condition (TRUE ou FALSE). 4- Itération des étapes 1, 2 et 3 pour les lignes restantes de la table EMP. SQL – Les sous requêtes

 Exécution SELECT * FROM emp X WHERE sal> (SELECT AVG(sal) FROM emp Y WHERE X.deptno=Y.deptno); SELECT * FROM emp X WHERE sal> (SELECT AVG(sal) FROM emp Y WHERE Y.deptno=20); SELECT * FROM emp X WHERE sal> 2175; SQL – Les sous requêtes

 Exécution SELECT * FROM emp X WHERE sal> (SELECT AVG(sal) FROM emp Y WHERE X.deptno=Y.deptno); SELECT * FROM emp X WHERE sal> (SELECT AVG(sal) FROM emp Y WHERE Y.deptno=30); SELECT * FROM emp X WHERE sal> 1566,66; SQL – Les sous requêtes

 La division -Afficher les a qui sont en relation avec tous les b de S ? -Pour savoir si a1 est en relation avec tous les b de S, on peut calculer ceci pour a1: {Tous les b de S} MINUS {Les b en relation avec a1} = Ø SQL – Les sous requêtes B b1 b2 AB a1b1 a1b2 a2b2 R S ÷B÷B SELECT A FROM R X WHERE NOT EXISTS(SELECT B FROM S MINUS SELECT B FROM R Y WHERE Y.A=X.A);

 La division -Afficher les a qui sont en relation avec tous les b de S ? B b1 b2 AB a1b1 a1b2 a2b2 R S ÷B÷B SQL – Les sous requêtes {b1,b2} / {b1,b2}= Ø {b1,b2} / {b1,b2}= Ø {b1,b2} / {b2}= {b1} SELECT A FROM R X WHERE NOT EXISTS(SELECT B FROM S MINUS SELECT B FROM R Y WHERE Y.A=X.A);

 La division – un autre exemple F (NF, NOMF, VILLEF) /*Table des fournisseurs*/ P (NP, NOMP, COULEUR, POIDS, VILLEP) /*Table des pièces*/ J (NJ, NOMJ, DLANC, VILLEJ) /*Table des projets*/ FPJ (NF, NJ, NP, QTE, DLIV) /*Table association qui inclut une livraison faite par un Feur NF d’une quantité QTE d’une pièce NP pour un projet NJ à une date DLIV*/ NP P2 P5 NFNJNP F1J1P2 F2J3P5 F3J1P5 F2J1P2 FPJ P SQL – Les sous requêtes NF F1 F2 F3 F NJ J1 J3 J

 La division – un autre exemple - Afficher les codes de fournisseurs qui ont livré toutes les pièces? NP P2 P5 NFNJNP F1J1P2 F2J3P5 F3J1P5 F2J1P2 FPJ P SQL – Les sous requêtes F NJ J1 J3 J NF F1 F2 F3 SELECT NF FROM FPJ X WHERE NOT EXISTS(SELECT NP FROM P MINUS SELECT NP FROM FPJ Y WHERE Y.NF=X.NF);

 La division – un autre exemple NP P2 P5 NFNJNP F1J1P2 F2J3P5 F3J1P5 F2J1P2 FPJ P SQL – Les sous requêtes F NJ J1 J3 J NF F1 F2 F3 SELECT NF FROM FPJ X WHERE NOT EXISTS(SELECT NP FROM P MINUS SELECT NP FROM FPJ Y WHERE Y.NF=X.NF); {P2,P5} / {P2}= {P5} {P2,P5} / {P2,P5}= Ø {P2,P5} / {P5}= {P2} {P2,P5} / {P2,P5}= Ø NFNJNP F1J1P2 F2J3P5 F3J1P5 F2J1P2 XX FPJ Y

Erreurs SQL à éviter (1)