Module M2104 Compte rendu du TP N 3 : Les requêtes en BD

Documents pareils
Le Langage SQL version Oracle

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

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

Optimisation SQL. Quelques règles de bases

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

TP Contraintes - Triggers

SQL Historique

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

Le Langage De Description De Données(LDD)

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

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

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

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

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

Bases de données relationnelles

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

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

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?

Langage SQL : créer et interroger une base

1 Introduction et installation

Olivier Mondet

CREATION WEB DYNAMIQUE

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Les BASES de DONNEES dans WampServer

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

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

Support de cours «SGBD»

16H Cours / 18H TD / 20H TP

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Création et Gestion des tables

MODE OPERATOIRE OPENOFFICE BASE

Objectifs du TP : Initiation à Access

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

Les bases de données

TP3 : Creation de tables 1 seance

A QUOI SERVENT LES BASES DE DONNÉES?

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

Cours 4. Gestion de la performance. DBA - Maîtrise ASR - Université Evry

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

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

FileMaker 13. Guide de référence SQL

- ORS - Optimisation de Requêtes SQL sous Oracle

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Le langage SQL Rappels

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

Gestion de base de données

Bases de données Outils de gestion

Encryptions, compression et partitionnement des données

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

1. Base de données SQLite

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

I. MySQL : Serveur et SGBD

Bases de données élémentaires Maude Manouvrier

Cours Bases de données 2ème année IUT

PROJET 1 : BASE DE DONNÉES REPARTIES

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

I4 : Bases de Données

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

MySQL / SQL EXEMPLES

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

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

Pratique et administration des systèmes

Introduction aux Bases de Données 2004/2005

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Introduction à JDBC. Accès aux bases de données en Java

Pour les débutants. langage de définition des données

Présentation Windows Azure Hadoop Big Data - BI

OpenPaaS Le réseau social d'entreprise

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

Devoir Data WareHouse

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Information utiles. webpage : Google+ : digiusto/

Cours Bases de données 2ème année IUT

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Historisation des données

Bases de données et sites WEB

Intégrité des données

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

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

Vincent Augusto

1/ Présentation de SQL Server :

IFT3030 Base de données. Chapitre 1 Introduction

Auto-évaluation SQL. Document: f0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Partie II Cours 3 (suite) : Sécurité de bases de données

Notes de cours : bases de données distribuées et repliquées

TP 8: LES OPERATEURS ENSEMBLISTES

Transcription:

Module M2104 Compte rendu du TP N 3 : Les requêtes en BD 1

Sommaire I Introduction...3 II Sujet...3 III Modélisation...3 IV Création de tables...4 V Remplissage des tables...5 VI Requêtes...10 VII Conclusion...14 2

