Vous êtes sur la page 1sur 30

Oracle 9i

SQL et PL/SQL

Fac Simile
Ce fac simile prsente la table des matires, le
p^ramblue et le dbut du premier chapitre de
l'ouvrage.

Auteur
Razvan BIZO

GUIDE DE FORMATION

La marque TSOFT est une marque dpose.


La collection des guides de formation TSOFT est dite par la socit TSOFT.
Toutes les marques cites dans cet ouvrage sont des marques dposes par leurs propritaires respectifs
Ce livre nest pas le manuel Oracle et son contenu nengage pas Oracle.
Tous les efforts ont t faits par TSOFT pour fournir dans cet ouvrage une information claire et exacte
la date de parution. TSOFT nassume de responsabilits, ni pour son utilisation, ni pour les contrefaons
de brevets ou atteintes de tierces personnes qui pourraient rsulter de cette utilisation.

Ce pictogramme mrite une explidenseignement suprieur, provoquant


cation. Son objet est dalerter le lecteur
une baisse brutale des achats de livres
sur la menace que reprsente pour
et de revues, au point que la possibilit
lavenir de lcrit, particulirement dans
mme pour les auteurs de crer des
le domaine de ldition
uvres nouvelles et de les
DANGER
technique et universitaire, le
faire diter correctement est
dveloppement massif du
aujourdhui menace.
photocopillage.
Nous rappelons donc que
Le Code de la proprit
toute reproduction , partielle
intellectuelle du 1 er juillet
ou totale, de la prsente
1992 interdit en effet
publication est interdite sans
expressment la photoco pie
LE PHOTOCOPILLAGE autorisation du centre
usage collectif sans
franais dexploitation du
TUE LE LIVRE
autorisation des ayants
droit de copie (CFC, 20 rue
droits. Or, cette pratique sest
des Grands-Augustins, 75006 Paris.).
gnralise dans les tablissements

Avant-propos

Oracle est le systme de base de donnes le plus utilis au monde. Il fonctionne de


faon relativement identique sur tout type d'ordinateur. Ce qui fait que les
connaissances acquises sur une plate-forme sont utilisables sur une autre et que les
utilisateurs et dveloppeurs Oracle expriments constituent une ressource trs
demande. 9i
L'objectif de ce livre est de vous aider tirer le meilleur parti du langage SQL et
PL/SQL (procedural language / structured query langage), langage procdural qui
permet de traiter de manire conditionnelle les donnes retournes par un ordre SQL.
L'ouvrage prsente aussi l'ensemble des concepts et des mcanismes ncessaires au
dveloppement et l'administration d'applications dans le contexte d'Oracle9i.
Pour une bonne comprhension de l'ouvrage, il est souhaitable que le lecteur ait une
connaissance suffisante du modle relationnel et qu'il matrise un langage de
programmation.
Louvrage a t conu dans le but de prparer la certification Oracle9i Application
Developer OCA (Oracle Certified Associate). Avec ce niveau de certification, les
professionnels disposent dune base de connaissance qui leur permettra dintervenir
comme des dveloppeurs fonctionnels Oracle9i.
Pour obtenir cette certification vous avez besoin de passer les deux examens suivants :
Examen n1Z0-001 Introduction Oracle : SQL et PL/SQL
Examen n1Z1-147 Oracle9i : Programmer avec PL/SQL
Cet ouvrage vise surtout tre plus clair et plus agrable lire que les documentations
techniques, exhaustives et ncessaires mais ingrates, dans lesquelles vous pourrez
toujours vous plonger ultrieurement.
Par ailleurs, l'auteur a aussi voulu viter de ne fournir qu'une collection
supplmentaire de "trucs et astuces", mais il s'est plutt attach expliquer les
concepts et les mcanismes avant d'indiquer les procdures pratiques.
Dans la mesure o l'on dispose du matriel informatique ncessaire, il est important de
raliser les travaux pratiques, qui sont indispensables l'acquisition d'une comptence
relle, et qui permettent de comprendre rellement la manire dont le systme
fonctionne.

Tsoft Oracle 9i SQL et PL/SQL

Table des matires

PREAMBULE................................................................................................ P-1
MODULE 1: P RESENTATION

DE LENVIRONNEMENT .......................................1-1

Qu'est-ce qu' une base de donnes ? .......................................................................................1-2


