Archives Wild Code School
Microsoft SQL Server

TSQL - Les jointures

Quête 7 sur 7 · 2 images archivées

Cette quête t'apprendra à tirer profit d'une fonctionnalité essentielle des bases de données relationnelles: les jointures.

Objectifs

  • Comprendre le principe des jointures

  • Savoir définir des clés étrangères en Transact-SQL

  • Connaître les différents types de jointures

  • Appliquer des contraintes à une clé étrangère pour préserver la cohérence des données

A la rencontre de l'espace

Avec les avancées technologiques des dernières années, nos capacités de transfert de données se sont étendues à l'espace. Cela n'est pas resté inaperçu puisqu'une majeure partie de nos communications furent interceptées par des martiens curieux. Suite à ces interceptions fortuites, les martiens décidèrent de rentrer en contact avec nous car nous étions la dernière race connue à ne pas faire partie du Conseil Intergalactique !

Il nous est possible de rejoindre le Conseil Intergalactique à une seule condition: que nous fassions évoluer notre technologie d'information pour pouvoir tracer l'introduction d'espèces extra-terrestres sur le territoire terrien.

Nous disposons des moyens technique nous permettant de grimper sur l'échelle sociale universelle, et tu as été choisi pour mener le projet à bien.

Des relations entre entités

Afin d'introduire des notions de relations entre entités dans un schéma de base de données relationnelle, on utilise ce qu'on appelle une clé étrangère.

Exemple de schéma relationnel:

Les clé étrangères permettent de créer des jointures entre des tables d'une base de donnée relationnelle. Les jointures permettent d'établir des relations entre les entités. Ces relations rendent des abstractions réalistes possibles.

↗
MSDN - Clé étrangère

Créer une clé étrangère avec SQL Server

docs.microsoft.com
↗
Les jointures expliquées

Vidéo expliquant le principe des jointures

youtube.com

Récupérer des entités relationnellement

Afin de pouvoir récupérer différentes entités se relatant, il faut agrémenter nos requêtes de sélection habituelles de l'utilisation de JOIN qui joint deux tables entre elles en une seule requête.

Tous les types de jointures:

↗
INNER JOIN

Exemples d'utilisation de INNER JOIN

sqlservertutorial.net
↗
Les autres jointures

Différents types de jointures en SQL

w3schools.com

Les contraintes

Un des avantages à utiliser les mécanismes de _clé étrangère _est de pouvoir appliquer des contraintes spécifiques au comportement des relations. Ces contraintes facilitent les mises à jour et les opérations sur une base de données.

A l'aide d'une contrainte, il est possible d'empêcher une entité d'exister sans être en relation avec une autre. Cela participe à prévenir les problèmes de cohérence et d'intégrité des données.

↗
Contraintes basiques

Exemples d'utilisation et explication de contraintes sur une clé étrangère

sqlservertutorial.net
↗
ON UPDATE CASCADE

Fil de discussion à propos de l'utilité de UPDATE CASCADE

stackoverflow.com
↗
ON UPDATE/DELETE

Fil de discussion à propos du comportement de UPDATE CASCADE et DELETE CASCADE

dba.stackexchange.com

Challenge

Les martiens V2

Les martiens ont maintenant joint la planète Terre et aimeraient que nous mettions en commun nos technologies afin que le Conseil Intergalactique nous concède un siège.

Tu dois créer un schéma de base de donnée permettant de référencer les relations entre humains et martiens.

Critères de validation

  • Un fichier TSQL permettant de créer la base est fourni

  • Le fichier TSQL crée des données de test

  • Chaque martien habilité à communiquer avec les terriens a un et unique terrien de référence

  • Chaque terrien a un continent terrien de référence

  • Chaque martien a une base martienne de référence

  • Chaque martien a un autre martien qui lui est supérieur

  • L'empereur des martiens est supérieur à lui-même

  • Dans le fichier TSQL, fournir une requête renvoyant l'affiliation de chaque martien a son terrien de référence. La requête doit contenir les champs suivants:

    • Le nom du martien

    • Le nom du référent terrien

    • Le continent de référence du terrien

    • La base du martien