Langage d’interrogation des Données LID

Slides:



Advertisements
Présentations similaires
Copyright Oracle Corporation, Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées.
Advertisements

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.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
Manipulation des données Requêtes simples
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.
Chapitre 5 : Le langage SQL
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.
 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 ◦
Sous-Interrogations.
Sélection de colonnes (la projection)
BASES DE DONNÉES RELATIONNELLES
Afficher des Données Issues de Plusieurs Tables
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Création et Gestion de Tables
Le langage SQL. Voir polycopié: Introduction à SQL SQL.
Copyright  Oracle Corporation, Tous droits réservés. 11 Extraction Hiérarchique.
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.
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.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
1- Introduction 2ème partie Modèle Conceptuel des Données 2- Entités- Associations 4- Associations plurielles 3- Cardinalités 5- Associations réflexives.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
Le langage de définition de données B.T.S. S.I.O – SI3 –
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Intégration web & Base de données 1 Intégration Web & Base de DonnéesMariem Farhat Intérêt des bases de données pour le Web Cours préparé par : Mariem.
Construire des requêtes
Environnement du développement de BD ORACLE REPORTS 10g
Intégration du P7 dans l’épreuve E41
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Initiation aux bases de données et à la programmation événementielle
Langage de manipulation de données (LMD)
Semaine #1 INF130 par Frédérick Henri.
Structured Query Language
Collecte de données CAPI
Généralité sur les bases de données
Les bases de données et le modèle relationnel
Corrigé du TP SQL 2 Énoncé -Rappel Requête 1 :
Langage de Manipulation des Données LMD
1 Présentation projet Base de Données & Langage SQL Bakary DIABY, Insa Rouen Promo. MS-ESD 16/17.
SQL LID – INTERROGATIN DES DONNEES
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
Cyber-Sphinx Séance 2.
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Structure D’une Base De Données Relationnelle
Formules de calculs et Fonctions. Structure des formules de calcul Commencez toujours votre calcul par le signe =, ensuite sans laisser d’espaces, placez.
Langage d’interrogation des Données LID
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.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
Langage d’interrogation des Données Les fonctions de groupes
Algèbre relationnelle
Semaine 3 Retour sur la semaine 2 Plan de séance
Langage SQL ENCG-Tanger Le Langage SQL (1) INTRODUCTION
Systèmes d’Information et Application
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
Opérateurs Ensemblistes
Transcription de la présentation:

Langage d’interrogation des Données LID Année universitaire 2017/2018 LFIG 2 Langage d’interrogation des Données LID Fahmi Ben Rejab

SELECT - Principe générale Syntaxe générale d'une commande SQL SELECT [DISTINCT ou ALL ou *] FROM nom de table [WHERE prédicats] [GROUP BY ordre des groupes] [HAVING condition] [ORDER BY ] liste de colonnes […. ] : Optionnel

SELECT - Principe générale • SELECT permet de spécifier les attributs que l’on désire voir apparaître dans le résultat de la requête. • L’opérateur * permet de récupérer automatiquement tous les attributs de la table générée par la clause FROM de la requête. Exemple: SELECT * FROM Employé ; Cette commande permet d’afficher la table EMP. L’opérateur DISTINCT permet d’éliminer les doublons dans la réponse. Exemple: SELECT DISTINCT Nom FROM Employé;

SELECT - Principe générale Par défaut toutes les lignes sont sélectionnées. On peut limiter la sélection à certaines colonnes, en indiquant une liste de noms de colonnes à la place de l'astérisque (*). SELECT nom_col1, nom_col2, ... FROM nom_table ; Exemple : Donner le nom et la fonction de chaque employé. SELECT ename, job FROM emp;

SELECT - Principe générale Employé(NCIN, Nom, Prénom, Date_Naissance, Niveau, Salaire) • Il est possible d’utiliser les opérateurs mathématiques de base ( +, -, * et /) pour générer de nouvelles colonnes à partir, en générale, d’une ou plusieurs colonnes existantes. Exemple : Pour afficher le salaire annuel des employés, on peut utiliser la requête suivante: SELECT nom, salaire*12 FROM Employé ;

SELECT - Principe générale L’opérateur AS permet de renommer une colonne ou de nommer une colonne créée dans la requête. Select ename AS Nom from EMP; Équivalent à : Select ename Nom from EMP; Équivalent à : Select ename ‘’Nom’’ from EMP; Exemple SELECT nom, salaire*12 AS SA FROM EMP; SA représente le résultat de (salaire *12) il est nommé SA.

