TP 3: L'ORDRE SELECT

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

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

Langage SQL : créer et interroger une base

Le langage SQL Rappels

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

Le Langage SQL version Oracle

Le Langage De Description De Données(LDD)

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

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

FileMaker 13. Guide de référence SQL

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

1 Introduction et installation

Optimisation SQL. Quelques règles de bases

MODE OPERATOIRE OPENOFFICE BASE

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

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

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

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

MySQL / SQL EXEMPLES

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

TP3 : Creation de tables 1 seance

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

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

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

Les bases de données

TP Bases de données réparties

16H Cours / 18H TD / 20H TP

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

1. Introduction Création d'une requête...2

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

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

OLAP : Mondrian + Pentaho. Maguelonne Teisseire Hugo Alatrista Salas hugo.alatrista- salas@teledetec9on.fr Flavien Bouillot

Gestion des bases de données (2 e partie)

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

Base de données relationnelle et requêtes SQL

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

Olivier Mondet

Mysql avec EasyPhp. 1 er mars 2006

La présente publication est protégée par les droits d auteur. Tous droits réservés.

Excel avancé. Frédéric Gava (MCF)

CREATION WEB DYNAMIQUE

Introduction aux Bases de Données 2004/2005

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

TP 8: LES OPERATEURS ENSEMBLISTES

Devoir Data WareHouse

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

INTRODUCTION AU DATA MINING

Bases de données élémentaires Maude Manouvrier

Cours 4 : Agrégats et GROUP BY

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

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

25/01/05 TD Entrepôt de données IHS / Master ICA

Baccalauréat Technologique. Épreuve de Spécialité Partie écrite

1. Base de données SQLite

Bases de données relationnelles

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

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

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

Thème : Gestion commerciale

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Vincent Augusto

Présentation Windows Azure Hadoop Big Data - BI

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1

Console IAP Manuel d utilisation

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

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

Créer une base de données

SQL Historique

Cours 1 : introduction

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

Création et Gestion des tables

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

TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Historisation des données

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

L exclusion mutuelle distribuée

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

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

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

Les bases fondamentales du langage Transact SQL

TP Contraintes - Triggers

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

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)

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

Compétences Business Objects

Systèmes de Gestion de Bases de Données

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

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

Les bases de l optimisation SQL avec DB2 for i

Créer le schéma relationnel d une base de données ACCESS

Plan d Exécution Graphique pour des Requêtes SQL Simples

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Transcription:

TP 3: L'ORDRE SELECT OBJECTIFS : Apprendre la recherche, restriction et tri des données avec la requête SELECT. Partie I : SELECT basique - La commande SELECT permet la recherche d information dans une base de données Syntaxe: [DISTINCT] colonne expression [alias], FROM table; - Le caractère * après SELECT indique que toutes les colonnes de la table doivent être prises en compte. - L'option DISTINCT permet de ne conserver que des lignes distinctes, en éliminant les doublons. - colonne expression: permet de préciser les noms des colonnes. - alias: renomme l expression (nom valable pendant la durée de la requête). - La clause FROM : permet de spécifier la (ou les) table (s) à interroger. Application: 1. Afficher le contenu des différentes tables:... 2. Afficher quelques colonnes: SELECT codc, nomc 3. Opérateurs arithmétique (+,-,*,/): SELECT codp, lib, Pu*QteS FROM Produit; 4. Définition des alias: SELECT nomc AS "Nom du client" SELECT nomc "Nom du client" SELECT codp, lib, Pu*QteS AS Total FROM Produit; SELECT codp, lib, Pu*QteS Total FROM Produit; 1