Schma ..................................................................................................................................1-3
Table ......................................................................................................................................1-4
Intgrit d'une base de donnes .............................................................................................1-5
Le langage SQL.....................................................................................................................1-7
Les limites de SQL ................................................................................................................1-9
Le langage PL/SQL .............................................................................................................1-10
Architecture Client-Serveur .................................................................................................1-12
Qu'est-ce qu SQL*Plus ? .....................................................................................................1-13
Environnement SQL*Plus ...................................................................................................1-15
Environnement SQL*Plus (Suite) .......................................................................................1-16
Commandes SQL*Plus........................................................................................................1-17
Commandes SQL*Plus (Suite) ............................................................................................1-19
Commandes SQL*Plus (Suite) ............................................................................................1-21
Commandes SQL*Plus (Suite) ............................................................................................1-23
Atelier 1.1 ............................................................................................................................1-25

MODULE 2: INTERROGATION

DES DONNEES .................................................2-1

Lancement des requtes SQL ................................................................................................2-2


Grammaire SQL ....................................................................................................................2-3
Projection...............................................................................................................................2-4
Les constantes........................................................................................................................2-7
Atelier 2.1 ..............................................................................................................................2-8
Oprateur de concatnation :.................................................................................................2-9
Oprateurs arithmtique ......................................................................................................2-10
Oprateurs de type DATE ...................................................................................................2-12
Tsoft Oracle 9i SQL et PL/SQL

T-1

Table des matires

La valeur NULL..................................................................................................................2-13
La traitement de la valeur NULL ........................................................................................2-14
Atelier 2.2 ............................................................................................................................2-15
La slection ou restriction...................................................................................................2-16
Les oprateurs logiques .......................................................................................................2-17
Loprateur LIKE................................................................................................................2-20
Loprateur IS NULL ..........................................................................................................2-22
Atelier 2.3 ............................................................................................................................2-24
Les oprateurs logiques .......................................................................................................2-25
Les oprateurs AND et OR .................................................................................................2-27
Atelier 2.4 ............................................................................................................................2-29
Tri du rsultat d'une requte ................................................................................................2-30
La pseudocolonne ROWNUM ............................................................................................2-33
Table DUAL........................................................................................................................2-34
Atelier 2.5 ............................................................................................................................2-35

MODULE 3: LES FONCTIONS SQL ................................................................3-1


Expression SQL.....................................................................................................................3-2
Manipulation de chanes........................................................................................................3-3
Manipulation de chanes (suite) ............................................................................................3-5
Manipulation de chanes (suite) ............................................................................................3-8
Manipulation de chanes (suite) ..........................................................................................3-10
Atelier 3.1 ............................................................................................................................3-12
Fonctions de calcul arithmtique .........................................................................................3-15
Fonctions trigonomtriques.................................................................................................3-17
Fonctions arithmtiques darrondis .....................................................................................3-18
Atelier 3.2 ............................................................................................................................3-20
Manipulation des dates ........................................................................................................3-21
Atelier 3.3 ............................................................................................................................3-24
Les fonctions de conversion................................................................................................3-25
Atelier 3.4 ............................................................................................................................3-29
Les fonctions gnrales .......................................................................................................3-30
Atelier 3.5 ............................................................................................................................3-35

MODULE 4: G ROUPEMENT DES DONNEES .....................................................4-1


Fonctions Horizontales ....................................................................................................4-2
Fonctions Verticales ........................................................................................................4-3
Fonctions dagrgat...............................................................................................................4-4
Le groupe...............................................................................................................................4-7
La slection de groupe.........................................................................................................4-10

T-2

Tsoft Oracle 9i SQL et PL/SQL

Table des matires

Le groupe deux niveaux....................................................................................................4-12


Atelier 4.1 ............................................................................................................................4-13

MODULE 5: L ES REQUETES MULTITAB LES.....................................................5-1


Requtes multitables..............................................................................................................5-2
La jointure sans condition .....................................................................................................5-3
La jointure avec condition.....................................................................................................5-4
La jointure externe .................................................................................................................5-6
Lautojointure ........................................................................................................................5-8
Atelier 5.1 ..............................................................................................................................5-9
Les sous-requtes.................................................................................................................5-10
Sous-requte renvoyant une seule ligne ..............................................................................5-11
Sous-requte renvoyant plusieurs lignes .............................................................................5-12
Sous-requte renvoyant plusieurs expressions ....................................................................5-14
Sous-requte synchronise ..................................................................................................5-15
Sous-requte dans la clause FROM.....................................................................................5-17
Atelier 5.2 ............................................................................................................................5-18
Les oprateurs ensembliste ..................................................................................................5-19
Loprateur UNION ............................................................................................................5-21
Loprateur INTERSECT....................................................................................................5-22
Loprateur DIFFERENCE .................................................................................................5-23
Atelier 5.3 ............................................................................................................................5-24
SQL : 1999 ..........................................................................................................................5-25
Loprateur CROSS JOIN ...................................................................................................5-26
Loprateur NATURAL JOIN ............................................................................................5-27
Loprateur JOIN USING ...................................................................................................5-29
Loprateur JOIN ON..........................................................................................................5-30
Loprateur JOIN ON avec condition .................................................................................5-31
Loprateur OUTER JOIN ..................................................................................................5-32
Atelier 5.4 ............................................................................................................................5-33