I IntroductionDans le cadre du D.U.T. Réseaux et Télécommunications, un module nommé «Bases de données» est enseigné par le professeur Mr Amar R-C (pour les Travaux dirigé et pour les cours magistraux) ainsi que par Mme J.Palasi (pour les Travaux pratiques). Dans ce cours, il nous est enseigné une introduction au SQL (Standar Query Language) et les généralités des bases de données. Cette base de données sera utile à un entrepreneur qui voudra gérer ses employés, savoir sur quels missions ils travaillent, et avoir des informations sur eux (salaire, date d'embauche, etc...) Voici le schema Entité-Association : Voici le shéma relationnel : 1 1 1 3

II Création de tables Pour créer une table destinées à stocker, on utilise la commande SQL CREATE qui a pour syntaxe : CREATE TABLE nom_table (nom_colonne type_colonne modificateurs_colonne, nom_colonne type_colonne modificateurs_colonne, ). Ce qui nous donne pour la table : Dept : CREATE TABLE dept(deptno int NOT NULL primary key, dname varchar(20) NOT NULL, loc varchar(20) NOT NULL) Employé : CREATE TABLE emp(empno int NOT NULL primary key, ename varchar(20) NOT NULL, job varchar(20) NOT NULL, mgr int, hiredate date NOT NULL, sal double(7,2) NOT NULL, comm double(7,2), deptno int NOT NULL) Mission : CREATE TABLE mission (missno int NOT NULL primary key, empno int NOT NULL, ciename varchar(20) NOT NULL, local varchar(20) NOT NULL, enddate date) Definitions : INT NOT NULL PRIMARY KEY : Entier non nul qui est une clé primaire CHAR(40) : chaine de maximum 40 caractères VARCHAR : chaine de caractères, de chiffres et caractères spéciaux. INT : Entier III Remplissage des tables Afin d insérer des données dans une table, il faut utiliser la commande INSERT INTO et la commande VALUES: Exemple : INSERT INTO nom_table (nom_colonne,,nom-colonne) VALUES(valeur, valeur) 4

Voici ci-dessous le remplissage des différentes tables : Table dept : INSERT INTO dept (deptno,dname,loc) VALUES (10, "Accounting", "New-York"); INSERT INTO dept VALUES (20, "Research", "Dallas"); INSERT INTO dept VALUES (30, "Sales", "Chicago"); INSERT INTO dept VALUES (40, "Operations", "Boston'' ); Table employé : INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) VALUES (7369, "Smith", "Clerk", 7902, "1981-12-17", "800.00", NULL, 20); INSERT INTO emp VALUES (7499, "Allen", "Salesman", 7698, "1981-02-20", "1600.00", "300.00", 30); INSERT INTO emp VALUES (7521, "Ward", "Salesman", 7698, "1981-02-22", "1250.00", "500.00", 30); INSERT INTO emp VALUES (7566, "Jones", "Manager", 7839, "1981-04-02", "2975.00", NULL, 20); INSERT INTO emp VALUES (7654, "Martin", "Salesman", 7698, "1981-09-28", "1250.00", "1400.00", 30); INSERT INTO emp VALUES (7698, "Blake", "Manager", 7839, "1981-05-01", "2850.00",NULL, 30); INSERT INTO emp VALUES (7782, "Clark", "Manager", 7839, "1981-06-09", "2450.00", NULL, 10); INSERT INTO emp VALUES (7788, "Scott", "Analyst", 7566, "1981-11-09", "3000.00", NULL, 20); INSERT INTO emp VALUES (7839, "King", "President", "NULL", "1981-11-17", "5000.00", NULL, 10); 5

INSERT INTO emp VALUES (7844, "Turner", "Salesman", 7698, "1981-09-08", "1500.00", "0.00", 30); INSERT INTO emp VALUES (7876, "Adams", "Clerk", 7788, "1981-09-23", "1100.00", NULL, 20); INSERT INTO emp VALUES (7900, "James", "Clerk", 7698, "1981-12-03", "950.00", NULL, 30); INSERT INTO emp VALUES (7902, "Ford", "Analyst", 7566, "1981-12-03", "3000.00", NULL, 20); INSERT INTO emp VALUES (7934, "Miller", "Clerk", 7782, "1982-01-23", "1300.00", NULL, 10); Table mission : INSERT INTO mission (missno, empno, ciename, local, enddate) VALUES (209, 7654, "BMW", "Berlin", "2001-02-09"); INSERT INTO mission VALUES (212, 7698, "MacDo", "Chicago", "2001-03-04"); INSERT INTO mission VALUES (213, 7902, "Oracle", "Dallas", "2001-04-11"); INSERT INTO mission VALUES (214, 7900, "FIDAL", "Paris", "2001-06-07"); INSERT INTO mission VALUES (216, 7698, "IBM", "Chicago", "2001-02-09"); INSERT INTO mission VALUES (218, 7499, "Décathlon", "Clermont", "2002-12-24"); INSERT INTO mission VALUES (219, 7782, "BMW", "Chicago", "2001-08-16"); 6

VI Requêtes Pour pouvoir faire une requête a une table il est nécessaire d utilisé un certains langage qui s utilise avec des mots clés comme les suivants : SELECT : Permet d accéder aux rangées désignés par l ensemble de critère de recherche FROM : Permet d aller chercher une colonne dans une table WHERE : Permet d insérer une ou des condition(s) ORDER BY : triés AS : Renomme une colonne dans SELECT 1) SELECT DISTINCT sal FROM emp ; 7

2) SELECT sal FROM emp ; 8

