TP n o 14 : Bases de données, première partie



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

Modélisation et Gestion des bases de données avec mysql workbench

Langage SQL : créer et interroger une base

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Création et Gestion des tables

CREATION WEB DYNAMIQUE

Olivier Mondet

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

1 Introduction et installation

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

1. Base de données SQLite

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

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

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

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

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

Objectifs du TP : Initiation à Access

Bases de données relationnelles

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

Le Langage De Description De Données(LDD)

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

I. MySQL : Serveur et SGBD

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

TP3 : Creation de tables 1 seance

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

Historisation des données

Les BASES de DONNEES dans WampServer

Les bases de données

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

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

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

SQL Historique

Pratique et administration des systèmes

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

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

Cours: Administration d'une Base de Données

Configurer la supervision pour une base MS SQL Server Viadéis Services

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

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

MySQL / SQL EXEMPLES

Les déclencheurs. Version 1.0. Grégory CASANOVA

Encryptions, compression et partitionnement des données

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

MODE OPERATOIRE OPENOFFICE BASE

TP Contraintes - Triggers

Le langage SQL Rappels

OpenPaaS Le réseau social d'entreprise

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

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

Bases de SQL. Hacks 1-6 CHAPITRE UN

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

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Création de Sous-Formulaires

1/ Présentation de SQL Server :

OpenOffice Base Gestionnaire de Base de Données

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

Notes pour l utilisation d Expression Web

BIRT (Business Intelligence and Reporting Tools)

Cartographie Informatique Eclairage Public

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

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

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

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

Introduction : L accès à Estra et à votre propre espace Connexion Votre espace personnel... 5

Bases de données élémentaires Maude Manouvrier

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

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

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

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

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

Java DataBaseConnectivity

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

SQL Data Export for PS/PSS

EXCEL TUTORIEL 2012/2013

Le Langage SQL version Oracle

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

Formation. Module WEB 4.1. Support de cours

Tutorial sur SQL Server 2000

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

BTS/CGO P10 SYSTEME INFORMATION Année

Installation d'un serveur FTP géré par une base de données MySQL

Édu-groupe - Version 4.3

Introduction aux outils BI de SQL Server Fouille de données avec SQL Server Analysis Services (SSAS)

Bases de données et sites WEB

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

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

Le langage C. Séance n 4

Arborescence et création de dossiers

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

PHP. PHP et bases de données

WDpStats Procédure d installation

Insérer des images dans Base

TD d économétrie appliquée : Introduction à STATA

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Transcription:

TP n o 14 : Bases de données, première partie I Introduction Dans ce TP nous allons effectuer des opérations élementaires sur une base de données ne comportant qu une seule table. Lors de la prochaine séance, nous nous intéresserons plus spécifiquement à des requêtes portant sur plusieurs tables. L idée du TP est d adapter la syntaxe générale, qui sera fournie dans l énoncé, pour les différentes instructions SQL au cas concret sur lequel nous allons travailler. Nous allons créer une base de données appelée world dont le schéma contient trois tables, mais pour le moment on n utilisera une seule table Country, avec de nombreuses informations relatives aux pays du monde. Nous allons communiquer avec le SGBD mysql par l intermédiaire de l application graphique Workbench. II Création de la base de données 1 Connexion, fonctionnement général Lancer l application Workbench. Cliquer sur l icône correspondante dans la barre d applications sur la gauche ou sur le bureau. Si elle n apparaît pas, passer par le menu Application/Programmation/Workbench Cliquer sur la connexion CONNECTION MPSI_PCSI (ou Session MPSI PCSI si vous êtes en salle G307) Le mot de passe est infocommune (ou elevesg307 si vous êtes en salle G307) Vous disposez alors d un environnement que nous allons découvrir petit à petit. Dans la fenêtre centrale (qu on appelle un Script-Tab) on peut écrire une requête SQL et l exécuter. Pour exécuter successivement la totalité des requêtes d un Script-Tab cliquer sur l icône contenant un éclair (celle de gauche.) Pour n exécuter qu une requête particulière parmi toutes celles susceptibles d apparaître dans le Script-Tab, il suffit de mettre le curseur n importe où dans cette requête et de cliquer sur l icône avec un éclair et un curseur (celle de droite). Après l exécution le résultat s affiche au milieu de la fenêtre et un compte rendu d exécution apparaît tout en bas. Quand l énoncé demandera d exécuter un script, il s agit dans ce contexte de bases de données, d exécuter une requête SQL saisie dans un Script-Tab. 1

