Cvičení – připojení k databázi a přidání ukázkových dat

Dokončeno

Než k vaší aplikaci připojíte databázi, měli byste ověřit, jestli se k ní můžete připojit, a můžete také přidat základní tabulku a pracovat s ukázkovými daty.

O infrastrukturu, aktualizace softwaru a opravy pro vaši databázi Azure SQL Database se staráme my. S databází Azure SQL můžete zacházet stejně jako s jakoukoli jinou instalací SQL Serveru. Ke správě Azure SQL Database můžete používat třeba Visual Studio, SQL Server Management Studio, Azure Data Studio a další nástroje.

Jak budete k databázi přistupovat a jak ji připojíte k aplikacím, je na vás. Abychom získali zkušenosti s prací s databází, připojme se k ní přímo z portálu, vytvořte tabulku a spusťte několik základních operací CRUD. Tady se dozvíte:

  • Co je Cloud Shell a jak se k němu dostat z portálu.
  • Jak pomocí Azure CLI získat informace o vaší databázi, včetně připojovacích řetězců.
  • Jak se k databázi připojit pomocí sqlcmd.
  • Jak databázi inicializovat základní tabulkou a nějakými ukázkovými daty.

Co je Azure Cloud Shell?

Azure Cloud Shell je prostředí založené na prohlížeči, které je určené ke správě a vývoji prostředků Azure. Cloud Shell si můžete představit jako interaktivní konzolu, která běží v cloudu.

Pro zajímavost – Cloud Shell běží na Linuxu. V závislosti na tom, jestli dáváte přednost prostředí Linuxu nebo Windows, ale máte dvě možnosti, ze kterých si můžete vybrat: Bash a PowerShell.

Cloud Shell je přístupný odkudkoli. Ke Cloud Shellu se dostanete nejen z portálu, ale také z shell.azure.com, mobilní aplikace Azure nebo z Visual Studio Code.

Cloud Shell obsahuje oblíbené nástroje a textové editory. Zde je stručný přehled aznástrojů , jqa sqlcmd nástrojů, které používáte v tomto cvičení.

  • az se také označuje jako Azure CLI. Je to rozhraní příkazového řádku pro práci s prostředky Azure. Toto rozhraní slouží k získání informací o databázi, včetně připojovací řetězec.
  • jq je analyzátor příkazového řádku ve formátu JSON. Výstup z az příkazů do tohoto nástroje můžete táhnout tak, aby extrahovali důležitá pole z výstupu JSON.
  • sqlcmd umožňuje spouštět příkazy na SQL Serveru. Použijete sqlcmd k vytvoření interaktivní relace s databází Azure SQL.

Získání informací o Azure SQL Database

Než se k databázi připojíte, je vhodné ověřit, jestli existuje a je online.