3) SELECT job FROM emp ; 9

4) SELECT * FROM emp; SELECT * FROM mission; SELECT * FROM dept 5) SELECT job, mgr FROM emp ; 10

6) SELECT missno FROM mission WHERE enddate < «2001-05-01» and (`local`=«chicago» OR `local`=«dallas») ; 7) SELECT missno FROM mission WHERE local like «C%» ; 11

8) SELECT ename FROM emp WHERE comm IS NULL ; 9) SELECT empno, ename FROM emp WHERE hiredate > «1981-05-01» and hiredate <= «1981-10-31» ; 12

10) SELECT deptno FROM emp WHERE comm IS NOT NULL ; R11) SELECT dept.deptno FROM dept, emp WHERE dept.deptno=emp.deptno AND job='clerk' 13

R12) SELECT ename, dname, localisation FROM emp, mission, dept WHERE emp.empno=mission.empno AND mission.localisation=dept.loc AND emp.deptno=dept.deptno 14

R13. R14. 15

R15. 16

R16. Donner les noms des employés qui ont un ou plusieurs collègues qui touchent un salaire plus grand que le leur et qui appartiennent au même département : 17

R17. 18

R18. R19. 19

R20. R21. Trouver le nombre de managers 20

22. Trouver le salaire moyen des employés qui sont en mission 23. S il est en mission, trouver la date de fin de mission de l employé qui est dans l entreprise depuis le plus longtemps. 21

R24. Trouver les noms, salaire, commission, salaire + commission de tous les vendeurs 22

R25. Trouver les noms des employés qui touchent une commission comprise entre 35 et 120% de leur salaire. 23

R26. Nom des employés dont le manager gagne plus du double de leur salaire 24

6. Manipulation de chaînes et de dates R27. Afficher les noms des employés cadrés à droite sur une longueur de 10 caractères, le début de ligne étant complété par des blancs 25

R28. Afficher les noms des employés cadrés à gauche sur une longueur de 15 caractères, la fin de ligne étant complétée par des traits d'union ('-') R29. Liste des trois premières lettres du nom de chaque employé 26

R30. Liste des noms des employés à l'envers R31. Afficher toutes les informations sur les employés avec comme format de date d'embauche "Thu 17 Dec 1981" SELECT * FROM `employés` WHERE hiredate = "Thu 17 Dec 1981" La requête n affiche rien car aucun n employé n a ce format date pour sa date d embauche. R32. Liste des départements et de leur localisation avec le format "nom/lieu". 27

7. ORDER BY GROUP BY HAVING R33. Donner les noms des employés par ordre alphabétique SELECT nameemp FROM `employés` ORDER BY nameemp ASC CRTH1A GFIU AE1 H IUerTv éd e Vélizy R34. Donner les noms des employés par ordre alphabétique inversé 28

R35. Donner les informations sur les employés par ordre décroissant de date d'embauche puis par ordre alphabétique de nom 29

R36. Présenter les employés par groupes de même valeur de salaire, et par ordre décroissant de ces valeurs SELECT * FROM `employés` GROUP BY SALARY ORDER BY SALARY DESC R37. Représenter les employés groupés selon les noms de département ordonnés dans l'ordre alphabétique inverse 30

R38. Représenter les employés groupés selon le mois et l'année de leur date d'embauche (ordre chronologique) : N dept Nb de missions 31

R40. Afficher le salaire moyen par job SELECT E.job, AVG(SALARY) AS "SALAIRE MOYEN" FROM employés AS E GROUP BY E.job R41. Afficher les noms des employés groupés par job puis par nom de département 32

R42. Afficher les nombres d'employés dirigés directement par chaque manager (ici on comprend manager comme un employé ayant son numéro dans la colonne mgr) R43. Nom des départements qui ont 2 missions ou plus 33

R45. R46. Nom des villes qui accueillent 2 missions ou plus IV Conclusion En conclusion, à travers ce TP nous avons consalider nos bases sur la création des requêtes de différents type : Projections/Sélections/Jointures etc. Cela nous a permis d acquérir les compétences nécessaires à l organisation d une bibliothèque sous les commandes du langage SQL. 34