2 Création de la base de données On commence par détruire une éventuelle base de données pour partir d un environnement propre. Remarques Les instructions SQL sont généralement écrites en majuscules, mais cela n a rien d obligatoire. Workbench reconnaît les mot-clés du SQL et les affiche en bleu. Les commandes SQL doivent se terminer par un " ;". Syntaxe SQL : pour détruire une base de données nommée dbname on utilise la syntaxe suivante : DROP DATABASE dbname; Script 1 Détruire la base de données world en remplaçant dbname par world dans la syntaxe précédente. Si il y avait une base de données world celle-ci a été effacée, et la requête s est bien passée. Si il n y en avait pas, vous devez avoir un message d erreur, mais c est logique... Remarques : Workbench propose une aide à la saisie des requêtes : on peut faire générer des squelettes de requêtes en cliquant avec le bouton droit dans le panneau latéral gauche sur les noms des bases de données, des tables, des colonnes, puis en sélectionnant Send to SQLEditor (update statement, insert statement, etc..). Essayez par vous même dans la suite. Les opérations sur le schéma de la base de données (i.e. celles qui modifient les bases de données présentes, les tables, les colonnes) ne sont curieusement pas répercutées instantanément dans le panneau latéral gauche. Pour ce faire il faut cliquez sur le double flèche circulaire en haut droite de ce panneau, pour rafraichir les informations. On peut maintenant créer la base données world. Syntaxe SQL : pour créer une base de données nommée dbname on utilise CREATE DATABASE dbname; Script 2 Créer la base de données world. On peut enfin spécifier la base de données sur laquelle on veut travailler. Syntaxe SQL : pour choisir une base de données de travail nommée dbname on utilise USE dbname; Script 3 Spécifier à workbench qu on va travailler avec la base de données world. 2

3 Création de la table Country Le schéma de la relation Country serait un peu long à taper alors on va utiliser un fichier qui contient déjà la requête de création de la table. Ouvrir le script SQL nommé CreationTableCountry.sql par le menu File/Open SQL Script (Le fichier est à récupérer sur le site du lycée si nécessaire) Script 4 Exécuter le script de création de la table Country. Question 5 En lisant la requête de création de la table Country, donner le schéma relationnel de cette table (i.e. les attributs, leurs types, les attributs formant la clef primaire). Workbench peut afficher le schéma relationnel de la Table pour contrôler la réponse à la question précédente. Syntaxe SQL : pour faire afficher le schéma d une relation table_name on utilise DESCRIBE table_name; Script 6 Faire afficher le schéma de la relation Country, et contrôler la réponse à la question précédente. Notes char(3) désigne une chaîne de 3 caractères, int(11) un entier avec 11 chiffres, float(10,2) un flottant avec 10 chiffres avant la virgule et 2 après. 4 Création et suppression d un enregistrement dans la table Country On va insérer manuellement un pays dans la base de données. Syntaxe SQL : pour insérer un enregistrement dans la table table_name on utilise INSERT INTO table_name (col_name1, col_name2,...) VALUES (val1, val2,...); les valeurs val1, val2,... servant à alimenter les attributs de noms col_name1, col_name2,... Script 7 Deployer au maximum le schéma de la base de données world apparaissant dans le cadre latéral gauche en cliquant sur les petits triangles jusqu à faire apparaître la table Country. Faire générer l instruction SQL d insertion d un enregistrement dans la table Country en cliquant avec le bouton droit sur Country et en choisissant Send to SQL Editor/ Insert statement. Compléter alors le squelette de requête ainsi généré en mettant de vraies valeurs pour les attributs (éventuellement fantaisistes si elles ne sont pas connues), en accord avec leurs domaines (cf. la description de la table réalisée juste avant). Note : par exemple <{Code: }> est à remplacer par exemple par "FRA" car c est une chaîne de trois caractères (il faut tout remplacer, le <, le {, le Code:, le } et le >). Les chaînes de caractères doivent être entourées de guillemets. Exécuter la requête et vérifier dans le rapport d exécution que tout va bien (pas d erreur ni de warning). 3