Tady pomocí nástroje az vypíšete svoje databáze a zobrazíte některé informace o databázi Logistics (Logistika), včetně její maximální velikosti a stavu.

  1. Příkazy az , které spustíte, vyžadují název vaší skupiny prostředků a název logického serveru Azure SQL. Pokud chcete uložit stisknutí kláves, spusťte tento azure configure příkaz a zadejte je jako výchozí hodnoty.

    Nahraďte [server-name] názvem logického serveru Azure SQL, který jste vytvořili, a [resource-group] skupinou prostředků, kterou jste použili pro váš server.

    az configure --defaults group=[resource-group] sql-server=[server-name]
    

    Poznámka:

    V závislosti na podokně, na kterém jste na portálu, se název sql serveru může zobrazit jako plně kvalifikovaný název domény (například servername.database.windows.net). Pro tento příkaz ale potřebujete jenom logický název bez přípony .database.windows.net.

  2. Spuštěním následujícího az sql db list příkazu zobrazte seznam všech databází na logickém serveru Azure SQL:

    az sql db list
    

    Jako výstup získáte velký blok JSON.

  3. Protože chceme získat jenom názvy databází, spusťte příkaz podruhé. Tentokrát ale předáte výstup tak, aby jq zobrazoval jenom pole názvů.

    az sql db list | jq '[.[] | {name: .name}]'
    

    Měl by se zobrazit tento výstup:

    [
      {
        "name": "Logistics"
      },
      {
        "name": "master"
      }
    ]
    

    Logistics je vaše databáze. Stejně jako SQL Server master systémová databáze zahrnuje metadata serveru, jako jsou přihlášení a nastavení konfigurace systému.

  4. Spuštěním následujícího az sql db show příkazu získejte podrobnosti o Logistics databázi:

    az sql db show --name Logistics
    

    Jako předtím uvidíte jako výstup velký blok ve formátu JSON.

  5. Spusťte příkaz znovu. Tentokrát odešlete výstup tak, aby jq byl výstup omezen pouze na název, maximální velikost a stav databáze Logistics .

    az sql db show --name Logistics | jq '{name: .name, maxSizeBytes: .maxSizeBytes, status: .status}'
    

    Vidíte, že databáze je online a maximální množství dat, která může databáze uložit.

    {
      "name": "Logistics",
      "maxSizeBytes": 2147483648,
      "status": "Online"
    }
    

Připojení k databázi

Teď když už o vaší databázi něco víte, připojíme se k ní pomocí nástroje sqlcmd, vytvoříme tabulku obsahující informace o řidičích dopravy a provedeme pár základních operací CRUD.

