Exercice - Se connecter à votre base de données et ajouter des exemples de données
Avant de connecter la base de données à votre application, vous souhaitez vérifier que vous pouvez vous y connecter, ajouter une table de base et utiliser des exemples de données.
Nous gérons l’infrastructure, les mises à jour logicielles et les correctifs pour votre base de données SQL Azure. Vous pouvez traiter votre base de données Azure SQL comme vous le feriez pour n’importe quelle autre installation de SQL Server. Par exemple, vous pouvez utiliser Visual Studio, SQL Server Management Studio, Azure Data Studio ou d’autres outils pour gérer votre base de données SQL Azure.
La façon dont vous accédez à votre base de données et dont vous la connectez à votre application dépend de vous. Pour vous permettre d’expérimenter l’utilisation de votre base de données, nous allons nous y connecter directement à partir du portail, créer une table et exécuter quelques opérations CRUD de base. Voici ce que vous apprenez :
- Ce qu’est Cloud Shell et comment y accéder à partir du portail.
- Comment accéder aux informations sur votre base de données à partir de l’interface CLI Azure, notamment les chaînes de connexion.
- Comment se connecter à votre base de données avec
sqlcmd
. - Comment initialiser votre base de données avec une table de base et des exemples de données.
Présentation d’Azure Cloud Shell
Azure Cloud Shell est un shell dans un navigateur qui permet de gérer et de développer des ressources Azure. Vous pouvez considérer que Cloud Shell est une console interactive qui s’exécute dans le cloud.
En réalité, Cloud Shell s’exécute sur Linux. Selon que vous préférez un environnement Linux ou Windows, vous pouvez toutefois choisir entre deux expériences : Bash et PowerShell.
Cloud Shell est accessible de n’importe où. Outre le portail, vous pouvez aussi accéder à Cloud Shell à partir de shell.azure.com, d’Azure mobile app ou de Visual Studio Code.
Cloud Shell comprend des outils et des éditeurs de texte très prisés. Voici un bref aperçu des utilitaires az
, jq
et sqlcmd
, les trois outils que vous utilisez dans cet exercice.
az
est également appelé Azure CLI. Il s’agit de l’interface de ligne de commande permettant de travailler avec des ressources Azure. Vous utilisez cette interface pour obtenir des informations sur votre base de données, notamment la chaîne de connexion.jq
est un analyseur JSON en ligne de commande. Vous dirigez la sortie des commandesaz
vers cet outil pour extraire des champs importants à partir de la sortie JSON.sqlcmd
vous permet d’exécuter des instructions sur SQL Server. Vous utilisezsqlcmd
pour créer une session interactive avec votre base de données SQL Azure.
Obtenir des informations sur votre base de données SQL Azure
Avant de vous connecter à votre base de données, il est judicieux de vérifier qu’elle existe et qu’elle est en ligne.
Ici, vous utilisez l’utilitaire az
pour dresser la liste de vos bases de données et afficher des informations sur la base de données Logistics, notamment sa taille maximale et son état.
Les commandes
az
que vous exécutez nécessitent le nom de votre groupe de ressources et le nom de votre serveur logique Azure SQL. Pour enregistrer des séquences de touches, exécutez cette commandeazure configure
pour les définir comme valeurs par défaut.Remplacez
[server-name]
par le nom du serveur logique Azure SQL que vous avez créé et[resource-group]
par le groupe de ressources que vous avez utilisé pour votre serveur.az configure --defaults group=[resource-group] sql-server=[server-name]
Notes
Selon le volet sur lequel vous vous trouvez dans le portail, le nom de votre serveur SQL peut s’afficher sous la forme d’un FQDN (par exemple, servername.database.windows.net). Toutefois, pour cette commande, vous n’avez besoin que du nom logique sans le suffixe .database.windows.net.
Exécutez la commande
az sql db list
suivante pour lister toutes les bases de données de votre serveur logique Azure SQL :az sql db list
Vous obtenez un grand bloc de code JSON en sortie.
Dans la mesure où nous souhaitons seulement obtenir les noms de bases de données, exécutez la commande une deuxième fois. Mais cette fois-ci, dirigez la sortie vers
jq
pour afficher seulement les champs de nom.az sql db list | jq '[.[] | {name: .name}]'
Vous devriez obtenir cette sortie :
[ { "name": "Logistics" }, { "name": "master" } ]
Logistics
est votre base de données. Comme SQL Server, la base de données systèmemaster
inclut les métadonnées du serveur, comme les connexions et les paramètres de configuration système.Exécutez la commande
az sql db show
suivante pour obtenir plus d’informations sur la base de donnéesLogistics
:az sql db show --name Logistics
Comme précédemment, vous voyez un grand bloc de code JSON en sortie.
Exécutez la commande une deuxième fois. Cette fois-ci, dirigez la sortie vers
jq
pour limiter la sortie sur le nom uniquement, la taille maximale et l’état de la base de données Logistics.az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
La base de données apparaît en ligne et indique la quantité maximale de données qu’elle peut stocker.
{ "name": "Logistics", "maxSizeBytes": 2147483648, "status": "Online" }
Se connecter à votre base de données
Maintenant que vous en savez un peu plus sur votre base de données, nous allons nous y connecter avec sqlcmd
, créer une table qui contient des informations sur les chauffeurs effectuant des transports et effectuer quelques opérations CRUD de base.
N’oubliez pas que CRUD est l’acronyme de Create (Créer), Read (Lire), Update (Mettre à jour) et Delete (Supprimer). Ces termes font référence aux opérations que vous effectuez sur les données des tables : ce sont les quatre opérations de base dont vous avez besoin pour votre application. C’est le bon moment pour vérifier que vous pouvez effectuer chacune d’elles.
Exécutez la commande
az sql db show-connection-string
suivante pour obtenir la chaîne de connexion à la base de donnéesLogistics
dans un format utilisable parsqlcmd
:az sql db show-connection-string --client sqlcmd --name Logistics
Votre sortie se présente comme dans l’exemple suivant. Copiez cette sortie pour l’utiliser à l’étape suivante.
"sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
Exécutez l’instruction
sqlcmd
à partir de la sortie de l’étape précédente pour créer une session interactive. Supprimez les guillemets et remplacez<username>
et<password>
par le nom d’utilisateur et le mot de passe que vous avez spécifiés au moment de la création de votre base de données. Voici un exemple :sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Conseil
Placez votre mot de passe entre guillemets pour que « & » et les autres caractères spéciaux ne soient pas interprétés comme des instructions de traitement.
Important
Vous pouvez voir un message d’erreur semblable à l’exemple suivant :
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server: Cannot open server 'contoso' requested by the login. Client with IP address 'nnn.nnn.nnn.nnn' is not allowed to access the server. To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range. It may take up to five minutes for this change to take effect.
Si cette erreur se produit, vous devez ajouter une autre règle de pare-feu pour votre client. Pour ce faire, suivez les étapes suivantes :
Connectez-vous au portail Azure.
Dans la page d’accueil Azure, sous Services Azure, sélectionnez Toutes les ressources. Le volet Toutes les ressources s’affiche.
Recherchez et sélectionnez votre base de données. Le volet Logistique apparaît pour votre base de données SQL.
Dans la barre de menus supérieure, sélectionnez Définir le pare-feu du serveur. Le volet Mise en réseau s’affiche.
Dans la section Règles de pare-feu, sélectionnez Ajouter une règle de pare-feu. Le volet Ajouter une règle de pare-feu s’affiche.
Spécifiez un Nom de règle unique, puis entrez votre adresse IP indiquée au sein du message d’erreur dans les champs Adresse IP de début et Adresse IP de fin. Sélectionnez OK.
Sélectionnez Enregistrer.
Réexécutez l’instruction
sqlcmd
pour lancer votre sessionsqlcmd
interactive. La commande doit ressembler à l’exemple suivant :
sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Maintenant que vous avez lancé votre session
sqlcmd
, les commandes restantes utilisent le langage Transact-SQL ou T-SQL.Conseil
Quand vous exécutez des commandes T-SQL dans ce module, la commande
GO
sur la deuxième ligne peut ne pas être copiée via l’invitesqlcmd
. Après avoir entré la première ligne de la commande, il est possible que vous deviez taper la commandeGO
. La commande T-SQL ne fonctionnant pas sans la commandeGO
, veillez à l’exécuter.À partir de votre session
sqlcmd
, exécutez les instructions T-SQL suivantes pour créer une table nomméeDrivers
:CREATE TABLE Drivers (DriverID int, LastName varchar(255), FirstName varchar(255), OriginCity varchar(255)); GO
La table contient quatre colonnes : un identificateur unique, le nom et le prénom du chauffeur, et sa ville d’origine.
Exécutez les instructions T-SQL suivantes pour vérifier que la table
Drivers
existe :SELECT name FROM sys.tables; GO
Vous devriez obtenir cette sortie :
name -------------------------------------------------------------------------------------------------------------------------------- Drivers (1 rows affected)
Pour tester l’opération de création, exécutez les instructions T-SQL suivantes pour ajouter un exemple de ligne à la table :
INSERT INTO Drivers (DriverID, LastName, FirstName, OriginCity) VALUES (123, 'Zirne', 'Laura', 'Springfield'); GO
Cette sortie indique que l’opération a réussi :
(1 rows affected)
Pour tester l’opération de lecture, exécutez les instructions T-SQL suivantes pour lister les colonnes
DriverID
etOriginCity
pour toutes les lignes de la table :SELECT DriverID, OriginCity FROM Drivers; GO
Vous obtenez un résultat, avec les
DriverID
etOriginCity
pour la ligne que vous avez créée à l’étape précédente.DriverID OriginCity ----------- -------------------------- 123 Springfield (1 rows affected)
Pour tester l’opération de mise à jour, exécutez les instructions T-SQL suivantes pour remplacer la ville d’origine « Springfield » par « Boston » pour le chauffeur pour lequel
DriverID
est égal à 123 :UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=123; GO
Exécutez les instructions T-SQL suivantes pour lister à nouveau les colonnes
DriverID
etOriginCity
:SELECT DriverID, OriginCity FROM Drivers; GO
Vous devez maintenant obtenir la sortie suivante. Comme vous pouvez le constater,
OriginCity
montre que la valeur a été remplacée par Boston.DriverID OriginCity ----------- -------------------------- 123 Boston (1 rows affected)
Pour finir, testez l’opération de suppression en exécutant les instructions T-SQL suivantes pour supprimer l’enregistrement :
DELETE FROM Drivers WHERE DriverID=123; GO
(1 rows affected)
Exécutez les instructions T-SQL suivantes pour vérifier que la table
Drivers
est vide :SELECT COUNT(*) FROM Drivers; GO
Vous voyez que la table ne contient aucune ligne.
----------- 0 (1 rows affected)
Comme vous avez maintenant une idée générale du fonctionnement d’Azure SQL Database à partir de Cloud Shell, vous pouvez obtenir la chaîne de connexion pour votre outil de gestion SQL préféré, qu’il s’agisse de SQL Server Management Studio, de Visual Studio ou autre.
Cloud Shell permet d’accéder à et d’utiliser facilement vos ressources Azure. Cloud Shell étant basé sur un navigateur, vous pouvez y accéder à partir de Windows, de macOS ou de Linux, c’est-à-dire en fait à partir de n’importe quel système avec un navigateur web.
Vous avez acquis une certaine expérience pratique en exécutant des commandes Azure CLI pour obtenir des informations sur votre base de données SQL Azure. De plus, vous avez utilisé vos qualifications T-SQL.
Dans l’unité suivante, nous concluons ce module et indiquons comment détruire votre base de données.