MODULE 6: M ISE A JOUR

DES DONNEES.......................................................6-1

Mise jour des donnes ........................................................................................................6-2


Insertion des lignes ................................................................................................................6-3
Insertion dune ligne ..............................................................................................................6-4
Insertion de plusieurs lignes ..................................................................................................6-7
Modification des donnes ......................................................................................................6-8
Suppression des donnes .....................................................................................................6-11
Contraintes dintgrit .........................................................................................................6-12
Transactions .........................................................................................................................6-13
Dbut et fin de transaction...................................................................................................6-14
Tsoft Oracle 9i SQL et PL/SQL

T-3

Table des matires

Structuration de la transaction.............................................................................................6-18
Gestion des accs concurrents .............................................................................................6-21
Atelier 6.1 ............................................................................................................................6-23

MODULE 7: L ES OBJETS

DE BASE DE DONNEES ...........................................7-1

Objets de la base de donnes .................................................................................................7-2


Attribution des noms .............................................................................................................7-3
Cration dune table ..............................................................................................................7-6
Cration dune table temporaire ............................................................................................7-9
Types de donnes abstraits ..................................................................................................7-11
Cration dune table comme ..........................................................................................7-12
Atelier 7.1 ............................................................................................................................7-13
Dfinition de contraintes .....................................................................................................7-16
Dfinition de contraintes .....................................................................................................7-18
Atelier 7.2 ............................................................................................................................7-27
Modification dune table .....................................................................................................7-29
Modification dune contrainte .............................................................................................7-34
Suppression dune table ......................................................................................................7-37
Suppression de lignes..........................................................................................................7-38
Atelier 7.3 ............................................................................................................................7-39
Cration dune Vue .............................................................................................................7-41
Atelier 7.4 ............................................................................................................................7-45
Les index.............................................................................................................................7-46
Atelier 7.5 ............................................................................................................................7-49
Les squences ......................................................................................................................7-50
Cration dun synonyme .....................................................................................................7-52
Atelier 7.6 ............................................................................................................................7-53

MODULE 8: C ONTROLE

DES ACCES .............................................................8-1

Le contrle daccs................................................................................................................8-2
Cration d'un utilisateur ........................................................................................................8-3
Cration d'un rle ..................................................................................................................8-5
Gestion des privilges ...........................................................................................................8-8
Atelier 8.1 ............................................................................................................................8-11

MODULE 9: L A GENERATION DES SCRIPTS....................................................9-1


Dictionnaire de donnes........................................................................................................9-2
SQL*Plus ..............................................................................................................................9-4
Atelier 9.1 ..............................................................................................................................9-6
Variables................................................................................................................................9-7
Atelier 9.2 ............................................................................................................................9-11
T-4

Tsoft Oracle 9i SQL et PL/SQL

Table des matires

MODULE 10: PRESENTATION PL/SQL .......................................................10-1


Pourquoi PL/SQL ................................................................................................................10-2
Architecture PL/SQL...........................................................................................................10-3
Outils de dveloppement .....................................................................................................10-4
La syntaxe PL/SQL .............................................................................................................10-5
Structure de bloc ..................................................................................................................10-6
Bloc imbriqu ......................................................................................................................10-9
Sortie l'cran ...................................................................................................................10-10
Atelier 10.1 ........................................................................................................................10-12

MODULE 11: LES VARIABLES PL/SQL.......................................................11-1


Noms de variables ...............................................................................................................11-2
Types de donnes ................................................................................................................11-3
Types de donnes scalaires..................................................................................................11-4
Dclaration de variables ......................................................................................................11-7
Variables de liaison .............................................................................................................11-9
Visibilit des variables ......................................................................................................11-11
Types dfinis par l'utilisateur .............................................................................................11-13
Les enregistrements ...........................................................................................................11-14
Les tableaux.......................................................................................................................11-16
Variables bases ................................................................................................................11-19
La syntaxe SELECT ..........................................................................................................11-21
Atelier 11.1 ........................................................................................................................11-22

MODULE 12: LES STRUCTURES DE CONTROLE ............................................12-1


Instructions de contrle .......................................................................................................12-2
Structures conditionnelles ...................................................................................................12-3
Structures itratives .............................................................................................................12-6
Atelier 12.1 ..........................................................................................................................12-9

MODULE 13: LES CURSEURS......................................................................13-1


