La solution d'Exercice SQL Corrigé : Base de données "Bus Dépôts"



L'exercice suivant consiste à écrire du code SQL en utilisant Oracle SQL * Plus. Vous aurez besoin d'un compte Oracle de faire ces exercices.

Créer la base de données SQL pour la pratique et le travail PLSQL. Vous trouverez les deux fichiers la la base de données du dossier appelé 'Schema.txt »et« data load.txt '. Ouvrez les fichiers et les inspecter.

Le premier fichier contient des instructions Create pour créer les tables de la base de dépôts de bus et de définir des contraintes clés primaires et étrangères. Vous devez copier et coller le contenu de ce fichier dans iSQL*Plus, puis d'exécuter l'instruction CREATE - que ce besoin se fait une fois. Le deuxième fichier contient la déclaration insert pour ajouter des lignes de données dans les tableaux créés précédemment. Encore une fois de copier et coller et exécuter une fois.


 1. Type 'select*from Depot »pour inspecter le contenu de la table Depot. Examinez les autres tables.


2.
 Create table Mechanic

            (mno               varchar2(5) not null,
            mname                        varchar2(20),
            msalary           varchar2(20),
            dno                 varchar2(5),
            constraint pk_mno primary key(mno),         
constraint fk_mno foreign key(dno) references Depot(dno));


Create table MechanicBuses
            (mno               varchar2(5),
            regno               varchar2(10),
            constraint pk_mreg primary key(mno, regno),
            constraint fk_mno1 foreign key(mno) references mechanic(mno),
            constraint fk_regno foreign key(regno) references bus(regno)         );

 

3. Supprimez vos définitions de table

drop table MechanicBuses;

drop table mechanic
 

Notez l'ordre dans lequel les tables sont supprimées est important.

Create table Mechanic
       (mno               varchar2(5) not null,
       mname                        varchar2(20),
       msalary           varchar2(20),
       dno                 varchar2(5) default '102',
       constraint pk_mno primary key(mno),         
constraint fk_mno foreign key(dno) references Depot(dno));


Create table MechanicBuses
            (mno               varchar2(5),
            regno               varchar2(10),
            constraint pk_mreg primary key(mno, regno),
            constraint fk_mno1 foreign key(mno) references mechanic(mno),
            constraint fk_regno foreign key(regno) references bus(regno)         );

 

4.         
alter table Mechanic
add dateEmployed date;

describe Mechanic;

Name
Null?
Type
MNO
NOT NULL
VARCHAR2(5)
MNAME
 
VARCHAR2(20)
MSALARY
 
VARCHAR2(20)
DNO
 
VARCHAR2(5)
DATEEMPLOYED
 
DATE


5.     

insert into Mechanic values
('001','Carol Black',2000, '101','09-feb-2015');
etc



select * from Mechanic

MNO
MNAME
MSALARY
DNO
DATEEMPLOYED
001
Carol Black
2000
101
09-FEB-15

6.   
update  Mechanic
set mname = 'Carol Black'
where mname = 'Carol Brown';


select * from Mechanic

MNO
MNAME
MSALARY
DNO
DATEEMPLOYED
001
Carol Brown
2000
101
09-FEB-15


7.       
update Mechanic
set msalary =msalary *1.2
where mname='Carol Brown';

select * from Mechanic

MNO
MNAME
MSALARY
DNO
DATEEMPLOYED
001
Carol Brown
2400
101
09-FEB-15


8.       
delete from MechanicBuses
where mno in
( select mno
from mechanic
where mname='Carol Brown');

delete from Mechanic
where mname='Carol Brown';