Exercício – conectar-se ao banco de dados e adicionar dados de exemplo
Antes de conectar o banco de dados ao aplicativo, é interessante verificar se você consegue se conectar a ele, adicionar uma tabela básica e trabalhar usando dados de exemplo.
Manteremos a infraestrutura, as atualizações de software e os patches do Banco de Dados SQL do Azure. Você pode tratar o Banco de Dados SQL do Azure como trataria qualquer outra instalação do SQL Server. Por exemplo, você pode usar o Visual Studio, o SQL Server Management Studio, o Azure Data Studio ou outras ferramentas para gerenciar o Banco de Dados SQL do Azure.
A maneira de acessar o banco de dados e conectá-lo ao aplicativo fica a seu critério. Para ganhar experiência no trabalho com o banco de dados, aqui você vai se conectar a ele diretamente do portal, criar uma tabela e executar algumas operações CRUD básicas. Aqui, você aprenderá:
- O que é o Cloud Shell e como acessá-lo do portal.
- Como acessar informações sobre seu banco de dados da CLI do Azure, incluindo cadeias de conexão.
- Como conectar-se ao seu banco de dados usando
sqlcmd
. - Como inicializar o banco de dados com uma tabela básica e alguns dados de exemplo.
O que é o Azure Cloud Shell?
Azure Cloud Shell é uma experiência de shell baseada em navegador para gerenciar e desenvolver recursos do Azure. Pense no Cloud Shell como um console interativo executado na nuvem.
Nos bastidores, o Cloud Shell é executado no Linux. Porém, dependendo da sua escolha de ambiente, Linux ou Windows, há duas experiências a escolher: Bash e PowerShell.
O Cloud Shell pode ser acessado de qualquer lugar. Além do portal, você também pode acessar o Cloud Shell do shell.azure.com, do aplicativo móvel do Azure ou do Visual Studio Code.
O Cloud Shell inclui ferramentas e editores de texto populares. Aqui está uma visão rápida dos utilitários az
, jq
e sqlcmd
, que são as três ferramentas que você usará para este exercício.
az
também é conhecido como a CLI do Azure. É a interface de linha de comando para trabalhar com recursos do Azure. Você usará esta interface para obter informações sobre seu banco de dados, incluindo a cadeia de conexão.jq
é um analisador JSON de linha de comando. Você direcionará a saída dos comandosaz
para essa ferramenta para extrair campos importantes da saída JSON.sqlcmd
permite que você execute instruções no SQL Server. Você usarásqlcmd
para criar uma sessão interativa com o Banco de Dados SQL do Azure.
Obter informações sobre o Banco de Dados SQL do Azure
Antes de conectar-se ao banco de dados, é bom verificar se ele existe e está online.
Aqui, você usa o utilitário az
para listar seus bancos de dados e mostrar algumas informações sobre o banco de dados de Logística, incluindo seu tamanho máximo e status.
Os comandos
az
que você executará exigem o nome do grupo de recursos e o nome do servidor lógico do SQL do Azure. Execute o comandoazure configure
para especificá-los como valores padrão em vez de digitá-los.Substitua
[server-name]
pelo nome do servidor lógico do SQL do Azure que você criou e[resource-group]
pelo grupo de recursos usado para o servidor.az configure --defaults group=[resource-group] sql-server=[server-name]
Observação
Dependendo do painel no portal, o nome do SQL Server pode ser exibido como um FQDN (por exemplo, servername.database.windows.net). No entanto, para este comando, você só precisa do nome lógico sem o sufixo .database.windows.net.
Execute o comando
az sql db list
a seguir para listar todos os bancos de dados no servidor lógico do SQL do Azure:az sql db list
Você vê um grande bloco de JSON como saída.
Como queremos ver apenas os nomes de banco de dados, execute o comando uma segunda vez. Mas desta vez, direcione a saída para
jq
a fim de exibir somente os campos de nome.az sql db list | jq '[.[] | {name: .name}]'
Você deverá obter esta saída:
[ { "name": "Logistics" }, { "name": "master" } ]
Logistics
é o banco de dados. Como o SQL Server, o banco de dados do sistemamaster
inclui os metadados do servidor, como as definições de configurações de entrada e do sistema.Execute o comando
az sql db show
a seguir para obter detalhes sobre o banco de dadosLogistics
:az sql db show --name Logistics
Como antes, você vê um grande bloco de JSON como saída.
Execute o comando uma segunda vez. Nesse momento, direcione a saída para
jq
para limitá-la somente ao nome, ao tamanho máximo e ao status do banco de dados de Logística.az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
Você verá que o banco de dados está online e o valor máximo de volume que pode ser armazenado nele.
{ "name": "Logistics", "maxSizeBytes": 2147483648, "status": "Online" }
Conectar-se ao seu banco de dados
Agora que você entendeu um pouco sobre seu banco de dados, vamos nos conectar a ele usando sqlcmd
, criar uma tabela que contém informações sobre drivers de transporte e executar algumas operações CRUD básicas.
Lembre-se de que CRUD significa criar, ler, atualizar e excluir. Esses termos se referem às operações executadas em dados de tabela, que são compostas por quatro operações básicas e necessárias para seu aplicativo. Agora é um bom momento para verificar se você pode executar cada uma delas.
Execute o comando
az sql db show-connection-string
a seguir para obter a cadeia de conexão do banco de dadosLogistics
em um formato que osqlcmd
possa usar:az sql db show-connection-string --client sqlcmd --name Logistics
A saída é parecida com o exemplo a seguir. Copie essa saída para usar na próxima etapa.
"sqlcmd -S tcp:contoso-1.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
Execute a instrução
sqlcmd
da saída da etapa anterior para criar uma sessão interativa. Remova as aspas e substitua<username>
e<password>
pelo nome de usuário e a senha que você especificou ao criar seu banco de dados. Aqui está um exemplo:sqlcmd -S tcp:contoso-1.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Dica
Coloque sua senha entre aspas para que “&” e outros caracteres especiais não sejam interpretados como instruções de processamento.
Importante
Poderá aparecer uma mensagem de erro semelhante ao exemplo a seguir:
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.
Se esse erro acontecer, será necessário adicionar outra regra de firewall ao cliente. Para isso, execute as etapas a seguir:
Faça logon no Portal do Azure.
Na Home page do Azure, em Serviços do Azure, selecione Todos os recursos. O painel Todos os recursos será exibido.
Procure pelo seu banco de dados e selecione-o. O painel Logística do banco de dados SQL é exibido.
Na barra de menus superior, selecione Definir o firewall do servidor. O painel Rede é exibido.
Na seção Regras de firewall, selecione Adicionar uma regra de firewall. O painel Adicionar uma regra de firewall será exibido.
Especifique um Nome de regra exclusivo e depois insira o endereço IP da mensagem de erro para os campos IP inicial e IP final. Selecione OK.
Clique em Salvar.
Execute a instrução
sqlcmd
novamente para iniciar sua sessão interativasqlcmd
. Ela terá uma aparência semelhante ao exemplo a seguir:
sqlcmd -S tcp:contoso-1.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Agora que você iniciou sua sessão
sqlcmd
, os comandos restantes usam a linguagem Transact-SQL ou T-SQL.Dica
Ao executar os comandos T-SQL nesse módulo, o
GO
na segunda linha pode não ser copiado para o promptsqlcmd
. Depois de inserir a primeira linha do comando, talvez seja necessário digitar o comandoGO
. O comando T-SQL não será executado sem ele, portanto, execute o comandoGO
.Na sessão
sqlcmd
, execute as seguintes instruções T-SQL para criar uma tabela chamadaDrivers
:CREATE TABLE Drivers (DriverID int, LastName varchar(255), FirstName varchar(255), OriginCity varchar(255)); GO
A tabela contém quatro colunas: um identificador exclusivo, o sobrenome e o nome do motorista e a cidade de origem do motorista.
Execute as seguintes instruções T-SQL para verificar se a tabela
Drivers
existe:SELECT name FROM sys.tables; GO
Você deverá obter esta saída:
name -------------------------------------------------------------------------------------------------------------------------------- Drivers (1 rows affected)
Para testar a operação de criação, execute as instruções T-SQL a seguir para adicionar uma linha de exemplo à tabela:
INSERT INTO Drivers (DriverID, LastName, FirstName, OriginCity) VALUES (123, 'Zirne', 'Laura', 'Springfield'); GO
Esta saída indica que a operação foi bem-sucedida:
(1 rows affected)
Para testar a operação de leitura, execute as seguintes instruções T-SQL para listar as colunas
DriverID
eOriginCity
de todas as linhas na tabela:SELECT DriverID, OriginCity FROM Drivers; GO
Será exibido um resultado com
DriverID
eOriginCity
para a linha que você criou na etapa anterior.DriverID OriginCity ----------- -------------------------- 123 Springfield (1 rows affected)
Para testar a operação de atualização, execute as instruções T-SQL a seguir para alterar a cidade de origem de "Springfield" para "Boston" do motorista com uma
DriverID
igual a 123:UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=123; GO
Execute as seguintes instruções T-SQL para listar as colunas
DriverID
eOriginCity
novamente:SELECT DriverID, OriginCity FROM Drivers; GO
Agora, deverá obter a saída a seguir. Observe como
OriginCity
reflete a atualização para Boston.DriverID OriginCity ----------- -------------------------- 123 Boston (1 rows affected)
Por fim, teste a operação de exclusão executando as instruções T-SQL a seguir a fim de excluir o registro:
DELETE FROM Drivers WHERE DriverID=123; GO
(1 rows affected)
Execute as seguintes instruções T-SQL para verificar se a tabela
Drivers
está vazia:SELECT COUNT(*) FROM Drivers; GO
Veja que a tabela não contém nenhuma linha.
----------- 0 (1 rows affected)
Agora que você tem uma ideia geral de como trabalhar com o banco de dados SQL do Azure usando o Cloud Shell, obtenha a cadeia de conexão da sua ferramenta favorita de gerenciamento de SQL, seja o SQL Server Management Studio, o Visual Studio ou outro programa.
Com o Cloud Shell, é mais fácil acessar e trabalhar com os recursos do Azure. Como o Cloud Shell é baseado no navegador, você pode acessá-lo usando o Windows, o macOS ou o Linux. Basicamente, qualquer sistema que tenha um navegador da Web.
Você ganhou experiência prática executando comandos da CLI do Azure para obter informações sobre seu Banco de Dados SQL do Azure. Como bônus, você praticou suas habilidades de T-SQL.
Na próxima unidade, concluiremos esse módulo e descreveremos como desativar seu banco de dados.