Exercício – ligar à sua base de dados e adicionar dados de exemplo
Antes de ligar a base de dados à sua aplicação, é recomendável verificar se consegue ligar-se à mesma, adicionar uma tabela básica e trabalhar com dados de exemplo.
Mantemos a infraestrutura, as atualizações de software e os patches da sua base de dados SQL do Azure. Você pode tratar seu banco de dados SQL do Azure como faria com qualquer outra instalação do SQL Server. Pode, por exemplo, utilizar o Visual Studio, o SQL Server Management Studio, o Azure Data Studio ou outras ferramentas para gerir a sua base de dados SQL do Azure.
Cabe-lhe a si determinar a forma de aceder à sua base de dados e ligá-la à sua aplicação. Para obter alguma experiência trabalhando com seu banco de dados, vamos nos conectar a ele diretamente do portal, criar uma tabela e executar algumas operações CRUD básicas. Aqui, você aprende:
- O que é o Cloud Shell e como pode aceder ao mesmo a partir do portal.
- Como pode aceder a informações sobre a sua base de dados a partir da CLI do Azure, incluindo cadeias de ligação.
- Como pode estabelecer ligação à sua base de dados com o
sqlcmd
. - Como inicializar a sua base de dados com uma tabela básica e alguns dados de exemplo.
O que é o Azure Cloud Shell?
O Azure Cloud Shell é uma experiência de shell baseada no browser para gerir e desenvolver recursos do Azure. Pense no Cloud Shell como uma consola interativa que é executada na cloud.
O Cloud Shell é executado com base no Linux. Mas, dependendo se você prefere um ambiente Linux ou Windows, você tem duas experiências para escolher: Bash e PowerShell.
O Cloud Shell é acessível a partir de qualquer lugar. Para além do portal, também pode aceder ao Cloud Shell a partir de shell.azure.com, da aplicação móvel do Azure ou do Visual Studio Code.
O Cloud Shell inclui ferramentas populares e editores de texto. Aqui está uma breve olhada no az
, e sqlcmd
utilitários, jq
que são três ferramentas que você usa neste exercício.
- O
az
também é conhecido como a CLI do Azure. É a interface de linha de comandos para trabalhar com recursos do Azure. Você usa essa interface para obter informações sobre seu banco de dados, incluindo a cadeia de conexão. - O
jq
é um analisador JSON de linha de comandos. Você canaliza a saída deaz
comandos para esta ferramenta para extrair campos importantes da saída JSON. - O
sqlcmd
permite-lhe executar as instruções no SQL Server. Você usasqlcmd
para criar uma sessão interativa com seu banco de dados SQL do Azure.
Obter informações sobre a sua base de dados SQL do Azure
Antes de ligar à sua base de dados, recomendamos que verifique se existe e está online.
É nesta fase que irá usar o utilitário az
para listar as suas bases de dados e mostrar algumas informações sobre a base de dados Logística, incluindo o respetivo estado e tamanho máximo.
Os
az
comandos executados exigem o nome do grupo de recursos e o nome do servidor lógico SQL do Azure. Para salvar pressionamentos de teclas, execute esteazure configure
comando para especificá-los como valores padrão.Substitua
[server-name]
pelo nome do servidor lógico SQL do Azure que você criou e[resource-group]
pelo grupo de recursos usado para seu servidor.az configure --defaults group=[resource-group] sql-server=[server-name]
Nota
Dependendo do painel em que você estiver no portal, o nome do servidor SQL pode ser exibido como um FQDN (por exemplo, servername.database.windows.net). No entanto, para este comando, só precisa do nome lógico sem o sufixo .database.windows.net.
Execute o seguinte
az sql db list
comando para listar todos os bancos de dados em seu servidor lógico SQL do Azure:az sql db list
Você obtém um grande bloco de JSON como saída.
Como queremos obter apenas os nomes do banco de dados, execute o comando uma segunda vez. Mas, desta vez, canalize a saída para
jq
exibir apenas os campos de nome.az sql db list | jq '[.[] | {name: .name}]'
Você deve obter esta saída:
[ { "name": "Logistics" }, { "name": "master" } ]
Logistics
é a sua base de dados. Como o SQL Server, o banco de dados do sistema inclui metadados do servidor, como logons e definições de configuração domaster
sistema.Execute o seguinte
az sql db show
comando para obter detalhes sobre oLogistics
banco de dados:az sql db show --name Logistics
Tal como anteriormente, verá um grande bloco de JSON como resultado.
Execute o comando uma segunda vez. Esse tempo canaliza a saída para
jq
limitar a saída apenas ao nome, tamanho máximo e status do banco de dados de Logística .az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
Você vê que o banco de dados está online e a quantidade máxima de dados que o banco de dados pode armazenar.
{ "name": "Logistics", "maxSizeBytes": 2147483648, "status": "Online" }
Ligar à sua base de dados
Agora que já sabe um pouco sobre a sua base de dados, vamos ligá-la através do sqlcmd
, criar uma tabela que contenha informações sobre os condutores de veículos e realizar algumas operações CRUD básicas.
Lembre-se de que CRUD significa Create (Criar), Read (Ler), Update (Atualizar) e Delete (Eliminar). Esses termos se referem às operações que você executa nos dados da tabela e são as quatro operações básicas necessárias para seu aplicativo. Agora é um bom momento para verificar se consegue realizar cada uma delas.
Execute o seguinte
az sql db show-connection-string
comando para obter a cadeia de conexão para oLogistics
banco de dados em um formato quesqlcmd
possa usar:az sql db show-connection-string --client sqlcmd --name Logistics
Sua saída é semelhante ao exemplo a seguir. Copie esta saída para usar na próxima etapa.
"sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
Execute a instrução
sqlcmd
do resultado do passo anterior para criar uma sessão interativa. Remova as aspas e substitua<username>
e<password>
pelo nome de utilizador e pela palavra-passe que especificou quando criou a base de dados. Eis um exemplo:sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Gorjeta
Coloque a palavra-passe entre aspas simples para que "&" e outros carateres especiais não sejam interpretados como instruções de processamento.
Importante
Poderá ver uma mensagem de erro semelhante ao exemplo seguinte:
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 ocorrer, você precisará adicionar outra regra de firewall para seu cliente. Para tal, efetue os seguintes passos:
Inicie sessão no Portal do Azure.
Na Home page do Azure, em Serviços do Azure, selecione Todos os recursos. O painel Todos os recursos é exibido.
Procure e selecione a sua base de dados. O painel Logística do banco de dados SQL é exibido.
Na barra de menu superior, selecione Definir 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 é exibido.
Especifique um Nome da regra exclusivo e, em seguida, introduza o endereço IP indicado na mensagem de erro nos campos IP Inicial e IP Final. Selecione OK.
Selecione Guardar.
Execute a
sqlcmd
instrução novamente para iniciar sua sessão interativasqlcmd
. Deve ser algo parecido com o seguinte exemplo:
sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
Agora que você iniciou sua
sqlcmd
sessão, os comandos restantes usam a linguagem Transact-SQL ou T-SQL.Gorjeta
Ao executar os comandos T-SQL neste módulo, o na segunda linha pode não copiar para o
GO
sqlcmd
prompt. Depois de inserir a primeira linha do comando, talvez seja necessário digitar oGO
comando. O comando T-SQL não será executado sem ele, por isso certifique-se de que executa 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 primeiro e último nome do condutor, e a respetiva cidade de origem.
Execute as seguintes instruções T-SQL para verificar se a
Drivers
tabela existe:SELECT name FROM sys.tables; GO
Você deve obter esta saída:
name -------------------------------------------------------------------------------------------------------------------------------- Drivers (1 rows affected)
Para testar a operação create , execute as seguintes instruções T-SQL 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 e
OriginCity
de todas asDriverID
linhas da tabela:SELECT DriverID, OriginCity FROM Drivers; GO
Você obtém um resultado com o
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 seguintes instruções T-SQL para alterar a cidade de origem de "Springfield" para "Boston" para o driver com um
DriverID
de 123:UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=123; GO
Execute as seguintes instruções T-SQL para listar as
DriverID
colunas eOriginCity
novamente:SELECT DriverID, OriginCity FROM Drivers; GO
Agora você deve obter a seguinte saída. Repare como o
OriginCity
reflete a atualização para Boston.DriverID OriginCity ----------- -------------------------- 123 Boston (1 rows affected)
Finalmente, teste a operação delete executando as seguintes instruções T-SQL para excluir o registro:
DELETE FROM Drivers WHERE DriverID=123; GO
(1 rows affected)
Execute as seguintes instruções T-SQL para verificar se a
Drivers
tabela está vazia:SELECT COUNT(*) FROM Drivers; GO
Verá que a tabela não contém linhas.
----------- 0 (1 rows affected)
Agora que você tem uma ideia geral para trabalhar com o Banco de Dados SQL do Azure a partir do Cloud Shell, pode obter a cadeia de conexão para sua ferramenta de gerenciamento SQL favorita, seja do SQL Server Management Studio, Visual Studio ou qualquer outra coisa.
O Cloud Shell facilita o acesso e o trabalho com os recursos do Azure. Como o Cloud Shell é baseado em navegador, você pode acessá-lo do Windows, macOS ou Linux; essencialmente qualquer sistema com um navegador web.
Obteve alguma experiência prática em matéria de execução de comandos da CLI do Azure para obter informações sobre a sua base de dados SQL do Azure. Além disso, também teve a oportunidade adicional de praticar as suas competências de T-SQL.
Na próxima unidade, encerramos este módulo e descrevemos como derrubar seu banco de dados.