Nous avons déjà parlé de SQL Server Management Studio, mais vous n’avez probablement pas eu l’occasion d’apprendre comment il peut vous aider à créer, maintenir et gérer vos bases de données relationnelles. C’est exactement ce que nous allons faire dans ce chapitre.
Connectez-vous à un serveur
Vous vous êtes peut-être connecté à un serveur pendant l’installation de SSMS, mais au cas où vous auriez ignoré, nous allons ajouter un serveur à votre installation SQL Server via SSMS.
Démarrez SSMS. Cette fenêtre de connexion au serveur SQL s’affiche :
Vous pouvez aussi accéder à cette fenêtre en cliquant sur le menu déroulant Connect dans la fenêtre Object Explorer et en sélectionnant Database Engine… :
Pour sélectionner le serveur sur lequel vous voulez vous connecter, cliquez sur le menu déroulant Server name, comme indiqué ci-dessous. Vous verrez toutes les instances SQL Server détectées par SSMS. Vous pouvez sélectionner celle qui vous intéresse. Cependant, si rien n’apparaît ici, ou si vous devez vous connecter à un serveur différent, vous pouvez cliquer sur <Browse…>. Vous pouvez également saisir (ou coller) le nom du serveur auquel vous souhaitez vous connecter, comme celui qui figure dans la chaîne de connexion de votre application :
À ce stade, vous pouvez modifier le type d’authentification si nécessaire. Pour les installations locales, il s’agira très probablement de Windows Authentication, qui correspondra par défaut à votre nom d’utilisateur Windows. Cliquez ensuite sur Connect, et vous serez connecté au serveur. Si vous vous connectez à un serveur en ligne ou en réseau, sélectionnez Authentication SQL Server dans la liste déroulante. Nous le ferons plus tard quand nous allons configurer votre serveur Azure. Pour l’instant, restons-en à l’installation de votre serveur local et à l’authentification Windows.
Explorez les objets de la base de données
Dès que vous êtes connecté au serveur, l'Object Explorer affiche toutes les informations utiles à cette session. Ça fonctionne comme un explorateur de fichiers, divisant votre serveur en composants simples, classés par dossiers. Les bases de données apparaissent avec une icône de conteneur de base de données juste à côté. Celles-ci, comme les dossiers, sont également extensibles, et l’extension d’une base de données fait apparaître une liste de dossiers organisés dans la base de données contenant les différents composants avec lesquels vous pourriez avoir besoin d’interagir.
Retrouvez vos bases de données
C’est le dossier Databases qui nous intéresse, car il contient toutes les bases de données que vous avez créées sur ce serveur.
Ce dossier en contient deux autres : System Databases et Database Snapshots. Nous ne les utiliserons pas dans ce cours et nous les ignorons pour l’instant.
En dessous de ces dossiers se trouvent les bases de données que vous avez créées sur ce serveur. Vous y trouverez celle qui utilise les migrations code first de la première partie du cours. Développez cette base de données pour voir la liste des dossiers qu’elle contient.
Nous allons utiliser trois dossiers ici : Database Diagrams (Schémas de base de données), Tables et Programmability. Nous n’allons pas utiliser les autres dossiers dans le cadre de ce cours. Commençons par le dossier Tables. Développez le dossier Tables pour obtenir la liste de toutes les tables de la base de données. Vos tables devraient correspondre au modèle de données que vous avez créé dans la première partie du cours. De plus, vous aurez une table Migrations qui enregistre les migrations que vous effectuez chaque fois que vous exécutez la commande update-database dans la console du gestionnaire de packages de Visual Studio. Vous devriez également voir sept autres tables AspNet qui ont été créées par Entity Framework pour gérer vos connexions et comptes d’utilisateur sécurisés.
Explorez les tables
Vous devriez déjà avoir compris comment l’Object Explorer de SSMS vous aide à naviguer rapidement et facilement dans le contenu de votre installation SQL Server. Maintenant, approfondissons un peu plus certaines des autres fonctionnalités de l’interface SSMS.
Tout d’abord, développez la table Recettes. Plusieurs dossiers s’affichent sous cette table. Intéressons-nous aux dossiers Columns, Keys et Indexes, alors développez-les également.
Si vous avez correctement construit votre modèle dans la première partie de ce cours, vous devriez avoir quelque chose comme ceci. Dans le dossier Columns, vous trouverez toutes les colonnes qui ont été créées pour cette table, représentant les attributs d’objet que vous avez créés dans votre code C#. Vous pouvez voir ici les types de données associés à chaque colonne, si elle représente une valeur facultative (null ou not null), et lesquelles représentent les valeurs de clé primaire ou étrangère. Les clés primaires sont identifiées par des icônes de clés noires pointant vers la gauche, tandis que les clés étrangères sont notées par des icônes de clés ouvertes (blanches) pointant vers la droite.
Dans le dossier Keys, vous pouvez voir chaque clé correspondant aux clés primaires ou étrangères identifiées dans le dossier Columns. Les noms des clés étrangères sont formés par la concaténation du nom de la table courante et de celui de la table ciblée par la clé étrangère.
Le dossier Indexes affiche tous les index créés pour une table donnée et identifie les colonnes auxquelles ils sont appliqués. Ici, un index en cluster (pour les valeurs uniques) est appliqué à la clé primaire, qui se trouve dans la colonne Id de cette table. Vous pouvez également voir que deux index non uniques et non cluster sont appliqués à chacune des colonnes de clé étrangère de cette table. Nous n’avons pas eu à créer ces index. Toute colonne contenant une clé primaire ou étrangère générera un index pour elle quand on utilise les migrations code first.
Tirez parti des raccourcis (Quick Functions)
Êtes-vous familier avec les menus contextuels ? Lorsque vous faites un clic droit sur un objet, un nouveau menu s’affiche, n’est-ce pas ? Les éléments SSMS utilisent aussi les menus contextuels. Faites un clic droit sur la table Recette dans l’explorateur d’objets et observez ce qui se passe.
Ce menu contextuel, spécifique aux fonctions liées aux tables, offre de nombreuses fonctionnalités avantageuses. Toutefois, nous allons uniquement nous intéresser à quatre d’entre elles aujourd’hui :
Table…
Design
Select Top 1000 Rows (Sélectionner les 1 000 premières lignes)
Edit Top 200 Rows (Modifier les 200 premières lignes)
Allons-y dans l’ordre.
Table…
Les points de suspension (…) qui suivent cet élément indiquent que le contenu peut varier d’une table à l’autre. Ce lien rapide fait apparaître une fenêtre dans laquelle vous pouvez créer une nouvelle table avec toutes ses colonnes. Nous l’utiliserons un peu plus tard, alors gardez-le à l’esprit.
Design
Cette option fait apparaître une fenêtre affichant le schéma complet de la table sélectionnée. Chaque colonne est représentée, ainsi que son type de données et une mention indiquant si elle accepte les valeurs nulles. Lorsqu’une colonne est sélectionnée, le volet inférieur affiche toutes les propriétés de cette colonne. Les propriétés modifiables peuvent être modifiées dans le volet des Column Properties.
Si vous modifiez l’une des données de cette vue, un astérisque apparaît à droite du nom de la table dans l’onglet supérieur, indiquant que vos modifications n’ont pas été enregistrées. Enregistrez-les en cliquant sur l’icône Save dans la barre de menu.
Select Top 1000 Rows
Comme vous l’avez peut-être deviné, il s’agit simplement d’un lien rapide vers une commande SQL permettant de récupérer les 1 000 premiers enregistrements de la table. Ce qui est génial avec cette commande, c’est qu’elle ne se contente pas de récupérer les résultats, elle affiche également la requête SQL.
Il s’agit en fait d’une fenêtre d’exécution SQL. Vous pouvez donc apporter les modifications que vous souhaitez, puis cliquez sur le bouton Execute dans la barre de menus en haut (vous pouvez également faire un clic droit dans le volet et choisir Execute, ou appuyer sur la touche F5) pour exécuter la nouvelle requête.
Edit Top 200 Rows
Comme le lien précédent, celui-ci fait apparaître une requête SQL dont le résultat est un volet d’édition pour les 200 premiers enregistrements de la table.
C’est l’une des façons d’ajouter manuellement de nouvelles données à votre table, ou de modifier des enregistrements existants.
Autres méthodes d’exécution des requêtes
Vous vous demandez peut-être s’il existe un moyen simple d’écrire et d’exécuter des requêtes SQL directement dans votre base de données sans avoir à utiliser des liens et requêtes prédéfinis. Bien sûr, c’est possible ! Dans la barre d’outils, en haut de l’écran, se trouve un bouton New Query. Cliquez dessus chaque fois que vous souhaitez écrire et exécuter une requête SQL dans votre base de données.
Un volet d’édition dans lequel vous pouvez écrire vos requêtes SQL s’ouvre. Cliquez ensuite sur Execute (ou appuyez sur la touche F5) pour exécuter votre requête. L’éditeur fonctionne comme l’éditeur de code dans Visual Studio. Vos chaînes SQL sont ainsi codées en couleur, et vous êtes averti des éventuelles erreurs commises lors de l’écriture de la requête. Notez les erreurs indiquées par les lignes rouges dans l’exemple ci-dessous :
Une requête correcte, prête à être exécutée, ne présentera pas de telles erreurs :
Utilisez les schémas de base de données interactifs
Comme je l’ai mentionné, la fonction Database Diagrams de SSMS est l’un des outils les plus puissants disponibles. Découvrons comment l’utiliser !
La première fois que vous essayez de créer un nouveau schéma, on vous dira que le support de schéma n’est pas installé, et on vous demandera si vous souhaitez l’installer. Cliquez sur Yes.
Une fois la fonctionnalité installée, vous pouvez créer un nouveau schéma en faisant un clic droit sur le dossier Database Diagrams et en sélectionnant New Database Diagram.
Cela fait apparaître la fenêtre Add Table.
J’ai expliqué précédemment que vous pouviez construire un schéma représentant l’ensemble de votre base de données, ou seulement des parties de celle-ci. Nous allons donc en construire un qui représente uniquement les entités du modèle que vous avez créées lorsque vous avez conçu votre modèle de données dans la première partie. Pour sélectionner plusieurs tables, maintenez la touche CTRL enfoncée et cliquez sur les tables à ajouter. Lorsque vous avez sélectionné vos tables, cliquez sur Add.
Lorsque les tables sont ajoutées, cliquez sur Close. Le résultat est un modèle entité-association généré automatiquement et représentant les tables que vous avez sélectionnées.
Faites un clic droit sur une table et choisissez Properties dans le menu contextuel. Ce volet affiche non seulement les propriétés de la table, mais permet également de les modifier, car la plupart d’entre elles sont modifiables depuis le schéma.
Les noms des tables peuvent être modifiés directement dans le volet des Properties. Pour modifier le nom d’une colonne dans le schéma, cliquez dessus et modifiez-le. Les colonnes et les tables peuvent être ajoutées ou supprimées de la base de données par le biais des menus contextuels.
La meilleure façon de vous familiariser avec les fonctions supplémentaires du schéma interactif est de vous entraîner un peu. La plupart des fonctionnalités sont disponibles par le biais des menus contextuels. Si vous faites un clic droit sur le fond blanc, le menu qui s’affiche est différent de celui qui s’affiche si vous le faites sur l’une des tables ou sur l’une des colonnes d’une table. Prenez quelques minutes pour explorer et vous familiariser avec ces fonctions. Cette base de données est un endroit sécurisé pour vous entraîner, car nous n’allons pas l’utiliser pour le moment.
Dans le chapitre suivant, vous allez créer une toute nouvelle base de données dans SSMS. Cette dernière ne sera ni plus ni moins qu’une copie de votre base de données actuelle. N’hésitez donc pas à jouer avec et explorer toutes les fonctionnalités disponibles, comme l’outil de création de diagrammes, afin de vous familiariser avec SSMS. 😉
En résumé
Ce chapitre a été consacré à la découverte et à la prise en main de SSMS. Vous avez appris :
à vous connecter à un serveur de bases de données et à parcourir les bases de données qu’il contient ;
à tirer parti des raccourcis disponibles dans les différents menus contextuels ;
comment exécuter des requêtes prédéfinies et personnalisées au moyen des raccourcis et du volet de requêtes SQL respectivement ;
et enfin, comment créer un schéma de base de données dans SSMS et l’utiliser pour visualiser et apporter des modifications sur une table, sur les relations et sur les propriétés des tables.
Dans le prochain chapitre, nous allons nous appuyer sur ce que vous avez appris ici et créer une nouvelle base de données dans l’IDE SSMS.