TD2 SQL. 1. À partir des données présentées dans le tableau suivant, proposez les définitions de la table MAINTENANCE



Documents pareils
Langage SQL : créer et interroger une base

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

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

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

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

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

Le Langage De Description De Données(LDD)

Bases de données relationnelles

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

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

Création et Gestion des tables

Olivier Mondet

TP3 : Creation de tables 1 seance

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

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

SQL Historique

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

A QUOI SERVENT LES BASES DE DONNÉES?

CREATION WEB DYNAMIQUE

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

Le langage SQL Rappels

Le Langage SQL version Oracle

Devoir Data WareHouse

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

MySQL / SQL EXEMPLES

1. Base de données SQLite

MODE OPERATOIRE OPENOFFICE BASE

Objectifs du TP : Initiation à Access

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

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

I4 : Bases 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

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

Cours 4 : Agrégats et GROUP BY

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

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

A QUOI SERVENT LES BASES DE DONNÉES?

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Les bases de données

FileMaker 13. Guide de référence SQL

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

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

1/ Présentation de SQL Server :

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

Gestion de base de données

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

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

TP Contraintes - Triggers

1 Position du problème

I. MySQL : Serveur et SGBD

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

Historisation des données

Systèmes de Gestion de Bases de Données

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Compétences Business Objects

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

Auto-évaluation Oracle: cours de base

Gestion des transactions et accès concurrents dans les bases de données relationnelles

OpenPaaS Le réseau social d'entreprise

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

Bases de données Cours 4 : Le langage SQL pour ORACLE

Bases de données. PTSI Lycée Eiffel. 28 février 2014

TP 8: LES OPERATEURS ENSEMBLISTES

1 Introduction et installation

Bases de données relationnelles & SQL

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Les BASES de DONNEES dans WampServer

BASES DE DONNEES TP POSTGRESQL

Optimisation SQL. Quelques règles de bases

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

Encryptions, compression et partitionnement des données

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Intégrité sémantique dans les bases de données relationnelles

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)

Intégrité des données

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Corrigés détaillés des exercices

Exercices sur SQL server 2000

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

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

Résumé S Q L. Auteur: Alexandre PATIN Edition: 22 février alexandre.patin@free.fr URL :

Présentation Windows Azure Hadoop Big Data - BI

Vincent Augusto

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

BTS/CGO P10 SYSTEME INFORMATION Année

Groupe 11 TABLE DES MATIERES

Application web de gestion de comptes en banques

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

UML et les Bases de Données

Base de données relationnelle et requêtes SQL

Mysql avec EasyPhp. 1 er mars 2006

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

SQL Server 2000, Analysis Services et DTS

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

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Mejdi BLAGHGI & Anis ASSÈS

Transcription:

Exercice 1 Syntaxe des noms Les noms d objets SQL suivants sont-ils corrects? a. DEPART b. ARRIVÉE c. DATE d. _WIDE_ e. "CREATE" f. #CLIENT g. IBM_db2 h. 5e_avenue TD2 SQL Sont incorrects : b. Le caractère majuscule accentué est interdit. c. DATE est un mot réservé du SQL. Si on veut l utiliser, il faut l écrire "DATE" (entre guillemets). d. Un nom d objet SQL doit commencer par une lettre. f. Le caractère # n est pas autorisé dans un nom SQL. h. Un nom d objet SQL ne peut commencer par un chiffre. Exercice 2 Création de table 1. À partir des données présentées dans le tableau suivant, proposez les définitions de la table MAINTENANCE CREATE TABLE MAINTENANCE ( NUMERO INTEGER PRIMARY KEY, MACHINE CHAR(16) NOT NULL, JOUR CHAR(3) NOT NULL CHECK (VALUE IN ('Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim')), HEURE TIME NOT NULL, EVENEMENT VARCHAR(64) NOT NULL, VITESSE FLOAT CHECK (VALUE > 0), TEMPERATURE FLOAT CHECK (VALUE > -273) CONSTRAINT UK_MAC_JOUR_HEUR UNIQUE (MACHINE, JOUR, HEURE) À l évidence, la colonne Numéro est unique et peut constituer la clé de la table. Machine, Jour, Heure et Événement sont des colonnes toujours renseignées (NOT NULL). Un CHAR(3) suffit pour la colonne Jour à laquelle on ajoute une contrainte validant la donnée avec les trois premières lettres du

