Défi sur les informations des auteurs et des livres

MySQLMySQLBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Un administrateur de base de données de bibliothèque a besoin d'aide pour créer un rapport qui combine les informations de deux tables. La bibliothèque dispose de tables distinctes pour les auteurs et leurs livres, et il lui faut une requête qui affichera les titres des livres aux côtés des noms des auteurs dans une seule vue.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") sql/DataManipulationandQueryingGroup -.-> sql/order_by("ORDER BY clause") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/date("Date Type") sql/AdvancedDataOperationsGroup -.-> sql/join("JOIN operations") sql/AdvancedDataOperationsGroup -.-> sql/date_time_functions("Date and Time functions") subgraph Lab Skills mysql/use_database -.-> lab-418296{{"Défi sur les informations des auteurs et des livres"}} mysql/select -.-> lab-418296{{"Défi sur les informations des auteurs et des livres"}} sql/order_by -.-> lab-418296{{"Défi sur les informations des auteurs et des livres"}} mysql/date -.-> lab-418296{{"Défi sur les informations des auteurs et des livres"}} sql/join -.-> lab-418296{{"Défi sur les informations des auteurs et des livres"}} sql/date_time_functions -.-> lab-418296{{"Défi sur les informations des auteurs et des livres"}} end

Créer un rapport combiné auteurs - livres

Tâches

  • Se connecter à MySQL en tant qu'utilisateur root
  • Utiliser la base de données library
  • Écrire une requête qui combine les données des deux tables pour afficher :
    • Titre du livre
    • Nom de l'auteur
    • Année de publication
  • Les résultats doivent être triés par année de publication (les plus récents en premier)
  • Enregistrer les résultats dans un fichier nommé author_books.txt dans le répertoire ~/project

Exigences

  • Toutes les opérations doivent être effectuées dans le répertoire ~/project
  • La requête doit joindre les tables authors et books
  • Tous les livres et leurs auteurs correspondants doivent être inclus
  • Les résultats doivent afficher exactement trois colonnes dans cet ordre : titre, nom de l'auteur, année de publication
  • L'année de publication doit être affichée sous forme de nombre
  • La sortie doit être enregistrée dans un fichier nommé author_books.txt dans le répertoire ~/project

Exemple

Après avoir écrit la requête correcte et enregistré les résultats, vous pouvez vérifier la sortie :

cat ~/project/author_books.txt
+------------------------+--------------+------------------+
| title                  | name         | publication_year |
+------------------------+--------------+------------------+
| Tech Trends            | Maria Garcia |             2023 |
| Digital Innovation     | Robert Chen  |             2022 |
| SQL Mastery            | Jane Smith   |             2021 |
| Database Design Basics | Jane Smith   |             2020 |
+------------------------+--------------+------------------+
✨ Vérifier la solution et pratiquer

Résumé

Dans ce défi, vous avez pratiqué la création d'une requête qui combine les données de plusieurs tables en utilisant INNER JOIN dans MySQL. Les compétences démontrées incluent la connexion de tables à l'aide de leurs champs de relation, la sélection de colonnes spécifiques à partir de plusieurs tables et le tri des résultats. Ces compétences fondamentales en opérations de jointure (JOIN) sont essentielles pour travailler avec des bases de données relationnelles et seront fréquemment utilisées lors de la requête de données à partir de plusieurs tables liées.