Les curseurs .........................................................................................................................13-2
Les curseurs explicites.........................................................................................................13-3
Les boucles et les curseurs ..................................................................................................13-8
Les curseurs FOR UPDATE .............................................................................................13-11
Atelier 13.1 ........................................................................................................................13-14

MODULE 14: LES EXCEPTIONS ...................................................................14-1


Gestion des erreurs ..............................................................................................................14-2
Les types dexceptions ........................................................................................................14-3
La section EXCEPTION .....................................................................................................14-4
Tsoft Oracle 9i SQL et PL/SQL

T-5

Table des matires

Les exceptions prdfinies ..................................................................................................14-7


Les exceptions anonymes ....................................................................................................14-9
Les exceptions utilisateur ..................................................................................................14-11
Propagation d'une exception .............................................................................................14-14
Atelier 14.1 ........................................................................................................................14-16

MODULE 15: LES

SOUS-PROGRAMMES......................................................15-1

Les sous-programmes..........................................................................................................15-2
Les blocs nomms ...............................................................................................................15-3
Les procdures.....................................................................................................................15-4
Les fonctions .......................................................................................................................15-7
La suppression des blocs...................................................................................................15-10
Les arguments (1) ..............................................................................................................15-12
Les arguments (2) ..............................................................................................................15-15
Les arguments (3) ..............................................................................................................15-18
Les blocs locaux................................................................................................................15-19
La surcharge de blocs ........................................................................................................15-21
Le dboguage des blocs.....................................................................................................15-22
Atelier 15.1 ........................................................................................................................15-24

MODULE 16: LES

PACKAGES.....................................................................16-1

Utilisation des packages......................................................................................................16-2


La spcification de package ................................................................................................16-4
Le corps de package ............................................................................................................16-6
Dclarations dans la spcification de package ....................................................................16-8
Dclarations dans le corps de package ..............................................................................16-11
La suppression de package ................................................................................................16-14
Atelier 16.1 ........................................................................................................................16-15

MODULE 17: LES DECLENCHEURS .............................................................17-1


Les types de triggers............................................................................................................17-2
La cration...........................................................................................................................17-4
Les dclencheurs LMD .......................................................................................................17-5
Le moment dexcution.......................................................................................................17-6
Le niveau dexcution.........................................................................................................17-8
Lutilisation :OLD et :NEW..............................................................................................17-10
Les prdicats......................................................................................................................17-13
Les dclencheurs INSTEAD OF .......................................................................................17-15
Atelier 17.1 ........................................................................................................................17-17

T-6

Tsoft Oracle 9i SQL et PL/SQL

Table des matires

MODULE 18: CORRECTION

DES EXERCICES ...............................................18-1

Atelier 1.1 ............................................................................................................................18-2


Atelier 2.1 ............................................................................................................................18-3
Atelier 2.2 ............................................................................................................................18-4
Atelier 2.3 ............................................................................................................................18-5
Atelier 2.4 ............................................................................................................................18-6
Atelier 2.5 ............................................................................................................................18-8
Atelier 3.1 ............................................................................................................................18-9
Atelier 3.2 ..........................................................................................................................18-11
Atelier 3.3 ..........................................................................................................................18-12
Atelier 3.4 ..........................................................................................................................18-13
Atelier 3.5 ..........................................................................................................................18-14
Atelier 4.1 ..........................................................................................................................18-15
Atelier 5.1 ..........................................................................................................................18-17
Atelier 5.2 ..........................................................................................................................18-19
Atelier 5.3 ..........................................................................................................................18-21
Atelier 5.4 ..........................................................................................................................18-22
Atelier 6.1 ..........................................................................................................................18-24
Atelier 7.1 ..........................................................................................................................18-27
Atelier 7.2 ..........................................................................................................................18-29
Atelier 7.3 ..........................................................................................................................18-31
Atelier 7.4 ..........................................................................................................................18-33
Atelier 7.5 ..........................................................................................................................18-34
Atelier 7.6 ..........................................................................................................................18-35
Atelier 8.1 ..........................................................................................................................18-36
Atelier 9.1 ..........................................................................................................................18-37
Atelier 9.2 ..........................................................................................................................18-38
Atelier 10.1 ........................................................................................................................18-39
Atelier 11.1 ........................................................................................................................18-40
Atelier 12.1 ........................................................................................................................18-41
Atelier 13.1 ........................................................................................................................18-43
Atelier 14.1 ........................................................................................................................18-45
Atelier 15.1 ........................................................................................................................18-47
Atelier 16.1 ........................................................................................................................18-49
Atelier 17.1 ........................................................................................................................18-52
Base de donnes exemples ................................................................................................18-54

INDEX...........................................................................................................I-1

Tsoft Oracle 9i SQL et PL/SQL

