travaux pratiques en sql
Download
Skip this Video
Download Presentation
Travaux Pratiques en SQL

Loading in 2 Seconds...

play fullscreen
1 / 50

Travaux Pratiques en SQL - PowerPoint PPT Presentation


  • 148 Views
  • Uploaded on

Travaux Pratiques en SQL. Eric Vyncke [email protected] http://www.hec.be/~evyncke/cours Dernière mise à jour: 27 février 2004. Table des Matières. MySQL Utilisation de MySQL sur Linux Utilisation d’HyperTerminal pour Linux Plus d’info sur le serveur omega.hec.be

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Travaux Pratiques en SQL' - thelma


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
travaux pratiques en sql

Travaux Pratiques en SQL

Eric Vyncke

[email protected]

http://www.hec.be/~evyncke/cours

Dernière mise à jour: 27 février 2004

table des mati res
Table des Matières
  • MySQL
  • Utilisation de MySQL sur Linux
  • Utilisation d’HyperTerminal pour Linux
  • Plus d’info sur le serveur omega.hec.be
  • Utilisation de MySQL Front sur Windows
  • Description de la BD SUMMIT
  • Liste d’exercices optionnels
outils sgbd sql disponibles
Outils SGBD SQL Disponibles
  • Les travaux pratiques se déroulent soit:
    • sur MySQL sur le serveur HEC disponible à partir de n’importe quel PC connecté à Internet (soit à l’école soit chez vous)
    • Sur MySQL installé sur votre PC Windows/Linuxhttp://www.mysql.com/downloads/
    • Sous Windows, intégration avec serveur Web et PHPhttp://www.easyphp.org/index.php3?lang=fr
d marrage de mysql sur linux 1
Démarrage de MySQL sur Linux /1
  • MySQL est un programme tournant sur un serveur Linux partagé et accessible depuis l’Internet
  • Sélectionner Démarrer -> Exécuter
  • Entrer telnet omega.hec.be
  • Utiliser votre nom d’utilisateur email et le mot de passe email (identiques à ceux de Windows) pour:

Login: utilisateur(suivi de <Enter>)

Password: mot de passe(n’apparait pas à l’écran, suivi de <Enter>)

d marrage de mysql sur linux 2
Démarrage de MySQL sur Linux /2
  • Le prompt standard de Linux/Unix apparait et vous pouvez exécuter des commandes Linux:
    • afficher le contenu du répertoire: ls -al
    • afficher le répertoire courant: pwd
    • changer de répertoire: cd nomderépertoire
    • afficher le contenu d’un fichier: more nomdefichier
    • terminer: exit
    • envoyer un fichier à une adresse e-mail mail -s “Fichier” adresseemail < nomdefichier
d marrage de mysql sur linux 3
Démarrage de MySQL sur Linux /3

Nom de la base de données

  • Démarrez MySQL sans journal

mysql -p –u utilisateur base

mysql –p –u test test

  • Démarrez MySQL avec un journal: mysql.log

