Exercício – ligar à sua base de dados e adicionar dados de exemplo

Concluído

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, jqque 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 de az comandos para esta ferramenta para extrair campos importantes da saída JSON.
  • O sqlcmd permite-lhe executar as instruções no SQL Server. Você usa sqlcmd 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.

  1. 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 este azure 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.

  2. 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.

  3. 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 do master sistema.

  4. Execute o seguinte az sql db show comando para obter detalhes sobre o Logistics banco de dados:

    az sql db show --name Logistics
    

    Tal como anteriormente, verá um grande bloco de JSON como resultado.

  5. 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.

  1. Execute o seguinte az sql db show-connection-string comando para obter a cadeia de conexão para o Logistics banco de dados em um formato que sqlcmd 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:contoso-1.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
    
  2. 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:contoso-1.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 interativa sqlcmd . Deve ser algo parecido com o seguinte exemplo:

    sqlcmd -S tcp:contoso-1.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 GOsqlcmd prompt. Depois de inserir a primeira linha do comando, talvez seja necessário digitar o GO comando. O comando T-SQL não será executado sem ele, por isso certifique-se de que executa o comando GO.

  3. Na sessão sqlcmd , execute as seguintes instruções T-SQL para criar uma tabela chamada Drivers:

    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.

  4. 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)
    
  5. 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)
    
  6. Para testar a operação de leitura, execute as seguintes instruções T-SQL para listar as colunas e OriginCity de todas as DriverID linhas da tabela:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Você obtém um resultado com o DriverID e OriginCity para a linha que você criou na etapa anterior.

    DriverID    OriginCity
    ----------- --------------------------
            123 Springfield
    
    (1 rows affected)
    
  7. 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
    
  8. Execute as seguintes instruções T-SQL para listar as DriverID colunas e OriginCity 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)
    
  9. 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)
    
  10. 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.