Dans cet article, je vais essayer de démystifier comment les tables dans la base de données sont imbriquées et comment effectuer des requêtes simples en SQL.
Dans la section Bilans et statistiques, vous avez la possibilité d'interroger le contenu de votre base de données en passant par des requêtes SQL
Vous vous trouvez alors dans la page de création de requête et c'est la boite SQL que vous allez inscrire votre requête.
La requête la plus simple c'est de faire afficher le contenu complet d'une table. La base de données contient plusieurs tables et dans chaque table il y a des champs. On parle de schéma de base de données qui contient les tables.
Le schéma de la base de données se trouve ici
http://schema.koha-community.org/. Il y a un schéma par version. En novembre 2021, les instances de la communauté Koha-Collecto sont sous la version 20.05.x
Le lien du schéma se trouve en tout temps dans la page d'accueil du module Bilans et statistiques
1. Requête simple d'une table
Par exemple, si vous souhaitez avoir la liste de toutes les notices de votre catalogue, vous devez interroger la table biblio.
Numéro de notice
Code de la grille de catalogage
Auteur : 100$a
Titre : 245$b
Type de support : 245$h
Sous-titre : 245$b
Numéro de partie : 245$n
Titre de partie : 245$p
Titre uniforme : 240$a
Notes : 500$a
Serial : 1 va indiquer que la notice est utilisée dans un abonnement de périodique
Seriestitle : non utilisé
Date publication : 264$d ou 260$d
Date de dernière modification
Date de création
Résumé : 520$a
En interrogant cette table, on va avoir un tableau affichant le contenu des champs. Pour savoir comment écrire une requête SQL, on peut écrire sa requête en mot :
Faire une liste de toutes les données des notices bibliographiques va se traduire par Select * from biblio
Faire une liste = Select
de toutes les données = *
des = from
notices bibliographiques = biblio
Après avoir sauvegardé votre rapport, cliquez sur Exécuter le rapport, Le résultat s'affiche sous forme de tableau
2. Lier une table à une autre
La table biblio contient des informations sur les notices mais elle est liée à une autre table très importante également, la table biblio_metadata qui permet d'extraire n'importe quelle zone marc de la notice
Pour lier une table à une autre, il faut trouver une clé unique qui est présente dans les deux tables.
Pour la table biblio et biblio_metadata, c'est le champ biblionumber
La requête SQL pour relier les deux tables est la suivante
Select *
from biblio
left join biblio_metadata on biblio.biblionumber=biblio_metadata.biblionumber
Dans cette requête, on va faire afficher tous les champs des deux tables, en prenant comme clé unique, le biblionumber (numéro unique de la notice).
3. Afficher certains champs
La requête Select *, permet de faire afficher tous les champs d'une table.
Pour en afficher quelques uns, il faut les nommer dans la requête, exemple ci-dessous, cette requête fera afficher seulement le champ title, author et biblionumber
Select
title,
author,
biblionumber
from biblio
Pour connaitre le nom des champs à inscrire, il faut consulter le schéma de la base de données
http://schema.koha-community.org/ ou alors effectuer d'abord une requete simple (voir section 1) et repérer dans le tableau du résultat, le nom des champs inscrit.
Pour plus de compréhension, vous pouvez renommer le nom des colonnes du tableau des résultats.
Il faut alors dans la requête inscrire le nom que l'on souhaite avec le code AS.
Si on veut inscrire plusieurs mots, ne pas oublier les ' ' autour des mots.
Select
title AS Titre,
author as Auteur,
biblionumber as 'Numéro de notice'
from biblio