Script 8 Vérifier en executant la requête suivante qu un enregistrement a bien été créé. SELECT * FROM Country; Il est probable que l enregistrement ainsi créé ne corresponde pas aux données d un vrai pays. On va donc le supprimer. Syntaxe SQL : pour supprimer un enregistrement vérifiant une condition dans la table table_name DELETE FROM table_name WHERE Condition; Script 9 Supprimer l enregistrement créé précédemment en utilisant comme Condition : Code=" FRA" si le code donnée pour le pays est "FRA" (à adapter éventuellement à la situation). Vérifier dans le rapport d exécution que tout va bien (pas d erreur ni de warning). Script 10 Vérifier en executant la requête suivante que l enregistrement a bien disparu de la base. SELECT * FROM Country; 5 Création de tous les enregistrements dans la table Country Il est temps d alimenter vraiment la base de données. Il n est pas question là aussi dans le cadre du TP d insérer les éléments un par un. On a à notre disposition un script contenant le nécessaire. Ouvrir le script SQL nommé CreationDonnéesCountry.sql par le menu File/Open SQL Script (Le fichier est à récupérer sur le site du lycée si nécessaire). Script 11 Exécuter le script qui contient les requêtes d insertion d un grand nombre d enregistrements dans la table Country. Un compte rendu d exécution est affiché pour chacune des (nombreuses!) requêtes de création de données. On peut passer à l exploitation de la base de données 6 Récupération de tous les attributs de tous les enregistrements Syntaxe SQL : pour récupérer toutes les données d une relation appelée tablename on utilise SELECT * from tablename; Script 12 Récupérer toutes les données de tous les enregistrements de la relation Country. 4

