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