• Aucun résultat trouvé

TD 5 – Création d’une base de données et SQLSoit le schéma suivant :fréquente (nbuveur , nbar )sert (nbar , nbiere )aime (nbuveur , nbiere )

N/A
N/A
Protected

Academic year: 2022

Partager "TD 5 – Création d’une base de données et SQLSoit le schéma suivant :fréquente (nbuveur , nbar )sert (nbar , nbiere )aime (nbuveur , nbiere )"

Copied!
2
0
0

Texte intégral

(1)

TD 5 – Création d’une base de données et SQL

Soit le schéma suivant :

fréquente (nbuveur , nbar ) sert (nbar , nbiere )

aime (nbuveur , nbiere )

I. Sous mysql, créer la base de données « bieres » avec les tables et les données.

mysql -u root -p

mysql> create database bieres ; mysql> use bieres ;

mysql> create table frequente (nbuveur varchar(30) not null, nbar varchar(30) not null, primary key (nbuveur, nbar)) ;

mysql> create table sert (nbar varchar(30) not null, nbiere varchar(30) not null, primary key (nbar, nbiere)) ;

mysql> create table aime (nbuveur varchar(30) not null, nbiere varchar(30) not null, primary key (nbuveur, nbiere)) ;

mysql> show tables ; mysql> describe sert ;

mysql> insert into aime (nbuveur, nbiere) values (« Chaignaud », « Jeanlain ») ; mysql> select * from aime ;

mysql> delete from frequente where nbuveur="Chaignaud";

mysql> load date infile ‘_____.txt’ into table ____ ;

II. Requêtes SQL

1. Liste des bars servant une bière qu’aime « chaignaud » ? SELECT distinct nbar

FROM sert, aime

WHERE nbuveur = ‘chaignaud’ and sert.nbiere = aime.nbiere ;

2. Liste des buveurs fréquentant au moins un bar qui sert une bière qu’ils aiment ? SELECT DISTINCT f.nbuveur

FROM sert s, aime a, frequente f

WHERE f.nbuveur = a.nbuveur and f.nbar = s.nbar and s.nbiere = a.nbiere ; 3. Liste des bars servant une bière aimée par au moins deux buveurs ?

SELECT DISTINCT nbar FROM sert, aime x, aime y

WHERE x.nbuveur != y.nbuveur and sert.nbiere = x.nbiere and x.nbiere = y.nbiere ; 4. Liste des buveurs ne fréquentant aucun bar servant une bière qu’ils aiment ?

SELECT nbuveur FROM frequente

WHERE nbuveur NOT IN (SELECT f.nbuveur

FROM frequente f, sert s, aime a

WHERE f.nbuveur = a.nbuveur and f.nbar = s.nbar and s.nbiere = a.nbiere)

and sert.biere=aime.biere) ;

5. Liste des bières aimées par tous les buveurs ?

bière(aime) – {bière /  buveur, aime(buveur,bière)}

Quelles sont les bières pour lesquelles il n’existe pas de buveur qui ne l’aime pas.

(2)

SELECT DISTINCT nbiere FROM aime WHERE NOT EXISTS

(SELECT * FROM frequente WHERE NOT EXISTS

(SELECT * FROM frequente f, aime a WHERE f.nbuveur = a.nbuveur AND aime.nbiere = a.nbiere

AND f.nbuveur = frequente.nbuveur)) ;

6. Liste des bières aimées par tous les buveurs et servies dans tous les bars ? SELECT DISTINCT nbiere FROM aime

WHERE NOT EXISTS

(SELECT * FROM frequente WHERE NOT EXISTS

(SELECT * FROM frequente f, aime a WHERE f.nbuveur = a.nbuveur AND aime.nbiere = a.nbiere

AND f.nbuveur = frequente.nbuveur)) AND NOT EXISTS

(SELECT * FROM sert WHERE NOT EXISTS

(SELECT * FROM sert s, aime a WHERE s.nbiere = a.bniere AND aime.nbiere = a.nbiere AND s.nbar = sert.nbar)) ;

Références

Documents relatifs

Chaque mode de recueil possède ses avantages/inconvénients selon les critères pris en compte dans l’étude :. Coût et délais de mise

[r]

responsabilité avec leur seule licence, ce qui sabotera le master dès M1: quel progrès par rapport à l'actuel où le M2 sera saboté en mettant les étudiants en responsabilité à

[r]

 :  Troubles  obsessionnels  compulsifs  décrits  par  les  classifications   psychiatriques  d’inspiration

Selon le professeur en littérature comparée de Stanford Amir Eshel, les romans post- apocalyptiques de science-fiction, très plébiscités par les lecteurs, nous

Si la nature, au cours de son évolution, a fabriqué nos six émotions de base (peur, joie, colère, mépris, tristesse, dégoût), c'est pour nous permettre de mieux nous adapter à notre

Remarquons d’emblée que cette ques- tion ne serait venue à l’esprit de person- ne il y a un siècle… Eh bien, il sert à tierciser la relation avec la mère, à don- ner son nom