T-7

Prambule

Ce guide de formation a pour but de vous permettre d'acqurir une bonne


connaissance du langage SQL et du langage PL/SQL.

Support de formation
Ce guide de formation est idal pour tre utilis comme support lve dans une
formation se droulant avec un animateur dans une salle de formation, car il permet
l'lve de suivre la progression pdagogique de l'animateur sans avoir prendre
beaucoup de notes. L'animateur, quant lui, appuie ses explications sur les
diapositives figurant sur chaque page de l'ouvrage.
Cet ouvrage peut aussi servir de manuel d'autoformation car il est rdig la faon
d'un livre, il est complet comme un livre, il va beaucoup plus loin qu'un simple
support de cours. De plus, il inclut une quantit d'ateliers conus pour vous faire
acqurir une bonne pratique de ces deux langages.

Les certifications Oracle


Le programme Dveloppeur dApplication Oracle9i commence au niveau de la
certification Oracle avec le Certified Oracle Associate pour Oracle9i PL/SQL
Developer. Avec ce niveau de certification, les professionnels disposent dune base de
connaissances qui leur permettra dintervenir comme des dveloppeurs fonctionnels
Oracle9i.
Vous devez passer les deux examens suivants pour obtenir votre certific at Oracle9i
Application Developer OCA (Oracle Certified Associate) :
Examen n1Z0-007 Introduction Oracle9i : SQL
ou
Examen n1Z0-001 Introduction Oracle : SQL et PL/SQL
Examen n1Z1-147 Oracle9i : Programmer avec PL/SQL

Tsoft Oracle 9i SQL et PL/SQL

P-1

Prambule

Progression pdagogique

Ce cours comprend 17 chapitres, il est prvu pour durer quatre dix jours avec un
animateur pour des personnes n'ayant aucune connaissance pralable du sujet.
Suivant l'exprience des stagiaires et le but poursuivi, l'instructeur passera plus ou
moins de temps sur chaque module.
Attention : l'apprentissage par cur des chapitres n'est d'aucune utilit pour passer
les examens. Une bonne pratique et beaucoup de rflexion seront rellement utiles
ainsi que la lecture des aides en ligne.

Prsentation de lenvironnement
Ce chapitre vous propose une prise en main de linterface de base de donnes mise la
disposition des dveloppeurs dapplications SQL et PL/SQL ainsi que de faire
connaissance avec les composants constitutifs dune base de donnes relationnelle.

Interrogation des donnes


Dans ce chapitre vous pouvez dcouvrir la syntaxe et la grammaire SQL ainsi que les
diffrents oprateurs.

Les fonctions SQL


Le module explique lutilisation des fonctions pour enrichir les requtes de base et
permettre de manipuler les donnes stockes dans la base.

Groupement des donnes


SQL fournit une srie de fonctions dites "verticales" pour les regroupements et le
calcul cumulatif. Les fonctions verticales ou les fonctions dagrgat, sont utilises
pour le calcul cumulatif des valeurs par rapport un regroupement ou pour lensemble
des lignes de la requte.

Les requtes multitables


Nous examinerons dans cette section comment coupler les lignes de deux ou plusieurs
tables afin d'en extraire des donnes corrles.

P-2

Tsoft Oracle 9i SQL et PL/SQL

Prambule

Mise a jour des donnes


Ce chapitre prsente le Langage de Manipulation de Donne ou LMD, (UPDATE,
INSERT et DELETE), qui permet d'effectuer les trois types de modifications (mise
jour de lignes, ajout de lignes et suppression de lignes slectionnes).

Les objets de base de donnes


Le langage de dfinition de donnes ou LDD se compose d'instructions SQL utilises
pour crer, modifier et supprimer des objets de base de donnes.

Contrle des accs


Oracle prvoit des fonctionnalits de scurit mises en oeuvre en accordant ou en
refusant des privilges des utilisateurs individuels ou des groupes d'utilisateurs.

La gnration des scripts


Ce chapitre prsente les mcanismes d'accs ces informations travers les vues du
dictionnaire de donnes.

Prsentation PL/SQL
Ce chapitre prsente lenvironnement de dveloppement et lintgration du PL/SQL,
dans Oracle .

Les variables PL/SQL


Ce chapitre dcrit les diffrents types de donnes utilisables, ainsi que les faons de
les nommer.

Les structures de contrle


Les structures qui permettent de contrler le flux d'excution sont essentielles dans
n'importe quel langage de programmation. Le langage PL/SQL offre les structures de
contrle, conditionnelles et itratives, prsentes dans tous les langages de
programmation.

Les curseurs
L'une des plus importantes caractristiques du PL/SQL est la possibilit de manipuler
les donnes ligne par ligne.