mysql –p –u summit –-tee=mysql1.logsummitIl est conseillé de numéroter les divers journaux, par exemple mysql5.log pour le 5ème cours

  • Et entrez le mot de passe de la base de donnée au prompt:Enter password: (attention aucun \'*\' n\'est affiché)

Nom de l\'utilisateur

trucs pour mysql
Trucs pour MySQL
  • La touche flèche vers le haut permet de rappeler la commande précédente (à chaque nouvelle pression la commande précédente est affichée)
  • Les flèches vers la droite et la gauche permettent de se déplacer dans la commande
  • Ne pas oublier de terminer la commande par “;” et ENTREE
  • Toutes les commandes entrées sont journalisées dans le fichier caché .mysql_history
terminer mysql
Terminer MySQL
  • Retourner au prompt de Linux: exit
  • Terminer le programme Telnet: exit
utilisation d hyperterminal 1
Utilisation d’Hyperterminal /1
  • Sur Windows 2000 (notamment aux HEC), un programme de remplacement à Telnet existe: Hyperterminal
  • Pour le démarrer:
    • Démarrer/Programmes/Accessoires/Communications/Hyperterminal
    • Sinon, cliquer sur l’icône Omega du bureau
hyperterminal 2
Hyperterminal /2
  • Entrer un nom pour cette nouvelle configuration, par exemple ‘Omega’
  • Choisir une icône (n’importe laquelle)
hyperterminal 3
Hyperterminal /3
  • Sélectionner TCP/IP comme moyen de connexion
  • L’adresse hôte doit être omega.hec.be
  • La porte 23
hyperterminal 5
Hyperterminal /5
  • Sauver la configuration sur votre bureau
    • Fichier/Enregistrer sous…
    • Sauver le fichier omega.ht sur le bureau
  • A faire uniquement la première fois
utilisation du bloc note et mysql
Utilisation du Bloc Note et MySQL
  • Il est conseillé de démarrer le bloc-note
    • Démarrer/Programmes/Accessoire/Bloc note
    • Ou Démarrer/Exécuter puis notepad
  • Puis de préparer les requêtes SQL dans le bloc-note, de les copier et les coller
    • Hyperterminal: Edition/Coller
    • Telnet: cliquer dans le fenêtre avec le bouton droit
  • A la fin du cours, il est possible de sauver le contenu du bloc-note sur Z: ou Mes Documents
qq notes suppl mentaires
Qq notes supplémentaires
  • Depuis les PC HEC, les fichiers de votre répertoire Linux par défaut (votre home) sont disponibles sur Z:
      • Pour impression
      • Pour transfert
  • En dehors de Z:, vous pouvez faire la même chose de n’importe où sur Internet (cybercafé, domicile, …)
quelques notes sur omega
Quelques notes sur omega
  • Omega (ou omega.hec.be) est un serveur Linux avec plusieurs services:
    • mySQL: pour le cours et les besoins de l\'école
    • En IPv6 (génération suivante de TCP/IP)
    • Avec LDAP (répertoire): http://directory.hec.be
    • Avec serveur web (y compris pour les pages des étudiants) http://www.students.hec.be
    • Serveur de fichiers: \\omega\homes
omega et le courier lectronique
Omega et le courier électronique
  • Tout les étudiants ont une adresse email du genre [email protected]
  • Sans publicité et gratuite
  • Interface web comme hotmailhttp://webmail.students.hec.be
utilisation de mysql front

Utilisation de MySQL Front

Interface graphique SQL sur Windows

mysql front
MySQL Front
  • MySQLFront
    • Logiciel Windows
    • Version 2.0 gratuite (voir les documents du cours SI06 sur campus.hec.be)
    • Version 3.0 payante: http://www.mysqlfront.de/
  • Mode client-serveur
    • Interface graphique sur votre PC
    • Vrai serveur de base de données: MySQL sur omega.hec.be
    • Communication par réseau TCP/IP (y compris de chez vous)
mysql front 1 re connexion 3
MySQL Front 1ère Connexion /3

Nom d’utilisateur

Mot de passe. Ici summit

Nom de la base de données

mysql front l cran
MySQL Front: l’écran…

Structure de la base de données

Historique des

Requêtes SQL

mysql front contenu d une table
MySQL Front: contenu d’une table
  • Cliquer sur le nom d’une table
  • Cliquer sur le taquet data
mysql front requ te sql
MySQL Front: Requête SQL
  • Cliquer sur le taquet SQL Query
  • Entrer une instruction SQL
  • Cliquer sur le triangle pour executer TOUTES les instructions SQL du panneau
mysqlfront quelques astuces
MySQLFront: Quelques Astuces
  • MYSQLFront v2.0 est gratuit mais a quelques bugs…
    • Notamment: ‘permission denied’, il faut alors cliquer dans le panneau gauche sur une autre table, puis recliquer sur la taquet ‘SQL Query’
  • F5 permet de rafraîchir le contenu de la table ou de la base
  • F9 permet d’exécuter TOUTES les requêtes du panneau d’entrée SQL
base de donn es summit
Base de données: SUMMIT
  • La base de données summit est disponible pour les travaux pratiques
  • Summit aide à gérer un ensemble de magasins d\'articles de sport (société américaine)
  • A des fins de sécurité, il est impossible d\'ajouter, de modifier ou d\'effacer des données
  • Pour se connecter à cette base:

mysql –p –u summit –-tee=mysql1.log summit

(le mot de passe est summit)

sch ma de la base de donn es

REGION

TITLE

DEPT

ORD

CUSTOMER

EMP

Id

name

Id

name

region_id

title

Id

customer_id

date_ordered

date_shipped

sales_rep_id

total

payment_type

order_filled

Id

last_name

first_name

user_id

start_date

comments

manager_id

title

dept_id

salary

commission_pct

Id

name

phone

address

city

state

country

zip_code

credit_rating

sales_rep_id

region_id

comments

ITEM

Ord_id

item_id

product_id

price

quantity

quantity_shipped

PRODUCT

Id

name

short_desc

suggested_whlsl_price

whlsl_units

WAREHOUSE

INVENTORY

Id

region_id

address

city

state

country

zip_code

manager_id

Product_id

warehouse_id

amount_in_stock

reorder_point

max_in_stock

out_of_stock_explanation

restock_date

Schéma de la base de données
customer
CUSTOMER
  • CREATE TABLE customer
  • (id NUMERIC(7,0) NOT NULL,
  • name VARCHAR(50) NOT NULL,
  • phone VARCHAR(25),
  • address VARCHAR(255),
  • city VARCHAR(30),
  • state VARCHAR(20),
  • country VARCHAR(30),
  • zip_code VARCHAR(75),
  • credit_rating VARCHAR(9),
  • sales_rep_id NUMERIC(7,0),
  • region_id NUMERIC(7,0),
  • comments VARCHAR(255))
slide36
DEPT
  • CREATE TABLE dept
  • (id NUMERIC(7,0)NOT NULL,
  • name VARCHAR(25)NOT NULL,
  • region_id NUMERIC(7,0))
slide37
EMP
  • CREATE TABLE emp
  • (id NUMERIC(7,0)NOT NULL,
  • last_name VARCHAR(25)NOT NULL,
  • first_name VARCHAR(25),
  • userid VARCHAR(8),
  • start_date DATE,
  • comments VARCHAR(255),
  • manager_id NUMERIC(7,0),
  • title VARCHAR(25),
  • dept_id NUMERIC(7,0),
  • salary NUMERIC(11, 2),
  • commission_pct NUMERIC(4, 2))
inventory
INVENTORY
  • CREATE TABLE inventory
  • (product_id NUMERIC(7,0) NOT NULL,
  • warehouse_id NUMERIC(7,0) NOT NULL,
  • amount_in_stock NUMERIC(9,0),
  • reorder_point NUMERIC(9,0),
  • max_in_stock NUMERIC(9,0),
  • out_of_stock_explanation VARCHAR(255),
  • restock_date DATE)
slide39
ITEM
  • CREATE TABLE item
  • (ord_id NUMERIC(7,0) NOT NULL,
  • item_id NUMERIC(7,0) NOT NULL,
  • product_id NUMERIC(7,0) NOT NULL,
  • price NUMERIC(11, 2),
  • quantity NUMERIC(9,0),
  • quantity_shipped NUMERIC(9,0))
slide40
ORD
  • CREATE TABLE ord
  • (id NUMERIC(7,0) NOT NULL,
  • customer_id NUMERIC(7,0) NOT NULL,
  • date_ordered DATE,
  • date_shipped DATE,
  • sales_rep_id NUMERIC(7,0),
  • total NUMERIC(11, 2),
  • payment_type VARCHAR(6),
  • order_filled VARCHAR(1))
product
PRODUCT
  • CREATE TABLE product
  • (id NUMERIC(7,0) NOT NULL,
  • name VARCHAR(50) NOT NULL,
  • short_desc VARCHAR(255),
  • longtext_id NUMERIC(7,0),
  • image_id NUMERIC(7,0),
  • suggested_whlsl_price NUMBER(11, 2),
  • whlsl_units VARCHAR(25))
region
REGION
  • CREATE TABLE region
  • (id NUMERIC(7,0) NOT NULL,
  • name VARCHAR(50))
title
TITLE
  • CREATE TABLE title
  • (title VARCHAR(25))
warehouse
WAREHOUSE
  • CREATE TABLE warehouse
  • (id NUMERIC(7,0) NOT NULL,
  • region_id NUMERIC(7,0) NOT NULL,
  • address LONG,
  • city VARCHAR(30),
  • state VARCHAR(20),
  • country VARCHAR(30),
  • zip_code VARCHAR(75),
  • phone VARCHAR(25),
  • manager_id NUMERIC(7,0))
exercices sur un tableau 1
Afficher les noms des clients habitant aux ‘USA’

Afficher les noms des clients contenant la lettre ‘k’

Afficher le total des bons de commande (quantité * prix) en USD (en supposant que la base contient les prix en USD)

Afficher le total des bons de commande (quantité * prix) en EUR

Combien de clients existent dans la base de données ?

Exercices sur un tableau /1
exercices sur un tableau 2
Afficher pour chaque bon de commande: son numéro ainsi que le nombre de lignes (de la table ITEM) qui le composent

Afficher le nombre de produits dont le nom (champ name) contient ‘boot’

Afficher le nombre d’employés par n° de département

Afficher, pour chaque pays, le nom du pays ainsi que le nombre de clients de ce pays.

Exercices sur un tableau /2
exercices sur plusieurs tableaux 1
Afficher pour chaque employé: son nom, son prénom, le nom de son département et le nom de la région

Afficher pour chaque nom de région, le nombre d\'employés travaillant dans cette région

Afficher pour chaque employé, son nom ainsi que le nom de son supérieur (utilisez deux abréviations différentes pour le même tableau)

Exercices sur plusieurs tableaux /1
exercices sur plusieurs tableaux 2
Afficher le nom de tous les clients ayant commandé des produits contenant le mot ‘ Ski ’

Quels sont les noms des produits qui sont entreposés en ‘ Europe ’ ?

Afficher pour chaque gestionnaire d’entrepôts le nombre de produits (la somme de amount_in_stock) dans ses entrepôts

Afficher pour chaque entrepôt, son pays, le nom de son gestionnaire ainsi que le nombre de produits en rupture de stock (reorder_point >= amount_in_stock)

Exercices sur plusieurs tableaux /2
exercices sur plusieurs tableaux 3
Afficher pour chaque client: son nom, tous ses numéros de bons de commande ainsi que le montant HTVA et TVAC (21%) de ceux-ci

Quels sont les noms de clients habitant dans la même ville (et pays!) qu’un entrepôt ? (dans ce cas, il faut utiliser une relation qui n’est pas indiquée par des flèches rouges)

Afficher pour chaque employé, son nom, son salaire annuel ainsi que la commission due sur tous les bons de commandes qu’il a reçu.

Exercices sur plusieurs tableaux /3
ad