Aller au contenu principal

Requêtes SQL sur la BD GLPI

info

Le travail à fournir dans cette mission comporte 3 étapes :

  1. La création de la base de données « glpi »

  2. L'importation du fichier SQL glpi.sql de création et de remplissage des tables

  3. L’écriture de requêtes SQL dans la base de données GLPI pour répondre aux questions que se pose le Directeur du Service Informatique (DSI)

attention

Pour plus de sécurité, il est préconisé de :

  • créer un utilisateur propriétaire unique pour chaque base de données

    (avec la commande CREATE USER ...),

  • et de lui donner des permissions exclusivement à cette base de données

    *(avec la commande GRANT ...).

Créer la BD et importer les données

Le fichier SQL de GLPI ne contient pas la commande de création de la base de données. Nous allons donc le faire en 2 étapes, créer la base de données manuellement puis importer le fichier glpi.sql.

Si besoin, vous pouvez consulter les tutoriels précédents :

Télécharger le fichier glpi.sql

Pensez à vérifier que la base de données a bien été importée :

SHOW DATABASES;
USE `glpi`;
SHOW TABLES;

Écrire les requêtes SQL

Écrire des requêtes SQL pour répondre aux questions que se pose le Directeur du Service Informatique (DSI).


Q1 : Nouveaux utilisateurs en 2022/2023

Combien de nouveaux utilisateurs ont été ajoutés à la base de données durant l'année scolaire 2022/2023 ?

astuce

L'année scolaire commence le 1er septembre et se termine le 10 juillet.

  • La table qui contient les utilisateurs de GLPI est : glpi_users
  • La colonne qui mémorise la date de création de l'utilisateur est glpi_users.date_mod

Lorsqu'un utilisateur se connecte pour la première fois à GLPI, ses informations de compte sont récupérées de l'annuaire "Active Directory" et un compte est créé dans GLPI. S'il se reconnecte plus tard, son compte dans GLPI sera utilisé, il n'y aura pas création d'un nouveau compte.

Une solution

Q2 : Tickets en janvier 2023

Le Directeur du Service Informatique veut savoir combien de tickets d'assistance ont été ouverts au mois de janvier 2023.

astuce

Certains noms de colonnes utilisent des mots réservés par le langage SQL (par exemple DATE). Dans ce cas, il faut entourer le nom de la colonne par des backticks (accents graves).

Le caractère "backtick"

En anglais, le caractère ` est appelé "backtick".

En français, ce caractère est appelé "accent grave" lorsqu'il est utilisé dans l'écriture pour marquer une certaine prononciation sur les lettres comme "à", "è", "ù".

En informatique, les francophones utilisent souvent le terme anglais "backtick".

attention

Les tickets supprimés sont marqués is_deleted = 1

Une solution

Q3 : Inventaire des ordinateurs 'Tour Dell'

Le Directeur du Service Informatique souhaite connaître le nombre d'ordinateurs 'Tour Dell' actuellement en stock.

astuce
  • On va utiliser les tables glpi_computers et glpi_computertypes
  • glpi_computers.is_deleted = 0 signifie actuellement en stock

Une solution

Q4 : Utilisateurs ayant ouvert le plus de tickets

Le Directeur du Service Informatique souhaite identifier les utilisateurs qui sollicitent le plus le support technique.

Il demande donc la liste des 10 utilisateurs ayant ouvert le plus grand nombre de tickets d'assistance.

astuce
  • Tables à utiliser : glpi_tickets et glpi_users
  • Nom de l'utilisateur : glpi_users.realname (glpi_users.user_dn)
  • Id de l'utilisateur qui a ouvert un ticket : glpi_tickets.users_id_recipient

Une solution

Q5 : Répartition des types d'ordinateurs

Le Directeur du Service Informatique veut connaitre le nombre d'ordinateurs de chaque type.

astuce
  • Tables à utiliser : glpi_computers et glpi_computertypes
  • Type de l'ordinateur : glpi_computertypes.name
  • Id du type de l'ordinateur : glpi_computers.computertypes_id

Une solution

Q6 : Problèmes en salle 136 en 2023

Le Directeur du Service Informatique désire connaître les problèmes informatiques rencontrés en salle 136 en 2023.

astuce
  • Tables à utiliser : glpi_tickets et glpi_locations
  • Jointure entre les tickets et les lieux : glpi_tickets.locations_id = glpi_locations.id
  • Nom de la salle : glpi_locations.name = 'salle 136'
  • Date du ticket : glpi_tickets.date
  • Problème à régler indiqué dans le ticket : glpi_tickets.content

Une solution

Q7 : Personnes avec plus de 5 tickets urgents depuis le 1er septembre 2022

Le DSI souhaite connaître le nombre de tickets ouverts par utilisateur depuis le 1er septembre 2022, mais seulement pour ceux qui ont ouvert plus de 5 tickets et dont l'urgence est supérieure à 4.

astuce
  • Tables à utiliser : glpi_tickets et glpi_users
  • Nom de l'utilisateur : glpi_users.realname (glpi_users.user_dn)
  • Id de l'utilisateur qui a ouvert un ticket : glpi_tickets.users_id_recipient
  • Date d'un ticket : glpi_tickets.date
  • Urgence d'un ticket : glpi_tickets.urgency

Une solution