CRUD označuje operace Create (vytvoření), Read (čtení), Update (aktualizace) a Delete (odstranění). Tyto termíny odkazují na operace, které provádíte s daty tabulky, a jsou to čtyři základní operace, které potřebujete pro vaši aplikaci. Teď je vhodná doba, abyste si ověřili, že umíte provést každou z nich.

  1. Spuštěním následujícího az sql db show-connection-string příkazu získejte připojovací řetězec do Logistics databáze ve formátu, který sqlcmd může použít:

    az sql db show-connection-string --client sqlcmd --name Logistics
    

    Výstup vypadá podobně jako v následujícím příkladu. Zkopírujte tento výstup pro použití v dalším kroku.

    "sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
    
  2. Spuštěním příkazu sqlcmd z výstupu předchozího kroku vytvořte interaktivní relaci. Odeberte uvozovky a nahraďte <username> a <password> uživatelským jménem a heslem, které jste zadali při vytváření databáze. Tady je příklad:

    sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
    

    Tip

    Dejte heslo do jednoduchých uvozovek, aby znak & a jiné speciální znaky, které jsou součástí hesla, nebyly interpretované jako příkazy pro zpracování.

    Důležité

    Může se zobrazit chybová zpráva podobná následujícímu příkladu:

    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.
    

    Pokud k této chybě dojde, musíte pro svého klienta přidat další pravidlo brány firewall. K tomu proveďte následující kroky:

    • Přihlaste se k webu Azure Portal.

    • Na domovské stránce Azure v části Služby Azure vyberte Všechny prostředky. Zobrazí se podokno Všechny prostředky .

    • Vyhledejte a vyberte svou databázi. Zobrazí se podokno Logistika pro vaši databázi SQL.

    • V horním řádku nabídek vyberte Nastavit bránu firewall serveru. Zobrazí se podokno Sítě .

    • V části Pravidla brány firewall vyberte Přidat pravidlo brány firewall. Zobrazí se podokno Přidat pravidlo brány firewall.

    • Zadejte jedinečný Název pravidla a pak zadejte svou IP adresu z chybové zprávy pro pole Počáteční IP adresa i Koncová IP adresa. Vyberte OK.

    • Zvolte Uložit.

    • sqlcmd Spusťte příkaz znovu a spusťte interaktivní sqlcmd relaci. Měl by vypadat přibližně jako v následujícím příkladu:

    sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U martina -P 'password1234$' -N -l 30
    

    Teď, když jste spustili sqlcmd relaci, zbývající příkazy používají jazyk Transact-SQL nebo T-SQL.

    Tip

    Při spouštění příkazů T-SQL v tomto modulu GO se na druhém řádku nemusí zkopírovat do příkazového sqlcmd řádku. Po zadání prvního řádku příkazu může být nutné zadat GO příkaz. Proto nezapomeňte spustit příkaz GO, jinak se příkaz T-SQL nespustí.

  3. Z relace spusťte sqlcmd následující příkazy T-SQL a vytvořte tabulku s názvem Drivers:

    CREATE TABLE Drivers (DriverID int, LastName varchar(255), FirstName varchar(255), OriginCity varchar(255));
    GO
    

    Tabulka obsahuje čtyři sloupce: jedinečný identifikátor, příjmení a jméno řidiče a město, odkud řidič pochází.

  4. Spuštěním následujících příkazů T-SQL ověřte, že Drivers tabulka existuje:

    SELECT name FROM sys.tables;
    GO
    

    Měl by se zobrazit tento výstup:

    name
    --------------------------------------------------------------------------------------------------------------------------------
    Drivers
    
    (1 rows affected)
    
  5. Pokud chcete otestovat operaci vytvoření , spusťte následující příkazy T-SQL a přidejte do tabulky ukázkový řádek:

    INSERT INTO Drivers (DriverID, LastName, FirstName, OriginCity) VALUES (123, 'Zirne', 'Laura', 'Springfield');
    GO
    

    Tento výstup označuje, že operace proběhla úspěšně:

    (1 rows affected)
    
  6. Pokud chcete otestovat operaci čtení , spusťte následující příkazy T-SQL, které zobrazí seznam DriverID sloupců OriginCity ze všech řádků v tabulce:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Zobrazí se jeden výsledek s řádkem DriverID OriginCity , který jste vytvořili v předchozím kroku.

    DriverID    OriginCity
    ----------- --------------------------
            123 Springfield
    
    (1 rows affected)
    
  7. Pokud chcete otestovat operaci aktualizace , spusťte následující příkazy T-SQL, které změní město původu z "Springfield" na "Boston" pro řidiče s DriverID 123:

    UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=123;
    GO
    
  8. Spusťte následující příkazy T-SQL, které znovu zobrazí seznam DriverID sloupců a OriginCity sloupců:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Teď byste měli získat následující výstup. Všimněte si, jak OriginCity odráží aktualizaci na Boston.

    DriverID    OriginCity
    ----------- --------------------------
            123 Boston
    
    (1 rows affected)
    
  9. Nakonec otestujte operaci odstranění spuštěním následujících příkazů T-SQL pro odstranění záznamu:

    DELETE FROM Drivers WHERE DriverID=123;
    GO
    
    (1 rows affected)
    
  10. Spuštěním následujících příkazů T-SQL ověřte, že Drivers je tabulka prázdná:

    SELECT COUNT(*) FROM Drivers;
    GO
    

    Uvidíte, že tabulka neobsahuje žádné řádky.

    -----------
              0
    
    (1 rows affected)
    

Teď, když máte obecný nápad na práci se službou Azure SQL Database z Cloud Shellu, můžete získat připojovací řetězec pro váš oblíbený nástroj pro správu SQL, ať už se jedná o SQL Server Management Studio, Visual Studio nebo něco jiného.

Cloud Shell umožňuje snadno přistupovat k prostředkům Azure a pracovat s nimi. Vzhledem k tomu, že cloud Shell je založený na prohlížeči, můžete k němu přistupovat z Windows, macOS nebo Linuxu; v podstatě jakýkoli systém s webovým prohlížečem.

Získali jste některé praktické zkušenosti se získáváním informací o databázi Azure SQL Database pomocí příkazů Azure CLI. Jako bonus jste si procvičili dovednosti s T-SQL.

V další lekci zabalíme tento modul a popíšeme, jak databázi odbourat.