FROM- Principe générale Cette clause spécifie les tables sur lesquelles porte la requête. Exemple SELECT * FROM Employé, Département;  L’opérateur AS permet de renommer une table ou de nommer une table créée dans la requête. Exemple SELECT * from Employe as E ; OU SELECT * from Employe E;

WHERE - Principe générale • La clause WHERE permet de spécifier quelles sont les lignes à sélectionner dans une table ou dans le produit cartésien de plusieurs tables. • Elle est suivie d'un prédicat (expression logique ayant la valeur vrai ou faux) qui sera évalué pour chaque ligne. Les lignes pour lesquelles le prédicat est vrai seront sélectionnées. SELECT * FROM nom_table WHERE predicat ;

WHERE - Principe générale Les prédicats simples Un prédicat simple est la comparaison de deux expressions ou plus au moyen d'un opérateur logique : WHERE exp1 = exp2 WHERE exp1 != exp2 WHERE exp1 < exp2 WHERE exp1 > exp2 WHERE exp1 <= exp2 WHERE exp1 >= exp2 WHERE exp1 BETWEEN exp2 AND exp3 WHERE exp1 LIKE exp2 WHERE exp1 NOT LIKE exp2 WHERE exp1 IN (exp2, exp3,...) WHERE exp1 NOT IN (exp2, exp3,...) WHERE exp IS NULL WHERE exp IS NOT NULL

WHERE - Principe générale • Les trois types d'expressions (arithmétiques, caractères, ou dates) peuvent être comparées au moyen des opérateurs d'égalité ou d'ordre (=, !=, <, >, <=, >=). • Pour les types date, la relation d'ordre est l'ordre chronologique; pour les types caractères, la relation d'ordre est l'ordre lexicographique.

