
🧪 Envie de pratiquer ? Exécutez les exemples de cet article dans notre SQL Playground gratuit — aucun logiciel à installer.
Ce que couvre cette video
Une base de donnees Oracle ne se resume pas a des tables. Elle contient une dizaine de types d’objets, chacun avec un role precis. Comprendre qui fait quoi avant d’ecrire la moindre requete evite beaucoup de confusion par la suite. Voici le recapitulatif ecrit de la video, utilisable seul.
Les objets d’une base Oracle, en un tableau
| Objet | A quoi il sert | Commande de creation |
|---|---|---|
| Table | Stocke physiquement les donnees, en lignes et colonnes | CREATE TABLE |
| Vue | Requete enregistree qui s’utilise comme une table ; ne stocke rien | CREATE VIEW |
| Index | Accelere la recherche sur une ou plusieurs colonnes | CREATE INDEX |
| Sequence | Generateur de nombres uniques, pour les identifiants | CREATE SEQUENCE |
| Synonyme | Alias vers un autre objet, souvent d’un autre schema | CREATE SYNONYM |
| Procedure | Bloc PL/SQL nomme qui execute des actions | CREATE PROCEDURE |
| Fonction | Comme une procedure, mais retourne une valeur | CREATE FUNCTION |
| Package | Regroupe procedures et fonctions liees | CREATE PACKAGE |
| Trigger | Code declenche automatiquement sur INSERT/UPDATE/DELETE | CREATE TRIGGER |
| Contrainte | Regle qui garantit la coherence des donnees | ALTER TABLE ... ADD CONSTRAINT |
Table et vue : la distinction a retenir
C’est la confusion la plus frequente chez les debutants. Une table occupe de l’espace disque et contient les donnees. Une vue ne contient rien : c’est une requete SELECT a laquelle on a donne un nom. Interroger une vue reexecute sa requete a chaque fois.
-- La vue ne stocke aucune donnee CREATE VIEW V_EMP_DEPT10 AS SELECT EMPNO, ENAME, SAL FROM EMP WHERE DEPTNO = 10; -- Elle s'interroge ensuite comme une table SELECT * FROM V_EMP_DEPT10;
Interet : masquer la complexite d’une jointure, et restreindre l’acces a certaines lignes ou colonnes sans dupliquer les donnees.
Le schema : le proprietaire des objets
Chaque objet appartient a un schema, qui porte le nom de l’utilisateur qui l’a cree. C’est pour cela qu’on ecrit parfois SCOTT.EMP : le schema SCOTT, la table EMP. Sans prefixe, Oracle cherche dans votre propre schema.
-- Lister vos propres objets SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS ORDER BY OBJECT_TYPE, OBJECT_NAME; -- Lister tout ce a quoi vous avez acces SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM ALL_OBJECTS WHERE OWNER = 'SCOTT';
Les vues systeme suivent toujours la meme logique de prefixe : USER_ (a moi), ALL_ (ce que je peux voir), DBA_ (tout, reserve aux administrateurs).
