Quelques notions en requêtes SQL

Quelques notions en requêtes SQL

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.
La table biblio contient plusieurs champs qui concerne les notices bibliographiques http://schema.koha-community.org/20_05/tables/biblio.html

 

      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


    • Related Articles

    • Requêtes SQL

      0. Informations générales sur les rapports SQL 0.1 Fouiller dans les rapports existants Le module Bilans et statistiques présente une section nommée Rapport sauvegardés. Par défaut, cette section présente tous les rapports sauvegardés, mais des ...
    • Modification en lot d’exemplaires

      1. Configurations et accès 1.1 Permissions La permission items_batchmod doit être activée pour qu'un utilisateur puisse faire des modifications en lot d'exemplaire. De plus, la permission items_batchmod_restricted peut être cochée afin de limiter la ...
    • Amnistie en lot

      Depuis la version 21.05, un nouveau cronjob peut être rouler sur votre instance afin d'amnistier en lot les frais dans les dossiers de vos usagers. Pour en faire la demande, veuillez utiliser le portail d'aide pour ouvrir un ticket : ...
    • Statistiques en fin d’année financière (30 juin)

      Pour préparer vos statistiques annuelles, certaines données doivent être extraites le 30 juin de chaque année. En effet, le 13 septembre par exemple, il n’est pas possible de savoir dans Koha, combien il y avait des notices au 30 juin de la même ...
    • Mettre des exemplaires en quarantaine

      Il est possible d'activer un cronjob pour vous aider à traiter les documents mis en "quarantaine".  Lorsqu'un document revient au comptoir de prêt, il ne peut pas être remis en rayon tout de suite, il doit rester en "quarantaine" pendant une certaine ...