Example create emp dept original
| Fiche express | |
|---|---|
| Type | Script SQL*Plus d'exemple |
| Domaine | Exemple DDL |
| Voir aussi | Example create emp dept custom · Example create index · Example create not null constraints |
Example create emp dept original reproduit le script de démonstration historique livré
avec Oracle RDBMS (demobld.sql) : le schéma EMP/DEPT
(complété par BONUS et SALGRADE) que l'on retrouve dans quasiment
toute la documentation et les tutoriels Oracle depuis des décennies — les fameux employés
SMITH, ALLEN, KING, etc. C'est le jeu de données minimal à connaître avant de lire des
exemples SQL Oracle plus avancés.
Pour un schéma de démonstration alternatif — plus simple (deux tables seulement) mais avec une génération de données aléatoires en volume — voir Example create emp dept custom.
Script
Le script se connecte d'abord en SYSDBA pour nettoyer un synonyme public résiduel
d'une exécution précédente, puis recrée le schéma sous un compte applicatif dédié.
-- Schéma de démonstration historique Oracle : EMP / DEPT / BONUS / SALGRADE
CONNECT / AS SYSDBA
DROP PUBLIC SYNONYM parts;
PROMPT Connexion au compte de démonstration...
CONNECT demo_user
CREATE TABLE dept (
deptno NUMBER(2) CONSTRAINT pk_dept PRIMARY KEY
, dname VARCHAR2(14)
, loc VARCHAR2(13)
);
CREATE TABLE emp (
empno NUMBER(4) CONSTRAINT pk_emp PRIMARY KEY
, ename VARCHAR2(10)
, job VARCHAR2(9)
, mgr NUMBER(4)
, hiredate DATE
, sal NUMBER(7,2)
, comm NUMBER(7,2)
, deptno NUMBER(2) CONSTRAINT fk_deptno REFERENCES dept
);
INSERT INTO dept VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO dept VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO dept VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO dept VALUES (40, 'OPERATIONS', 'BOSTON');
INSERT INTO emp VALUES (7369, 'SMITH', 'CLERK', 7902, TO_DATE('17-12-1980', 'dd-mm-yyyy'), 800, NULL, 20);
INSERT INTO emp VALUES (7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('20-02-1981', 'dd-mm-yyyy'), 1600, 300, 30);
INSERT INTO emp VALUES (7521, 'WARD', 'SALESMAN', 7698, TO_DATE('22-02-1981', 'dd-mm-yyyy'), 1250, 500, 30);
INSERT INTO emp VALUES (7566, 'JONES', 'MANAGER', 7839, TO_DATE('02-04-1981', 'dd-mm-yyyy'), 2975, NULL, 20);
INSERT INTO emp VALUES (7654, 'MARTIN', 'SALESMAN', 7698, TO_DATE('28-09-1981', 'dd-mm-yyyy'), 1250, 1400, 30);
INSERT INTO emp VALUES (7698, 'BLAKE', 'MANAGER', 7839, TO_DATE('01-05-1981', 'dd-mm-yyyy'), 2850, NULL, 30);
INSERT INTO emp VALUES (7782, 'CLARK', 'MANAGER', 7839, TO_DATE('09-06-1981', 'dd-mm-yyyy'), 2450, NULL, 10);
INSERT INTO emp VALUES (7788, 'SCOTT', 'ANALYST', 7566, TO_DATE('13-JUL-87', 'dd-mm-rr') - 85, 3000, NULL, 20);
INSERT INTO emp VALUES (7839, 'KING', 'PRESIDENT', NULL, TO_DATE('17-11-1981', 'dd-mm-yyyy'), 5000, NULL, 10);
INSERT INTO emp VALUES (7844, 'TURNER', 'SALESMAN', 7698, TO_DATE('08-09-1981', 'dd-mm-yyyy'), 1500, 0, 30);
INSERT INTO emp VALUES (7876, 'ADAMS', 'CLERK', 7788, TO_DATE('13-JUL-87', 'dd-mm-rr') - 51, 1100, NULL, 20);
INSERT INTO emp VALUES (7900, 'JAMES', 'CLERK', 7698, TO_DATE('03-12-1981', 'dd-mm-yyyy'), 950, NULL, 30);
INSERT INTO emp VALUES (7902, 'FORD', 'ANALYST', 7566, TO_DATE('03-12-1981', 'dd-mm-yyyy'), 3000, NULL, 20);
INSERT INTO emp VALUES (7934, 'MILLER', 'CLERK', 7782, TO_DATE('23-01-1982', 'dd-mm-yyyy'), 1300, NULL, 10);
CREATE TABLE bonus (
ename VARCHAR2(10)
, job VARCHAR2(9)
, sal NUMBER
, comm NUMBER
);
CREATE TABLE salgrade (
grade NUMBER
, losal NUMBER
, hisal NUMBER
);
INSERT INTO salgrade VALUES (1, 700, 1200);
INSERT INTO salgrade VALUES (2, 1201, 1400);
INSERT INTO salgrade VALUES (3, 1401, 2000);
INSERT INTO salgrade VALUES (4, 2001, 3000);
INSERT INTO salgrade VALUES (5, 3001, 9999);
COMMIT;
Le compte de connexion et le nom d'employé "SCOTT" (habituellement le compte lui-même dans la version d'origine du script) ont été génériciés ici ; le reste des données — noms, dates, salaires — correspond au jeu d'exemple standard publié par Oracle et n'a rien de confidentiel.
Voir aussi
- Example create emp dept custom — variante avec génération de données aléatoires
- Example create index — index et contraintes sur ce type de schéma
- Example create not null constraints — nommage des contraintes NOT NULL