jour de la semaine. On ne saurait relever une vitesse négative, pas plus qu une température inférieure à 273 ; ces deux colonnes font donc l objet d une contrainte de validation CHECK. Enfin, il semble indiqué (mais ce n est pas obligatoire) de définir l unicité sur les colonnes Machine, Jour et Heure, afin d éviter de saisir deux événements survenant au même moment pour une même machine. 2. Donnez la commande de création des tables contenues dans le schéma relationnel suivant (les clés primaires sont soulignées et les clés étrangères en italique) : - personne(id_personne, id_secu, nom, prenom, datenaissance) - cours(id_cours, id_enseignant, sigle, intitule, description) où id_enseigant est une clé étrangère qui fait référence au schéma de relation personne. - Suivre(id_etudiant, id_cours, note) où id_etudiant et id_cours sont des clé étrangères qui font, respectivement, référence aux tables personne et cours. CREATE TABLE personne ( id_personne INTEGER PRIMARY KEY, num_secu CHAR(15) UNIQUE, nom VARCHAR(200) NOT NULL, prenom VARCHAR(200) NOT NULL, datenaissance DATE CREATE TABLE cours ( id_cours INTEGER PRIMARY KEY, id_enseignant INTEGER REFERENCES personne (id_personne) ON DELETE SET NULL, sigle CHAR (7) UNIQUE NOT NULL, intitule VARCHAR(250) NOT NULL, description VARCHAR(200) CREATE TABLE suivre ( id_personne INTEGER REFERENCES personne ON DELETE RESTRICT, id_cours INTEGER REFERENCES cours ON DELETE RESTRICT, PRIMARY KEY (id_etudiant, id_cours), Note REAL CHECK (note >0 OR note IS NULL) Exercice 3 Interrogation de base de donnée Livraison de journaux 1. Donner pour chaque journal ses titres, prix, type et périodicité. select titre, prix, type, periode 2. Donner les différents journaux triés par ordre alphabétique.

select titre from journal order by titre; 3. Codes des journaux mensuels. where periode = 'MENSUEL'; 4. Tous renseignements connus sur journaux ordonnés par type et pour chaque type par prix. select * from journal order by type, prix; 5. Prix minimum, moyen et maximum d'un journal. select min(prix), avg(prix), max(prix) 6. Codes des journaux dont le type est inconnu. where type is null; 7. Pour chaque type de journal, prix minimum, moyen et maximum. select type, min(prix), avg(prix), max(prix) from journal group by type; 8. Numéros des dépositaires dont la moyenne par livraison de quantité de journaux livrés est supérieure à 15. select n_dep from livraison group by n_dep having avg(qte_l) > 15; 9. Nombre des villes où sont domiciliés au moins 4 journaux. select count(distinct adr_j)from journal where adr_j in (select adr_j from journal group by adr_j having count(distinct code_j) >= 4 10. Codes des journaux livrés au dépositaire Les Brasseurs. select distinct code_j from livraison, depot 11. Titre de ces journaux. select distinct titre from journal, livraison, depot and journal.code_j=livraison.code_j

12. Nombre de ces journaux. select count(distinct titre), sum(qte_l) from journal, livraison, depot and journal.code_j=livraison.code_j 13. Codes et titres des journaux dont le prix est supérieur à deux fois le prix minimum. select distinct code_j, titre from journal where prix > (select 2*min(prix) from journal 14. Numéros des dépositaires qui reçoivent plusieurs journaux. select n_dep from livraison group by n_dep having count(distinct code_j) > 1; 15. Donner les journaux que le dépositaire 007 ne reçoit pas (sans minus). where code_j not in (select code_j from livraison where n_dep = '007' 16. Donner les journaux que le dépositaire 007 reçoit. select code_j from livraison where n_dep = '007'; Les questions qui suivent sont en plus par rapport au sujet de TD: 17. Nombre de journaux dans la base, et types de journaux. select count(distinct titre), count(distinct type) 18. Villes où sont domiciliés au moins 5 journaux. select adr_j from journal group by adr_j having count(distinct code_j) >= 5; 19. Codes des journaux livrés à Bures (2 manières). ou select distinct code_j from depot, livraison where depot.n_dep = livraison.n_dep and adr like 'BURES%'; select distinct code_j from livraison where n_dep in (select n_dep from depot where adr like 'BURES%'

20. Pour chaque journal repéré par son code la liste des numéros des dépositaires auxquels il est livré. select journal.code_j, n_dep from journal, livraison where journal.code_j = livraison.code_j order by journal.code_j;