Les exceptions
Ce chapitre explique comment dfinir, dclencher et traiter les exceptions en PL/SQL.

Les sous-programmes
Le langage PL/SQL est un langage algorithmique complet ; il bnficie de la
possibilit de structuration du code, avec un procd de dcomposition de gros blocs
de code en plus petits modules qui peuvent tre appels par d'autres modules.

Tsoft Oracle 9i SQL et PL/SQL

P-3

Prambule

Les packages
Un package est une structure PL/SQL qui permet de stocker ensemble des objets
logiquement associs et comprend deux parties distinctes : la spcification et le corps,
qui sont stocks sparment dans le dictionnaire de donnes.

Les dclencheurs
Les dclencheurs sont des blocs PL/SQL nomms comprenant des sections
dclaratives, excutable s et de gestion des exceptions et ils doivent tre stocks dans la
base de donnes sous forme d'objets autonomes.

P-4

Tsoft Oracle 9i SQL et PL/SQL

Prambule

Conventions utilises dans louvrage

Les conventions utilises dans cet ouvrage sont :

MAJUSCULES
Caractre courrier

Les ordres SQL ou tout identifiant ou mot cl.


Utilis pour les mots cl, les noms des tables, les noms
des champs, les noms des blocs etc....

[ ]

Linformation qui se trouve entre les crochets est


facultative.

{ }
|
...

Liste de choix exclusive.


Sparateur dans une liste de choix.
Utiliss dans les zones de script, les points de
suspension indiquent que la suite est non significative
pour le sujet trait.

Tsoft Oracle 9i SQL et PL/SQL

P-5

Base de donnes
relationnelle.
SQL et PL/SQL
SQL*Plus

Module 1: Prsentation
de lenvironnement
Objectifs
A la fin de ce module, vous serez mme deffectuer les tches suivantes :

Dcrire les concepts de base de donnes relationnelle.


numrer les composants constitutifs dune base de donnes relationnelle.
Expliquer le mode de communication du serveur Oracle avec les clients.
Dcrire les interfaces de base de donnes mise la disposition des dveloppeurs
dapplications SQL et PL/SQL.

Contenu
Qu'est-ce qu'une base de donnes ? 1-2

Le langage PL/SQL

1-10

Schma

1-3 Architecture Client Serveur

1-12

Table

1-4 Qu'est-ce que SQL*Plus ?

1-13

Intgrit d'une base de donnes

1-5 Environnement SQL*Plus

1-15

Le langage SQL

1-7 Commandes SQL*Plus

1-17

Les limites de SQL

1-9 Atelier 1

1-25

Tsoft/Eyrolles Oracle 9i SQL et PL/SQL

1-1

Chapitre 1 : Prsentation de lenvironnement

Qu'est-ce qu'une base de donnes ?


Qu'est-ce qu'une base de donnes ?
SGBDR

TSOFT - ORACLE 9i SQL et PL*SQL

Module 1 : Prsentation de lenvironnement - Diapo 1. 1

On peut dfinir une base de donnes simplement comme un stockage permanent de


donnes dans un ou plusieurs fichiers. Une base de donnes contient non seulement
des donnes, mais aussi leur description. Un systme de gestion de base de donnes
est un logiciel qui contrle ces donnes et qui inclut la gestion des lments suivants :
uniformit de donnes ;
gestion de l'utilisateur et de la scurit ;
fiabilit ;
intgrit de donnes.
Toutes les manipulations s'effectuent au moyen du langage SQL (structured query
language). Ce langage permet l'utilisateur de demander au SGBD de crer des tables,
de leur ajouter des colonnes, d'y ranger des donnes et de les modifier, de consulter les
donnes, de dfinir les autorisations d'accs. Les instructions de consultation des
donnes sont essentiellement de nature prdicative. On y dcrit les proprits des
donnes qu'on recherche, notamment en spcifiant une condition de slection, mais on
n'indique pas le moyen de les obtenir, dcision qui est laisse l'initiative du SGBD.
Cette section prsente les lments fondamentaux d'une base de donnes :

1-2

le schma d'une base de donnes ;


les tables ;
les champs et colonnes ;
les enregistrements et lignes ;
les cls ;
les relations ;
les types de donnes.

Tsoft/Eyrolles Oracle 9i SQL et PL/SQL

Chapitre 1 : Prsentation de lenvironnement

Schma
Schma
Propritaire
du schma

Tables

Index

Procdures
Schma

Vues

Contraintes

TSOFT - ORACLE 9i SQL et PL*SQL

Module 1 : Prsentation de lenvironnement - Diapo 1. 2

