TD - création d'une base de données

  • Création d'une base de données

Création d'une base de données

Pour créer une base de données et effectuer des requêtes sur cette dernière, nous allons utiliser le logiciel "DB Browser for SQLite" : https://sqlitebrowser.org/

SQLite est un système de gestion de base de données relationnelle très répandu. Noter qu'il existe d'autres systèmes de gestion de base de données relationnelle comme MySQL ou PostgreSQL. Dans tous les cas, le langage de requête utilisé est le SQL (même si parfois on peut noter quelques petites différences). Ce qui sera vu ici avec SQLite pourra, à quelques petites modifications près, être utilisé avec, par exemple, MySQL.

Nous allons commencer par créer notre base de données :

Après avoir lancé le logiciel "DB Browser for SQLite", vous devriez obtenir ceci :

  • Cliquez sur Nouvelle base de données. Après avoir choisi un nom pour votre base de données (par exemple "db_livres.db")

  • Cliquez sur Annuler dans la fenêtre qui s'ouvre après la création de la base de données

Vous devriez obtenir :

mais pour l'instant elle ne contient aucune table (aucune relation), pour créer une table, cliquez sur l'onglet "Exécuter le SQL". On obtient alors :

Copiez-collez la requête ci-dessous dans la fenêtre "SQL 1" et exécutez là (l'icône "play")

1
CREATE TABLE LIVRES
2
(id INT, titre TEXT, id_auteur INT, ann_publi INT, note INT);

Comme indiqué dans la fenêtre, "Requête exécutée avec succès" !

Vous venez de créer votre première table.

On recommence l'opération avec la table auteurs...

1
CREATE TABLE AUTEURS
2
(id INT, nom TEXT, prenom TEXT, ann_naissance INT, langue_ecriture TEXT);

Puis nous allons remplir ces tables avec les requêtes suivantes

Pour les auteurs :

1
INSERT INTO AUTEURS
2
(id,nom,prenom,ann_naissance,langue_ecriture)
3
VALUES
4
(1,'Orwell','George',1903,'anglais'),
5
(2,'Herbert','Frank',1920,'anglais'),
6
(3,'Asimov','Isaac',1920,'anglais'),
7
(4,'Huxley','Aldous',1894,'anglais'),
8
(5,'Bradbury','Ray',1920,'anglais'),
9
(6,'K.Dick','Philip',1928,'anglais'),
10
(7,'Barjavel','René',1911,'français'),
11
(8,'Boulle','Pierre',1912,'français'),
12
(9,'Van Vogt','Alfred Elton',1912,'anglais'),
13
(10,'Verne','Jules',1828,'français');

Pour les livres :

1
INSERT INTO LIVRES
2
(id,titre,id_auteur,ann_publi,note)
3
VALUES
4
(1,'1984',1,1949,10),
5
(2,'Dune',2,1965,8),
6
(3,'Fondation',3,1951,9),
7
(4,'Le meilleur des mondes',4,1931,7),
8
(5,'Fahrenheit 451',5,1953,7),
9
(6,'Ubik',6,1969,9),
10
(7,'Chroniques martiennes',5,1950,8),
11
(8,'La nuit des temps',7,1968,7),
12
(9,'Blade Runner',6,1968,8),
13
(10,'Les Robots',3,1950,9),
14
(11,'La Planète des singes',8,1963,8),
15
(12,'Ravage',7,1943,8),
16
(13,'Le Maître du Haut Château',6,1962,8),
17
(14,'Le monde des Ā',9,1945,7),
18
(15,'La Fin de l'éternité',3,1955,8),
19
(16,'De la Terre à la Lune',10,1865,10);

Exécutons maintenant quelques requêtes :

1
SELECT titre FROM LIVRES
2
WHERE ann_publi> 1960
1
SELECT * FROM AUTEURS
2
where nom='Asimov'
1
SELECT * FROM LIVRES
2
JOIN AUTEURS on livres.id_auteur=auteurs.id
1
SELECT titre FROM LIVRES
2
JOIN AUTEURS on livres.id_auteur=auteurs.id
3
WHERE auteurs.nom='Asimov'

Insérer un nouvel enregistrement, supprimer un enregistrement et modifier un enregistrement

Comme nous avons créé cette base de données, nous en somme propriétaire et nous pouvons insérer un nouvel enregistrement et également en supprimer.

Pour insérer un nouvel auteur :

1
INSERT INTO AUTEURS
2
(id,nom,prenom,ann_naissance,langue_ecriture)
3
VALUES
4
(11,'Simmons','Dan',1948,'anglais')

Pour insérer un nouveau livre :

1
INSERT INTO LIVRES
2
(id,titre,id_auteur,ann_publi,note)
3
VALUES
4
(17,'Hypérion',11,1991,10)

Pour modifier un enregistrement :

1
UPDATE LIVRES
2
SET note=7
3
WHERE titre = 'Hypérion'

Pour supprimer un enregistrement :

1
DELETE FROM LIVRES
2
WHERE titre='Hypérion'

Exercice :

Écrire des requêtes pour :

  • attribuer la note de 10 à tous les livres écrits par Asimov publiés après 1950

  • supprimer les livres publiés avant 1945

SimulationExercice

Créer une base de données 'mon_entreprise.db' dont le schéma relationnel est :

Ajouter des enregistrements puis faire afficher la ou les commandes d'un client.

DébutFin
AccueilAccueilImprimerImprimer Stéphan Van Zuijlen Licence de documentation libre GNURéalisé avec Scenari (nouvelle fenêtre)