WHERE - Principe générale • exp1 BETWEEN exp2 AND exp3 est vrai si exp1 est compris entre exp2 et exp3, bornes incluses. • exp1 IN (exp2 , exp3...) est vrai si exp1 est égale à l'une des expressions de la liste entre parenthèses. • exp1 LIKE exp2 test l'égalité de deux chaînes en tenant compte des caractères jokers dans la 2ème chaîne : l'expression _ remplace un seul caractère. l'expression % remplace une chaîne de caractères de longueur quelconque. l'expression 'KARIM' LIKE '_AR%' sera vraie. • exp IS [NOT] NULL est vrai si l'expression a la valeur NULL (ou l'inverse avec NOT).

Les opérateurs logiques • Les opérateurs logiques AND et OR peuvent être utilisés pour combiner plusieurs prédicats. Exemple 1: Afficher les noms des employés du département 30 ayant un salaire supérieur à 700DT. SELECT ename FROM emp WHERE Deptno = 30 AND sal> 700; Exemple 2: Afficher les directeurs et les secrétaires du département 10. SELECT * FROM emp WHERE (job= 'DIRECTEUR' OR job= 'SECRETAIRE') AND deptno= 10;

Les opérateurs logiques Exemple : Quels sont les employés dont la commission est supérieure au salaire ? SELECT ename, sal, comm FROM emp WHERE comm > salaire; Exemple : Quels sont les employés gagnant entre 20000 et 25000? SELECT ename, sal WHERE sal BETWEEN 20000 AND 25000;

Les opérateurs logiques Exemple : Quels sont les employés commerciaux ou ingénieurs? SELECT empno, ename, job, sal FROM emp WHERE job IN ('commercial','ingenieur'); Exemple : Quels sont les employés dont le nom commence par M? SELECT ename WHERE ename LIKE 'M%';

Les opérateurs logiques Exemple : Quels sont les employés directeurs, ou commerciaux et travaillant dans le département 10? SELECT ename, job, sal, deptno FROM emp WHERE job= 'directeur' OR (job= 'commercial' AND deptno= 10); Exemple : Quels sont les employés directeurs ou commerciaux, et travaillant dans le département 10? SELECT empno, ename, job, deptno FROM emp WHERE (job='directeur' OR job= 'commercial') AND deptno= 10;

La Valeur NULL Pour SQL, une valeur NULL est une valeur non définie. Il est possible d'ajouter une ligne à une table sans spécifier de valeur pour les colonnes non obligatoires : ces colonnes absentes auront la valeur NULL. Par exemple les employés dont la rémunération ne prend pas en compte de commission auront une valeur NULL, c'est-à-dire indéfinie, comme commission. L'opérateur IS NULL permet de tester la valeur NULL : le prédicat expr IS NULL est vrai si l'expression a la valeur NULL (c'est-à-dire si elle est indéfinie). Exemple : Quels sont les employés dont la commission a la valeur NULL? SELECT ename FROM emp WHERE comm IS NULL; L'opérateur IS NOT NULL permet de construire un prédicat vrai si la valeur n'est pas NULL (et donc le prédicat expr IS NOT NULL est vrai si expr est définie)

La Valeur NULL Remarques La valeur NULL est différente de la valeur zéro qui, elle, qui est une valeur bien définie. Le prédicat expr = NULL est toujours faux, et ne permet donc pas de tester si l'expression a la valeur NULL. Une expression de la forme NULL + val donne NULL comme résultat quelle que puisse être la valeur de val.

La jointure peut être exprimée par la clause WHERE La jointure est une opération permettant de combiner des informations venant de plusieurs tables. Les exemples suivants se limiteront à deux tables, mais on peut joindre jusqu'à 256 tables. Une jointure se formule simplement en spécifiant plusieurs tables derrière le FROM de la façon suivante : La jointure peut être exprimée par la clause WHERE Exemple select ename, dname from emp, dept where emp.deptno = dept.deptno; Si on ne précise pas de condition de sélection, le résultat obtenu sera le produit cartésien des tables présentes derrière le FROM (résultat non souhaité en général).

Jointure naturelle ou équi-jointure La jointure: Jointure naturelle ou équi-jointure Le rapprochement de chaque ligne de la table emp avec la ligne de la table dept ayant même numéro de département permet d'obtenir la liste des employés avec la localité dans laquelle ils travaillent. Ce rapprochement entre deux colonnes appartenant à deux tables différentes mais ayant le même sens (ici le numéro de département) et venant vraisemblablement d'une relation 1-n lors de la conception (ici 1 entité département pour n entités employés) est assez naturel. C'est pourquoi ce type de jointure porte le nom de jointure naturelle ou d'équi-jointure. Exemple : Donner pour chaque employé son nom et son lieu de travail. SELECT emp.name, loc FROM emp, dept WHERE emp.deptno = dept.deptno; Le fait que la colonne contenant le numéro de département (deptno) ait le même nom dans les deux tables a rendu nécessaire le préfixage par le nom de table dans le critère de jointure (clause WHERE). Par contre le nom de colonne Loc n'a pas besoin d'être préfixé car il n'y a pas d'ambiguïté sur la table à laquelle cette colonne appartient.

Jointure naturelle ou équi-jointure La jointure: Jointure naturelle ou équi-jointure Il peut être utile de rassembler des informations venant d'une ligne d'une table avec des informations venant d'une autre ligne de la même table. NOMEMP NOMMGR ---------- ---------- FORD JONES SCOTT JONES TURNER BLAKE ALLEN BLAKE WARD BLAKE JAMES BLAKE MARTIN BLAKE MILLER CLARK ADAMS SCOTT BLAKE KING JONES KING CLARK KING SMITH FORD 13 ligne(s) sélectionnée(s). Exemple : Donner pour chaque employé le nom de son supérieur hiérarchique. SELECT emp.ename employe, mgr.ename manager FROM emp, emp mgr WHERE emp.mgr = mgr.empno; Remarque : Dans ce cas, il faut impérativement renommer au moins l'une des deux occurrences de la table (ici emp) en lui donnant un synonyme, afin de pouvoir préfixer sans ambiguïté chaque nom de colonne.

La jointure: Autres Jointures Le critère d'égalité est le critère de jointure le plus naturel. Mais on peut utiliser d'autres types de comparaisons comme critères de jointures. Exemple : Quels sont les employés gagnant plus que ALLEN? SELECT emp.ename, emp.sal, emp.job FROM emp, emp j WHERE emp.sal > j.sal AND J.ename = ALLEN';

La jointure: Autres Jointures Lorsqu'une ligne d'une table figurant dans une jointure n'a pas de correspondant dans les autres tables, elle ne satisfait pas au critère d'équi-jointure et donc ne figure pas dans le résultat de la jointure. Une option permet de faire figurer dans le résultat les lignes satisfaisant la condition d'équi-jointure plus celles n'ayant pas de correspondant. Cette option s'obtient en accolant (+) au nom de colonne de la table dans laquelle manquent des éléments, dans la condition d'équi-jointure. SELECT emp.ename, loc FROM emp, dept WHERE emp.deptno= dept.deptno; Exemple : Le département 40 ne figurait pas dans le résultat du SELECT précédent. Par contre, il figurera dans le résultat du SELECT suivant. SELECT emp.ename, loc FROM emp, dept WHERE emp.deptno (+)= dept.deptno;