Exercices pour s'entraîner☘
Les exercices ci-dessous ont pour but de vous familiariser avec la
création et la modification de bases de données en utilisant le langage
sql
et le logiciel DB Browser.
Rappels
- Chaque base de données doit être sauvegardée sous forme de fichier avec
l'extension
.db
. - Chaque fichier de création/modification de base doit être sauvegardé sous
forme de fichier avec l'extension
.sql
. - Enregistrez ces fichiers dans le dossier
[B02-BDD_Relationnelle]
avec le nom donné à l'exercice :ProgB02.03.db
,ProgB02.03.sql
,ProgB02.05.sql
, etc...
Prog B02.03☘
On considère la relation Annuaire schématisée ci-contre.
-
Générez une nouvelle base de donnnées avec le logiciel DB Browser puis nommez cette base
ProgB02.03.db
-
Dans l'onglet enregistrez un fichier au format SQL sous le nom
ProgB02.03.sql
.
Complétez ensuite ce fichier en répondant aux questions qui suivent. -
Quelle commande SQL permet de créer cette relation ?
Une solution
1 2 3 4 5 6
CREATE TABLE IF NOT EXISTS Annuaire ( nom TEXT, prenom TEXT, tel TEXT PRIMARY KEY, CHECK (length(tel) >= 10) ) ;
-
Quelle commande SQL permet d’insérer l’enregistrement (Lhermite, Bernard, 0102030405) ?
Une solution
8 9
INSERT INTO Annuaire (nom, prenom, tel) VALUES ('Lhermite', 'Bernard', '0102030405') ;
-
Bernard Lhermite change de numéro de téléphone : 0504030201.
Quelle commande SQL permet de mettre à jour la base de données ?Une solution
11 12 13
UPDATE Annuaire SET tel = "0504030201" WHERE tel = '0102030405' ;
Prog B02.05☘
On considère les relations schématisées ci-dessous.
-
Générez une nouvelle base de donnnées avec le logiciel DB Browser puis nommez cette base
ProgB02.05.db
-
Dans l'onglet enregistrez un fichier au format SQL sous le nom
ProgB02.05.sql
.
Complétez ensuite ce fichier en répondant aux questions qui suivent. -
Quelles commandes SQL permettent de créer les relations
Client
etVille
?Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13
CREATE TABLE IF NOT EXISTS Ville ( id_ville INT PRIMARY KEY, nom TEXT ) ; CREATE TABLE IF NOT EXISTS Client ( id_client INT PRIMARY KEY, nom TEXT, prenom TEXT, id_ville INT, FOREIGN KEY (id_ville) REFERENCES Ville(id_ville) ) ;
-
Écrire les requêtes permettant d’insérer les données suivantes dans la base.
Une solution
17 18 19 20 21 22 23 24 25 26 27 28
INSERT INTO Ville VALUES (1, 'LYON'), (2, 'PARIS'), (3, 'MARSEILLE'), (4, 'GRENOBLE') ; INSERT INTO Client VALUES (4, 'Térieur', 'Alain', 3), (3, 'Parker', 'Peter', 2), (2, 'Zeblues', 'Agathe', 1), (1, 'Possible', 'Alain', 1) ;
-
Peter Parker est en fait originaire de GRENOBLE.
Écrire la requête permettant de modifier la valeur correspondante.Une solution
31 32 33
UPDATE Client SET id_ville=4 WHERE id_client = 3;
-
Insérer la colonne
genre
dans la tableClient
.Une solution
36 37 38
ALTER TABLE Client ADD COLUMN genre TEXT CHECK (genre == 'F' OR genre == 'M');
-
Insérer les valeurs de la colonne
genre
dans la tableClient
.
Est-ce possible en seulement deux requêtes ?Une solution
```41 42 43 44 45 46
UPDATE Client SET genre = 'M'; UPDATE Client SET genre = 'F' WHERE id_client = 2;
Prog B02.06☘
On considère les relations schématisées ci-dessous.
-
Quelles commandes SQL permettent de créer les relations
Eleve
,Coordonnee
etClasse
?Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
CREATE TABLE IF NOT EXISTS Eleve ( id_eleve INT PRIMARY KEY, nom TEXT, prenom TEXT, date_naissance DATE ) ; CREATE TABLE IF NOT EXISTS Coordonnee ( id_eleve INT PRIMARY KEY, adresse TEXT, cp TEXT, ville TEXT, email TEXT UNIQUE, FOREIGN KEY (id_eleve) REFERENCES Eleve(id_eleve) ) ; CREATE TABLE IF NOT EXISTS Classe ( niveau TEXT, numero TEXT, id_eleve INT, PRIMARY KEY (niveau, numero), FOREIGN KEY (id_eleve) REFERENCES Eleve(id_eleve) ) ;
-
Enregistrer l’élève suivant dans la base de données :
Ken OBI, né le 01 novembre 2005 et habitant 7, rue Montrouge – 69003 LYON. Élève en classe de 2nde 4, son numéro est 705412 et son email ken.obi@ben.star.Une solution
26 27 28 29 30 31 32 33
INSERT INTO Eleve VALUES (705412, 'OBI', 'Ken', '01/11/2005') ; INSERT INTO Coordonnee VALUES (705412, '7, rue Montrouge', '69003', 'LYON', 'ken.obi@ben.star') ; INSERT INTO Classe VALUES ('seconde', '4', 705412) ;