Vous êtes sur la page 1sur 7

Rapport TP

Réalisé par : KIADI Hanaa Encadré par : LAMII Nabil

2019 /2020

1
Création base de données :

CREATE DATABASE base_de_donnees;

Utilisation base de données :

USE DATABASE base_de_donnees;

Insertion des tableaux :

Tableau livre :

CREATE table LIVRE

( CODE_LIVRE integer primary key not null,

NOM_LIVRE char(255) not null,

EDITION char(255) null,

RESUME_ char(255) null);

Tableau auteur:

CREATE table AUTEUR

( ID_AUTEUR integer PRIMARY KEY not null,

CODE_LIVRE integer not null ,

NOM char(255) not null,

PRENOM char(255) null,

AGE integer null,

FOREIGN KEY (code_livre) REFERENCES LIVRE(CODE_LIVRE));

I. ATELIER NUMERO 1 :{Affichage avancé avec la clause (WHERE)} :


Insertion tableau livre :

INSERT INTO livre (CODE_LIVRE,NOM_LIVRE,EDITION,RESUME_)

VALUES (1,'le_monde_de_sophie',2,'resume_'),

(2,'alchimiste',3,'resume_'),

2
(3,'antigone',1,'resume_'),

(4,'in my road',3,'resume_'),

(5,'into_the_wild',5,'resume_'),

(6,'seven',7,'resume_'),

(7,'hannibal',2,'resume_');

Insertion tableau auteur :

INSERT INTO auteur (ID_AUTEUR, CODE_LIVRE, NOM, PRENOM, AGE)

VALUES (1,5,'COELHO','PAULO',40),

(2,2,'HAMDI','KHAWLA',30),

(3,1,'SANOUSSI','KHAWLA',44),

(4,5,'GAARDER','SAOUD',29),

(5,1,'VOLTAIRE','',80),

(6,3,'DOKALI','ABDLWAHAB',27),

(7,1,'ZOLA','EMILE',66),

(8,2,'AHMED','SEFRIOUI',90),

(9,4,'HUGO','VICTOR',45),

(10,5,'ANOUILH','JEAN',88),

(11,7,'ROSO','VIOLITA',50),

(12,6,'MABROUK','ANTAR',39),

(13,3,'AHMED','ABIKA',30),

(14,5,'AOUITA','EL_ALAMI',25),

(15,7,'EL_FAD','HASSAN',14),

(16,2,'DE_BOTTON','ALAIN',33);

Afficher juste la ligne du livre « into the wild » :

3
select * from livre where NOM_LIVRE='into the wild';

Afficher juste les deux lignes de « AOUITA » et « COELHO » :

select * from auteur

Where NOM='COELHO' or NOM='AOUITA';

Afficher les auteurs, dont leurs « id_auteur » inférieurs de 10 :

select * from auteur

Where ID_AUTEUR < 10;

Afficher tous les auteurs sauf « AHMED SEFRIOUI » :

select * from auteur

Where NOM != 'SEFRIOUI';

Afficher juste le nom et l’âge des auteurs dont leurs « id_auteur » est entre 5 et 15 :

select NOM,AGE from auteur

where ID_AUTEUR <=15 and ID_AUTEUR >=5;

Afficher les lignes des auteurs « EL ALAMI », « ABIKA », « DE BOTTON » :

select * from auteur

where PRENOM='ELALAMI' or NOM='ABIKA' or NOM='DE BOTTON';

II. Atelier N° 2 {Suppression et modification des données} :


Suppression de la ligne 7 « hannibal » du tableau LIVRE :

DELETE FROM livre

where NOM_LIVRE= 'hannibal';

Remplacer l’attribut « CODE_LIVRE » 7 par 6 :

UPDATE auteur

set CODE_LIVRE=6

4
where CODE_LIVRE is NULL;

Ajouter la colonne « CITATION » :

UPDATE AUTEUR

SET CITATION="Il n'y a qu'une façon d'apprendre, c'est par l'action."

WHERE ID_AUTEUR=1;

SELECT * FROM auteur;

III. Atelier N° 3 {les jointures} :

Select * from auteur

INNER JOIN livre ON auteur.CODE_LIVRE = livre.CODE_LIVRE;

Select livre.NOM_LIVRE , livre.EDITION from auteur

INNER JOIN livre ON auteur.CODE_LIVRE = livre.CODE_LIVRE

WHERE auteur.NOM="DE BOTTON";

Select auteur.NOM from auteur

INNER JOIN livre ON auteur.CODE_LIVRE = livre.CODE_LIVRE

WHERE livre.NOM_LIVRE="into the wild";

SELECT livre.NOM_LIVRE , livre.EDITION from auteur

INNER JOIN livre ON auteur.CODE_LIVRE = livre.CODE_LIVRE

WHERE auteur.NOM="EL FAD" or auteur.NOM="LHAJJA" or auteur.NOM="ZOLA" ORDER


BY livre.NOM_LIVRE;

SELECT * from auteur

INNER JOIN livre ON auteur.CODE_LIVRE = livre.CODE_LIVRE

WHERE auteur.ID_AUTEUR <=16 AND auteur.ID_AUTEUR>=5 AND livre.NOM_LIVRE="le


monde de sophie" OR livre.NOM_LIVRE="seven" ;

5
IV. Atelier N° 4{Sous-requêtes} :

SELECT MAX(ID_AUTEUR)

FROM ( SELECT ID_AUTEUR FROM AUTEUR

where CODE_LIVRE=2) AS MAX_AUTEUR;

SELECT MIN(EDITION)

FROM ( SELECT livre.EDITION , auteur.CODE_LIVRE FROM AUTEUR

INNER JOIN livre ON auteur.CODE_LIVRE = livre.CODE_LIVRE

where auteur.NOM="LHAJJA" OR auteur.NOM="EL FAD" OR auteur.NOM="EL ALAMI" OR


auteur.NOM="VIOLITA") AS MIN_EDITION;

SELECT COUNT(ID_AUTEUR)

FROM ( SELECT auteur.ID_AUTEUR from auteur

INNER JOIN livre ON auteur.CODE_LIVRE = livre.CODE_LIVRE

WHERE auteur.ID_AUTEUR <=16 AND auteur.ID_AUTEUR>=5 AND livre.NOM_LIVRE="le


monde de sophie" OR livre.NOM_LIVRE="seven") AS NOMBRE_TOTAL ;

V. Atelier N° 5 {Union de plusieurs requête} :

SELECT ID_AUTEUR, CODE_LIVRE, NOM, PRENOM FROM auteur

UNION

SELECT * FROM livre;

SELECT ID_AUTEUR, CODE_LIVRE, NOM, PRENOM FROM auteur

UNION

SELECT * FROM livre ORDER BY CODE_LIVRE;

VI. Atelier N° 6 {Manipuler les dates} :

ALTER TABLE `base_de_donnees`.`auteur`

ADD COLUMN `DATE_EMPRUNT` DATE NULL AFTER `CITATION`;

6
SELECT YEAR(DATE_EMPRUNT) FROM auteur

ORDER BY DATE_EMPRUNT LIMIT 3 OFFSET 0;

VII. Atelier N° 7 Triggers (requêtes préparés) :

Use bdd-atelier_de_travail ;

Delimiter$$

CREAT TRIGGER before insert-auteur BEFORE INSERT

ON auteur FOR EACH ROW

BEGIN

IF NEW. Date_emprunt IS NULL

THEN

UPDATE auteur

SET NEW.DATE_EMPRUNT=NOW();

END IF.

END$$

DELIMITER;

insert into auteur values (19,3,'bachir','omar',40,' ',null); select * from auteur;