7 Projection : récupération de certains attributs de tous les enregistrements La requête précédente est très (trop) riche en information. Il est peu probable que l on ait besoin de la totalité des données. Pour ne garder que quelques attributs des enregistrements d une relation on utilise la projection. Syntaxe SQL : pour récupérer les attributs att1 et att2 de tous les enregistrements d une relation tablename on utilise : SELECT att1, att2 FROM tablename; Script 13 Récupérer le nom et le code de chaque pays (rappel : le schéma de la table s obtient par DESCRIBE si nécessaire, ou en en exploitant le volet gauche qui contient le schéma de la base de données) 8 Renommage Si le nom des colonnes (en anglais ici par exemple) ne plaît pas, on peut les renommer grâce à la clause AS qui suit l attribut que l on veut renommer. Il est bien sûr possible de renommer plusieurs attributs d un même coup. Syntaxe SQL : pour récupérer les valeurs de l attribut att et le renommer en nouveau_nom on utilise SELECT att AS nouveau_nom FROM tablename; Script 14 Récupérer le nom du pays avec comme nom de colonne Nom (et plus Name, le code (sans renommage), et le produit national brut (PNB) (colonne GNP pour Gross National Product) sous le nom "PNB en millions de dollars". Remarques Pour pouvoir mettre une chaîne de caractères complète comme nom de colonne il faut l entourer de guillemets. Il faut bien comprendre que le renommage n a lieu que dans le résultat de la requête effectuée et pas dans la base de données elle-même (ce serait un comportement vraiment gênant si n importe qui pouvait renommer les attributs d une table!) 9 Sélection : récupération de quelques enregistrements Jusqu à présent on a récupéré des informations pour tous les enregistrements. On va maintenant sélectionner quelques enregistrements particuliers. Pour cela on rajoute une clause WHERE après le FROM tablename, suivie d une condition (un prédicat). Cette condition s écrit en utilisant classiquement les opérateurs booléns AND, OR, <,>, >=, <=, BETWEEN ainsi que les valeurs des attributs des enregistrements par l intermédaire des noms de ces attributs. Syntaxe SQL : SELECT * FROM tablename WHERE Predicat; 5

Script 15 Récupérer les données des pays dont l espérance de vie est supérieure à 80 ans. Récupérer les données des pays dont l espérance de vie est comprise entre 78 et 80 ans en utilisant BETWEEN. Récupérer les données des pays dont l espérance de vie est comprise entre 70 et 80 ans, et dont le PNB est compris entre 500000 et 2000000. Récupérer les données des pays dont l espérance de vie est comprise entre 75 et 80 ans, et dont le PNB est compris entre 1000000 et 2000000, et dont la capitale a plus d un million d habitants. Récupérer les données des pays dont l espérance de vie est comprise entre 75 et 80 ans ou dont le PNB est compris entre 1000000 et 2000000. Récupérer les données des pays dont l espérance de vie est comprise entre 75 et 80 ans et dont le PNB est compris entre 1000000 et 2000000, ou dont la population de la capitale dépasse 1 million d habitants. Récupérer les données des pays dont l espérance de vie est comprise entre 75 et 80 ans et dont, le PNB est compris entre 1000000 et 2000000 ou la population de la capitale dépasse 2 million d habitants. On peut faire des recherches sur les chaînes de caractères avec un motif. Syntaxe SQL : dans la clause du WHERE on utilise LIKE suivi d un motif (qui est lui même une chaîne de caractères). SELECT * FROM tablename WHERE att LIKE motif; Dans le motif on peut utiliser le caractère spécial % qui permet de désigner n importe quelle chaîne de caractères. Par exemple LIKE %E permet de sélectionner les chaînes de caratères qui finissent par E, LIKE F%, celles qui commencent par F, et LIKE %RANC% celles qui contiennent la sous-chaîne RANC. Il y a bien d autres possibilités (consulter la documentation si nécessaire) Script 16 Récupérer les pays qui ont un régime politique de type monarchique (avec d éventuelles variantes). Il peut ne pas être inutile de regarder d abord dans la base de données les valeurs que peut prendre l attribut GovernmentForm. De manière à éliminer les doublons on peut pourra utiliser le mot-clef DISTINCT juste après le SELECT : SELECT DISTINCT... 10 Mise à jour La base de données est assez vieille. Script 17 Selon la base qui est l actuel président de la république française? Quelle est la population de france métropolitaine? 6

Il faut donc mettre à jour la base. Syntaxe SQL : Pour mettre à jour les attributs att1 et att2 de la relation tablename avec les valeurs val1 et val2, des enregistrements vérifiant une condition Predicat, on utilise : UPDATE tablename SET att1 = val1, att2 = val2 WHERE Predicat; Script 18 La population métropolitaine est actuellement de 66318000 habitants. Mettre à jour la population et le nom du chef de l état pour la france. Mais il ne faut pas oublier les autres dépéndances françaises! Mettre à jour le nom du chef de l état pour les dépendances françaises. On pourra utiliser le fait que toutes les dépendances françaises ont comme valeur de l attribut GovernmentForm une chaîne de caractères qui contient le mot France. 11 Un petit plaisir en tant qu application... On va se faire un petit plaisir en rayant de la carte un pays rugbystiquement ennemi, ainsi que ses dépendances : l Angleterre! Note dans le contexte actuel : c est de l humour... Script 19 Faire afficher tous les pays concernés (la question, pour pouvoir les sélectionner, est «qu ont-ils tous en commun?»). Feu! Supprimer tous ces pays... Comment vérifier que ces pays ne sont plus dans la base de données? 7