TP 1 ORACLE : Client

Transcription

TP 1 ORACLE : Client
TP 1
ORACLE : Client-Fournisseur
1
Connexion à Oracle
Le serveur Oracle est sur une machine serveur sur laquelle on ne se connecte pas (à priori).
Chaque machine sous linux possède un client SQLPLUS (interpréteur de commandes SQL et module
d’Oracle). Comme l’éditeur de commandes sous SQLPLUS est ”ligne à ligne”, il est conseillé d’utiliser un
éditeur externe (exemple Kate) pour effectuer l’ensemble du travail demandé.
Pour se connecter (sur une base déjà créée lic), dans une fenêtre terminal lancer SQLPLUS par la commande
sqlplus login/login@venus/licence
Après le signe d’invite SQL>, taper les commandes SQL. Les minuscules ne sont pas différenciées des
majuscules pour ce qui concerne la syntaxe réservée.
L’interface SQLPLUS
L’exécutable SQLPLUS est un interpréteur/éditeur de commandes. Il peut interpréter plusieurs types de
commandes : les commandes propres à SQLPLUS et les commandes SQL (et PL/SQL) .
Les commandes propres à SQLPLUS ne sont pas terminées par un ”;” et possèdent des abréviations (mises
entre parenthèses). Quelques commandes SQLPLUS pour démarrer (nous en verrons d’autres ultérieurement).
• DESC <nomtable>
DESC signifie DESCRIBE en anglais. Cette commande permet d’avoir la description de la table <nomtable>
• HOST (!)
pour sortir temporairement de SQLPLUS et pouvoir exécuter des commandes Unix ; on retourne à
SQLPLUS par la commande exit.
• SPOOL <nomfichier>
......
SPOOL OFF
pour enregistrer la trace d’une session dans un fichier <nomfichier>.lst
• QUIT/EXIT
pour quitter SQLPLUS.
Les commandes SQL peuvent être saisies sur une ou plusieurs lignes, le point virgule obligatoire termine la
commande. Attention à la syntaxe qui est très rigoureuse. Voir l’exemple suivant : attention aux parenthèses,
virgules et surtout au point-virgule qui termine une commande.
SQL> create table fournisseurs
2 (nomf char(20),
3 adrsf char(50));
Table created.
1
2
Clients - Fournisseurs
Soit les schémas relationnels suivants :
• FOURNISSEURS(Nomf, Adressef ) : catalogue des fournisseurs ; Clé primaire Nomf
• PRIX(Nomf, Nomp, Cout) : catalogue donnant les produits de Nomp, leur fournisseur Nomf et leur coût
Cout; Clé primaire Nomf Nomp
• COMMANDES(Ncom, Nomc, Nomp, Qte) : chaque commande de numéro Ncom est passée par un client
Nomc et concerne une quantité Qte de produit Nomp ; Clé primaire Ncom
• CLIENTS(Nomc, Adrsc, Solde) : chaque client Nomc a une adresse Adrsc et un solde Solde; clé primaire
Nomc
Vous disposez d’un fichier (TP1 Clients Fournisseurs Init.sql ) contenant les lignes d’un premier ”script”
permettant de créer et d’instancier ce schéma de base. Copier ces lignes dans un fichier que vous nommerez
TP1.sql. Exécuter ce script dans la session SQL interactive en utilisant une des commandes suivantes :
• START <chemin complet du fichier TP1.sql>
• @<chemin complet du fichier TP1.sql>
3
Requêtes
3.1
Premiers pas
• Vérifier la définition de chaque table avec la commande DESC.
• Vérifier le contenu des tables créées avec SELECT * FROM <nomtable>;
• Tester quelques insertions complémentaires. Commentaires.
3.2
Requêtes de consultation
Réfléchir à la requête et transcrivez-la, d’abord en terme d’expression d’algèbre relationnelle puis en SQL.
• Nom des clients dont le solde est négatif ;
• Nom des fournisseurs qui proposent le produit ”brique” ou le produit ”parpaing” ;
• Nom et adresse des clients dont le nom commence par ”J” ;
• Nom et adresse des clients ayant commandé du produit ”brique”, la quantité commandée étant comprise
entre 5 et 10 ;
• Nom et coût moyen des articles proposés par les fournisseurs ;
• Nom et coût moyen des articles proposés par au moins deux fournisseurs ;
• Nom des produits dont le prix est > au coût moyen de tous les produits ;
• Nom des produits (et de leurs fournisseurs) qui sont proposés (par ces mêmes fournisseurs) à des coûts
supérieurs à leur coût moyen.
2
3.3
Requêtes de définition et de mises à jour
• Insérer les nouvelles commandes :
9, Paul, ciment, 12
10, Pierre, parpaing, 8
• Modifier l’adresse du client Jean qui devient 83000 Toulon;
• Les produits du fournisseur Samaco ont augmente de 15%, réaliser la mise à jour;
• Le fournisseur Samaco est racheté par la firme Technal d’adresse 69005 Lyon;
4
4.1
Aide succinte
Résumé des commandes SQL de manipulation des données
Dans la suite, les paramètres sont en minuscules et les mots clés en majuscules mais c’est une simple convention
d’écriture, SQLPLUS acceptant les mots clés en minuscules.
SELECT [ALL|DISTINCT] nomcol1, nomcol2, ...
FROM table1, ...
WHERE liste_conditions
GROUP BY nomcol3, nomcol4
HAVING liste_conditions;
INSERT INTO nomtable VALUES (valeur1, valeur2, ...);
INSERT INTO nomtable
SELECT . . . ;
UPDATE nomtable SET nomcol = expression WHERE condition;
DELETE [*] FROM nomtable WHERE condition;
Remarque : la condition du WHERE peut être une requête imbriquée...
3