Un schma est tout simplement un groupe d'objets d'une base de donnes qui sont
apparents et relis entre eux. La table constitue l'lment le plus fondamental d'un
schma de base de donnes.
D'autres types d'lments peuvent rsider dans un schma :
des index,
des contraintes,
des vues,
des procdures,
...
Le propritaire du schma dispose d'un accs permettant de manipuler la structure de
n'importe quel objet du schma.
NOTE

Un schma ne reprsente pas une personne, mme s'il est associ un compte
utilisateur hberg dans la base de donnes.

Tsoft/Eyrolles Oracle 9i SQL et PL/SQL

1-3

Chapitre 1 : Prsentation de lenvironnement

Table
Table
Table

Une ligne ou enregistrement

Une colonne ou champ


TSOFT - ORACLE 9i SQL et PL*SQL

Module 1 : Prsentation de lenvironnement - Diapo 1. 3

Une table sert stocker les donnes auxquelles l'utilisateur doit accder. C'est l'unit
fondamentale de stockage physique des donnes dans une base. Gnralement, c'est
aux tables que font rfrence les utilisateurs pour accder aux donnes. Une base peut
tre constitue de plusieurs tables relies entre elles. Une table contient un ensemble
fixe de colonnes.

Colonnes
Une colonne, ou champ reprsente une partie d'une table et constitue la plus petite
structure logique de stockage d'une base de donnes. Chaque colonne possde un nom
ainsi quun type de donne, qui dterminent ses caractristiques spcifiques. Dans la
reprsentation d'une table, une colonne est une structure verticale qui contient des
valeurs sur chaque ligne de la table.

Lignes
Une ligne de donnes est une collection de valeurs inscrites dans les colonnes
successives d'une table, l'ensemble formant un enregistrement unique. Par exemple, la
table EMPLOYES compte 9 enregistrements ou lignes de donnes. Le nombre de
lignes augmente ou diminue en fonction des ajouts et suppressions des employs.

Types de donnes
Un type de donne dtermine lensemble des valeurs quil est possible de stocker dans
une colonne de la base de donnes. Une colonne se voit attribuer un type de donnes
et une longueur. Pour les colonnes de type number, il est possible de spcifier des
caractristiques additionnelles relatives la prcision et lchelle. La prcision
dtermine le nombre total de chiffres que peut prendre la valeur numrique, lchelle
le nombre de chiffre que peut prendre la partie dcimale. Par exemple, number
(10,2) spcifie une colonne dix chiffres, avec deux chiffres aprs la virgule. La
prcision par dfaut (maximale) est de trente-huit chiffres.

1-4

Tsoft/Eyrolles Oracle 9i SQL et PL/SQL

Chapitre 1 : Prsentation de lenvironnement

Intgrit d'une base de donnes


Intgrit d'une base de donnes

Cl Primaire = Cl trangre

TSOFT - ORACLE 9i SQL et PL*SQL

Module 1 : Prsentation de lenvironnement - Diapo 1. 4

L'intgrit des donnes garantit que les donnes de la base sont exactes, en d'autres
termes qu'elles vrifient des rgles d'intgrit exprimes sous la forme de contraintes
sur les colonnes. Ces contraintes valident les valeurs des donnes places dans la base,
garantissent l'absence de donnes dupliques ou le respect des rgles de gestion aprs
modification ou ajout de donnes. Elles peuvent tre mises en place aussi bien au
niveau de la colonne qu'au niveau de la table.
Durant la conception d'une base de donnes, les rgles d'intgrit sont d'abord
intgres travers l'utilisation de contraintes. Sur le plan technique, les contraintes
d'une base de donnes sont constitues :

des cls primaires ;


des cls trangres ;
des contraintes uniques ;
des contraintes de contrle ;
de la prcision et du nombre de dcimales des donnes ;

NULL / NOT NULL.


Deux tables peuvent tre relies entre elles si les valeurs d'une colonne dpendent des
valeurs d'une colonne d'une autre table, une telle relation est appele parent/enfant.
L'intgrit rfrentielle garantit que les donnes de tables relies sont cohrentes et
synchronises. Ces donnes doivent vrifier des rgles exprimes sous la forme de
contraintes rfrentielles. La reprsentation de ces contraintes ncessite la dfinition
de cls. Une cl est une valeur de colonne d'une table, ou une combinaison de valeurs
de colonnes, qui permet d'identifier une ligne de cette table ou d'tablir une relation
avec une autre table. Il existe deux types de cls : primaires et trangres.
La prsentation faite dans ce module concerne les contraintes principales, pour les
autres contraintes et pour plus de dtails, rapportez vous la cration des tables.

Tsoft/Eyrolles Oracle 9i SQL et PL/SQL

1-5

