Un formidable « couteau suisse » permet de gérer instantanément les bases de données de type SQLite : DB Browser for SQLite.
Ne soyez pas surpris, une fois installé, il arrive que DB Browser donne un petit message d'erreur au démarrage : il a en effet parfois du mal à vérifier son numéro de version ... c'est sans conséquence.
Dans cet exemple, la base de données contient deux tables
id | titre |
---|---|
1 | Tintin |
2 | Lucky Luke |
3 | Astérix |
id | nom | parution | fk_collection |
---|---|---|---|
1 | Tintin au pays des Soviets | 1930 | 1 |
2 | Tintin au Congo | 1931 | 1 |
3 | Tintin en Amérique | 1932 | 1 |
... | ... | ... | ... |
34 | Lucky Luke contre Joss Jamon | 1958 | 2 |
35 | Les Cousins Dalton | 1958 | 2 |
36 | Le Juge | 1959 | 2 |
... | ... | ... | ... |
107 | Astérix le Gaulois | 1961 | 3 |
108 | La Serpe d'or | 1962 | 3 |
109 | Astérix et les Goths | 1963 | 3 |
Le champ fk_collection renvoie au numéro de collection repris dans la première table.
Si elles n'existent pas, ces tables peuvent être générées au moyen des instructions SQL suivantes :
CREATE TABLE "collections"
(
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
"titre" TEXT
)
Le champ "id" contiendra une information différente d'un enregistrement à l'autre, ce qui permettra d'identifier un enregistrement de manière unique. On utilisera pour cela un simple numéro qui s'incrémentera automatiquement au fur et à mesure de la création de nouveaux enregistrements (c'est l'instruction AUTOINCREMENT UNIQUE en SQL).
CREATE TABLE "titres"
(
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
"nom" TEXT,
"parution" INTEGER,
"fk_collection" INTEGER,
FOREIGN KEY("fk_collection") REFERENCES "collections"("id")
)
On remarquera l'instruction FOREIGN KEY (clé étrangère) qui met en place un lien entre les deux tables.
La table "titres" est liée à la table "collections" grâce à l'instruction foreign key; en effet, dans la table "titres", le champ "fk_collection" doit contenir une valeur qui renvoie à l'identifiant unique de la table "collection".
Cela a comme conséquence
Lorsqu'un champ est défini comme unique, son contenu est contrôlé de manière à ce que le même champ dans un autre enregistrement ne puisse pas contenir la même valeur !
Cela évite les doublons, comme celui consistant à enregistrer deux fois la référence d'un même livre dans une bibilothèque.
Le logiciel gère automatiquement les clés étrangères ("Foreign Keys").
C'est ce mécanisme qui vérifie en permanence les liens entre les tables. C'est pour cela ces systèmes sont parfois appelés 'bases de données relationnelles.
Pour mémoire, dans notre exemple la table "titres" est liée à la table "collections".
SELECT collections.titre, titres.nom, titres.parution
FROM titres, collections
WHERE titres.fk_collection = collections.id
ORDER BY collections.titre, titres.parution
titre | nom | parution |
---|---|---|
Astérix | Astérix le Gaulois | 1961 |
Astérix | La Serpe d'or | 1962 |
Astérix | Astérix et les Goths | 1963 |
... | ... | ... |
Astérix | Astérix et la Transitalique | 2017 |
Astérix | La fille de Vercingétorix | 2019 |
Astérix | Astérix et le Griffon | 2021 |
... | ... | ... |
Lucky Luke | La Mine d'or de Dick Digger | 1949 |
Lucky Luke | Rodéo | 1950 |
Lucky Luke | Arizona | 1951 |
... | ... | ... |
Lucky Luke | Un cow-boy à Paris | 2018 |
Lucky Luke | Un cow-boy dans le coton | 2020 |
Lucky Luke | L'Arche de Rantanplan | 2022 |
... | ... | ... |
Tintin | Tintin au pays des Soviets | 1930 |
Tintin | Tintin au Congo | 1931 |
Tintin | Tintin en Amérique | 1932 |
... | ... | ... |
Tintin | Les Bijoux de la Castafiore | 1963 |
Tintin | Vol 714 pour Sydney | 1968 |
Tintin | Tintin et les Picaros | 1976 |
SELECT
collections.titre AS Collection ,
titres.nom AS Titre,
titres.parution AS 'Date de parution'
FROM titres, collections
WHERE titres.fk_collection = collections.id
ORDER BY collections.titre, titres.parution
Collection | Titre | Date de parution |
---|---|---|
Astérix | Astérix le Gaulois | 1961 |
Astérix | La Serpe d'or | 1962 |
Astérix | Astérix et les Goths | 1963 |
... | ... | ... |
SELECT
collections.titre AS Collection,
titres.nom AS Titre,
titres.parution AS Parution
FROM titres, collections
WHERE titres.fk_collection = collections.id
ORDER BY collections.titre, titres.nom
Collection | Titre | Parution |
---|---|---|
Astérix | Astérix aux Jeux olympiques | 1968 |
Astérix | Astérix chez Rahàzade | 1987 |
Astérix | Astérix chez les Belges | 1979 |
Astérix | Astérix chez les Bretons | 1966 |
Astérix | Astérix chez les Helvètes | 1970 |
... | ... | ... |
Lucky Luke | 7 histoires de Lucky Luke | 1974 |
Lucky Luke | Alerte aux Pieds-Bleus | 1958 |
Lucky Luke | Arizona | 1951 |
Lucky Luke | Belle Starr | 1995 |
Lucky Luke | Billy the Kid | 1962 |
Lucky Luke | Calamity Jane | 1967 |
... | ... | ... |
Tintin | Coke en stock | 1958 |
Tintin | L'Affaire Tournesol | 1956 |
Tintin | L'Oreille cassée | 1937 |
... | ... | ... |
SELECT
titres.parution AS "Parution",
collections.titre AS "Collection",
titres.nom AS "Titre"
FROM titres, collections
WHERE titres.fk_collection = collections.id
ORDER BY titres.parution
Parution | Collection | Titre |
---|---|---|
... | ... | ... |
1958 | Tintin | Coke en stock |
1958 | Lucky Luke | Alerte aux Pieds-Bleus |
1958 | Lucky Luke | Lucky Luke contre Joss Jamon |
1958 | Lucky Luke | Les Cousins Dalton |
1959 | Lucky Luke | Le Juge |
1960 | Tintin | Tintin au Tibet |
1960 | Lucky Luke | Ruée sur l'Oklahoma |
1960 | Lucky Luke | L'Évasion des Dalton |
1961 | Lucky Luke | En remontant le Mississippi |
1961 | Astérix | Astérix le Gaulois |
1962 | Lucky Luke | Sur la piste des Dalton |
1962 | Lucky Luke | À l'ombre des derricks |
1962 | Lucky Luke | Les Rivaux de Painful Gulch |
1962 | Lucky Luke | Billy the Kid |
1962 | Astérix | La Serpe d'or |
1963 | Tintin | Les Bijoux de la Castafiore |
1963 | Lucky Luke | Les Collines noires |
... | ... | ... |
SELECT collections.titre, titres.nom, titres.parution
FROM titres, collections
WHERE titres.fk_collection = collections.id
AND titres.nom LIKE '%As%'
ORDER BY collections.titre, titres.nom
Parution | Collection | Titre |
---|---|---|
... | ... | ... |
Astérix | L'anniversaire d' Astérix et Obélix | 2009 |
Astérix | L'odyssée d' Astérix | 1981 |
Astérix | Le fils d' Astérix | 1983 |
Astérix | Tour de Gaule d' Astérix | 1965 |
Lucky Luke | Chasse aux fantômes | 1992 |
Lucky Luke | Chasseur de primes | 1972 |
Lucky Luke | L'Homme de Washington | 2008 |
Lucky Luke | L'Évasion des Dalton | 1960 |
Lucky Luke | Tortillas pour les Dalton | 1967 |
Tintin | L'Oreille cassée | 1937 |
Tintin | Les Bijoux de la Castafiore | 1963 |
... | ... | ... |
SELECT
collections.titre AS Collection,
titres.nom AS Titre,
titres.parution AS Parution
FROM titres, collections
WHERE titres.fk_collection = collections.id
AND titres.nom LIKE '%ée%'
ORDER BY collections.titre, titres.nom
Collection | Titre | Parution |
---|---|---|
Astérix | Astérix et la rentrée gauloise | 1993 |
Astérix | L'odyssée d'Astérix | 1981 |
Astérix | La grande traversée | 1975 |
Lucky Luke | La Fiancée de Lucky Luke | 1985 |
Lucky Luke | Ruée sur l'Oklahoma | 1960 |
Tintin | L'Oreille cassée | 1937 |
SELECT
titres.parution AS Année,
collections.titre AS Collection,
titres.nom AS Titre
FROM titres, collections
WHERE titres.fk_collection = collections.id
AND titres.parution >= '1960'
AND titres.parution <= '1969'
ORDER BY titres.parution, collections.titre, titres.nom
Année | Collection | Titre |
---|---|---|
1960 | Lucky Luke | L'Évasion des Dalton |
1960 | Lucky Luke | Ruée sur l'Oklahoma |
1960 | Tintin | Tintin au Tibet |
1961 | Astérix | Astérix le Gaulois |
1961 | Lucky Luke | En remontant le Mississippi |
1962 | Astérix | La Serpe d'or |
1962 | Lucky Luke | Billy the Kid |
1962 | Lucky Luke | Les Rivaux de Painful Gulch |
1962 | Lucky Luke | Sur la piste des Dalton |
1962 | Lucky Luke | À l'ombre des derricks |
1963 | Astérix | Astérix et les Goths |
1963 | Lucky Luke | Les Collines noires |
1963 | Lucky Luke | Les Dalton dans le blizzard |
1963 | Tintin | Les Bijoux de la Castafiore |
1964 | Astérix | Astérix gladiateur |
1964 | Lucky Luke | La Caravane |
1964 | Lucky Luke | Les Dalton courent toujours |
1965 | Astérix | Astérix et Cléopâtre |
1965 | Astérix | Tour de Gaule d'Astérix |
1965 | Lucky Luke | La Ville fantôme |
1965 | Lucky Luke | Le 20ème de cavalerie |
1965 | Lucky Luke | Les Dalton se rachètent |
1966 | Astérix | Astérix chez les Bretons |
1966 | Astérix | Astérix et les Normands |
1966 | Astérix | Le combat des chefs |
1966 | Lucky Luke | L'Escorte |
1967 | Astérix | Astérix légionnaire |
1967 | Lucky Luke | Calamity Jane |
1967 | Lucky Luke | Des barbelés sur la prairie |
1967 | Lucky Luke | Tortillas pour les Dalton |
1968 | Astérix | Astérix aux Jeux olympiques |
1968 | Astérix | Le bouclier arverne |
1968 | Lucky Luke | La Diligence |
1968 | Lucky Luke | Le Pied-Tendre |
1968 | Tintin | Vol 714 pour Sydney |
1969 | Astérix | Astérix en Hispanie |
1969 | Astérix | Astérix et le Chaudron |
1969 | Lucky Luke | Dalton City |
1969 | Lucky Luke | Jesse James |