5. Les lignes dupliqués: SELECT codc FROM Facture; Suppression des doublons: SELECT DISTINCT codc FROM Facture; 6. Opérateur de concaténation : SELECT codc nomc As "code et nom" 7. Chaine de caractère latérale: SELECT nomc, ' habite A ',adressec SELECT nomc ' habite A ' adressec As "Localisation" Partie II: Restriction et tri des données II.1. L interrogation avec prédicats (conditions) : Limiter les lignes retournées en utilisant la clause WHERE [DISTINCT] colonne expression [alias], FROM table; [WHERE condition(s)]; 1. WHERE : indique qu une ligne doit valider une condition avant d être retournée. condition : peut être composé de nom de colonne, expression, des valeurs constantes et des opérateurs de comparaison. condition : est composée de colonnes, d expressions, de constantes liées deux à deux entre des opérateurs : de comparaison (>, =, <, >=, <=, <>) ; logiques (NOT, AND ou OR) ; intégrés (BETWEEN, IN, LIKE, IS NULL). Application: 1. Afficher les factures du client numéro 1250: FROM Facture WHERE codc=1250; 2. Afficher le numéro et la date des factures du client numéro 1250: SELECT numf, datf FROM Facture WHERE codc=1250; 2

3. Afficher les clients qui habitent à 'Tunis': WHERE AdresseC='Tunis'; NB: la comparaison des chaines de caractères est sensible à la casse ('Tunis' est différente de 'TUNIS': 4. Afficher les factures faites le ' 16/07/99'. FROM Facture WHERE DatF='16/07/99'; II.2. Between, like, in et is null : 1. Between : extraire des lignes en se basant sur un intervalle de valeurs. Afficher les clients qui ont un crédit entre 50 et 250'. WHERE creditc >=50 AND creditc<=200; Ou bien: WHERE creditc BETWEEN 50 AND 200; 2. In: extraire des lignes en se basant sur une liste de valeurs. Afficher les produits dont la quantité en stock est égale à 20, 40 ou bien 50. FROM Produit WHERE QteS=20 OR QteS=40 OR QteS=50; Ou bien: FROM Produit WHERE QteS IN (20,40,50); 3. LIKE: rechercher les valeurs qui vérifie une condition textuelle. La condition de recherche peut contenir des caractères ou des entiers : % indique zéro ou plusieurs caractères _ indique un seul caractère Afficher les clients dont la deuxième lettre des noms est 'a'. WHERE nomc LIKE ('_a%'); 4. IS [NOT] NULL: rechercher les valeurs dont certains champs contiennent des valeurs nulles. Afficher les clients qui n'ont pas une adresse. WHERE AdresseC IS NULL; 3

II.3. tri des données: Order by Trier les lignes retournées avec ORDER BY Syntaxe: SELECT expr FROM table [WHERE condition(s)] [ORDER BY {column, expr} [ASC DESC]]; On peut spécifier une expression, un alias, un nom ou une position de colonne dans la clause ORDER BY Par défaut l ordre de tri est ascendant. Pour renverser l ordre de tri spécifier le mot clé DESC après le nom de colonne dans la clause ORDER BY Exemple : Rechercher la liste des produits en triant le résultat avec le plus chère : Select * from Produit Order by PU DESC; Rechercher le prix total des produits en triant le résultat par le montant le plus faible Application : Select codp, Lib, PU*QteS AS "total" from Produit Order by total; Formuler les requêtes suivantes en SQL : 1. Afficher toutes les informations sur toutes les commandes, 2. Afficher toutes les informations sur les clients de Tunis et dont le code est un multiple de 1000, 3. Quel est le code du client qui a lancé la commande numéro 1, 4. Quels sont les produits dont la quantité en stock est comprise entre 500 est 700 et possédant un seuil? 5. Quels sont les clients dont le nom se termine par "ed"? 6. Quels sont les Produit dont la troisième lettre du libellé est "p"? 7. Quels sont les factures faites en 1999? 8. Donner les codes des clients qui ont commandées des commandes? 9. Quels sont les clients qui ont lancé une commande après le 20/03/1998? 10. Trier les produits sur leurs libellés et ce dans l'ordre croissant. 11. Afficher tous les produits avec un ordre croissant pour les prix unitaires et décroissant pour la quantité en stock. 12. Afficher les facture suivant la manière suivante: La Facture "NumF" du client "codc", total = "MontF" 4

Partie III: Exercice 1. Créer un nouveau utilisateur Cabinet/Medecin. 2. On se propose l exemple suivant, relatif à la gestion des consultations des patients pour un médecin: Patient Maladie Consultation Suivi Créer les tables Patient, Maladies, Consultation et Suivi sans les contraintes de clé primaire et étrangère (la taille des variables chaines de caractères est a préciser ). 3. Ajouter à la table Patient le champ adresse chaine de caractères. 4. Modifier le champ Type_Cons de telle sorte qu il sera de type varchar(30). 5. Ajouter les contraintes suivantes : Ajouter aux tables les contraintes de clé primaire et clé étrangère. Le groupe sanguin doit être dans l ensemble {'O-','O+','A-','A+','B-','B+','AB-','AB+'} Le nom et le prénom doit être non vide. Le poids doit être compris entre 3 et 200. Le sexe doit être égale à 'M' ou bien 'F'. Le Type de la consultation doit être égale à 'Normale', 'Contrôle' ou bien ' Domicile' 6. Saisie des données: a. Table Patient Mat_Pat Nom Prénom Date_Naiss Groupe_ Sanguin Poids Taille Sexe 120001 ABDI Sami 01/07/1960 A+ 60 1,6 M 120002 BEN KHALED Ahlem 24/04/1980 B+ 50 1,55 F 120003 BEN SLIMANE Abdelkerim 16/05/1980 O- 68 1,7 M 120004 GHARBI Isam 03/06/1975 O+ 88 1,75 M 120005 MELKI Raoudha 15/12/1968 A+ 54 1,45 F 120006 SELMI Ali 13/11/1952 A- 60 1,55 M 5

b. Table Maladie c. Table Consultation Code_Mal Designation 150001 Fièvre 150002 Grippe 150003 Asthme 150004 Diabète num Mat_Pat Date_Cons Heure_Cons Type_Cons 1 120003 12/04/2004 08 :30 Normale 2 120003 12/05/2004 15 :00 Contrôle 3 120002 12/04/2004 20 :20 Domicile 4 120001 20/04/2004 15 :30 Normale d. Table Suivi Mat_Pat Code_Mal 120003 150002 120002 150003 120005 150003 120001 150004 7. Création des Requêtes: a. Afficher les noms des patients. b. Afficher la liste des patients qui ont comme groupe sanguin A+. c. Afficher les femmes qui ont un groupe sanguin O+ ou bien O- et dont le poids ne dépasse pas 70Kg. d. Afficher les patients ayant une taille supérieure à 1,6 et un poids supérieur à 62. e. Afficher les noms des patients nés entre 1975 et 1985. f. Afficher la liste des patients dont leurs noms contiennent "S". g. Afficher la liste des patients dont le 2ème caractère de leurs noms est "E". h. Afficher la liste des patients dont leurs prénoms ne commencent ni par "S" ni par "A". i. Ordonner les patients en fonction de leurs poids. j. Afficher les patients qui ont un corps parfait càd le poids est égale à la partie décimale de son longueur (Exp: 60kg 1.6m ou bien 75kg 1.75m) k. Afficher la liste des consultations faites à domicile après midi. Avec jointure: l. Afficher le nom, prénom, Sexe et la Désignation de la maladie des patients. m. Afficher le nom, prénom des patients et leurs consultations enlevez les patients qui ne sont pas nés en 1980. n. Affichez les consultations avec les noms des patients. o. Afficher le nombre des patients par groupe sanguin. p. Affiche le poids moyen par sexe q. Afficher le nombre de patients asthmatiques ayant subi une consultation à domicile. r. Afficher le nombre de consultations normales pour chaque patient. s. Afficher le nom et Prénom des diabétiques triés par ordre alphabétique croissant suivant leurs noms. 6