Chapitre 1 : Prsentation de lenvironnement

Cls primaires
Une cl primaire rend une ligne de donnes unique dans une table. Elle sert
gnralement joindre des tables apparentes ou interdire la saisie d'enregistrements
dupliqus. Par exemple, le numro de Scurit sociale d'un employ est considr
comme la cl primaire idale car il est unique.
ATTENTION

Une table ne peut comporter qu'une seule cl primaire , mme lorsque celle -ci est
constitue d'une combinaison de plusieurs colonnes.

Contrainte unique
Il est possible de spcifier une contrainte unique pour une colonne de cl non primaire
afin de garantir que toutes les valeurs de cette colonne seront uniques. Par exemple,
une contrainte unique conviendra une colonne de type numro de Scurit sociale.
Une entreprise de tlphonie peut appliquer une contrainte unique la colonne
PHONE_NUMBER, car les clients ne doivent possder que des numros de tlphone
uniques.

Cls trangres
Une cl trangre d'une table rfrence une cl primaire d'une autre table. Elle est
dfinie dans des tables enfant et assure qu'un enregistrement parent a t cr avant un
enregistrement enfant et que l'enregistrement enfant sera supprim avant
l'enregistrement parent.
Limage montre comment s'appliquent les contraintes de cls trangre et primaire. La
colonne NO_FOURNISSEUR de la table PRODUITS rfrence la colonne
NO_FOURNISSEUR de la table FOURNISSEURS. FOURNISSEURS est la table
parent et PRODUITS la table enfant. Pour crer un enregistrement dans la table
PRODUITS il faut que le NO_FOURNISSEUR existe d'abord dans la table
FOURNISSEURS.

Clause NOT NULL


Si vous examinez la table COMMANDES (voir Annexe 1), vous pouvez remarquer une
clause NOT NULL pour les colonnes DATE_ENVOI et PORT.
Cette clause signifie que la base n'acceptera pas l'insertion d'une ligne ne comportant
pas de valeur pour ces colonnes. En d'autres termes, il s'agit de champs obligatoires.
La clause NOT NULL est synonyme d'obligation. Une colonne dfinie avec cette clause
ne sera jamais vide.

Dcouvrez la suite de ce chapitre en commandant l'ouvrage Tsoft complet.


Oracle 9i SQL et PL/SQL Rfrence TS0048
Liste des distributeurs sur le site Internet : Tsoft.fr

1-6

Tsoft/Eyrolles Oracle 9i SQL et PL/SQL

Chapitre 1 : Prsentation de lenvironnement

Atelier 1.1
Atelier 1.1

Lancement du SQL*Plus

Connexion et Dconnexion aprs lancement

Utilisation de SQL*Plus

Dure : 5 minutes
TSOFT - ORACLE 9i SQL et PL*SQL

Module 1 : Prsentation de lenvironnement - Diapo 1. 16

TP
Le but du TP est lutilisation du SQL*Plus et la mise en pratique des ses commandes.

Exercice n 1
Dmarrez SQL*Plus dans les deux environnements, ligne de commande et Windows,
avec les paramtres fournis par ladministrateur Oracle lors de la configuration de
votre poste :
Nom dutilisateur
Mot de passe
Chane de connexion (le nom du service)

Exercice n 2
Redirigez les sorties vers en fichier et excutez les commandes suivantes :

Tsoft/Eyrolles Oracle 9i SQL et PL/SQL

1-7

Avis du lecteur

Vos critiques et suggestions sont


indispensables !
TSOFT fait la mise jour de ses ouvrages tous les trimestres et mme plus si lexigence sen fait sentir.
Nous comptons sur vous pour nous faire part de toute correction effectuer ou de toute amlioration
apporter.
Vous avez choisi les ouvrages TSOFT pour vous former ou former dautres personnes. Vous
tes donc les premiers concerns pour qu votre prochaine commande, le guide de
formation ait t rectifi si ncessaire ou complt sil le faut.
Titre de louvrage :............................................................................................................
Date dachat ou dentre en possession de louvrage : ........................................................
Erreurs releves (notez les pages concern es)

Sujets ajouter (prcisez ventuellement le chapitre)

Critiques et suggestions

M. Mme Mlle ............................................................Prnom..........................................


Socit .......................................................................Profession......................................
Adresse............................................................................................................................
........................................................................................................................................
Code postal............... Ville ......................................................Pays ..................................
A photocopier ou dcouper et envoyer :
TSOFT Service lecteurs 10 rue du Colise 75008 Paris

www.tsoft.fr
Tsoft Oracle 9i SQL et PL/SQL

Guide TSOFT
Oracle 9i SQL et PL/SQL
Rfrence : TS0048
Juin 2003