Ejercicio: Conexión a la base de datos e incorporación de datos de ejemplo

Completado

Antes de conectar la base de datos a la aplicación, queremos confirmar que podemos conectarnos a ella, agregar una tabla básica y trabajar con datos de ejemplo.

Mantenemos la infraestructura, las actualizaciones de software y las revisiones para Azure SQL Database. Puede tratar la instancia de Azure SQL Database como haría con cualquier otra instalación de SQL Server. Por ejemplo, puede usar Visual Studio, SQL Server Management Studio, Azure Data Studio u otras herramientas para administrar la instancia de Azure SQL Database.

Cómo acceder a la base de datos y conectarla a la aplicación es decisión suya. Para obtener algo de experiencia trabajando con la base de datos, conectémoslo directamente a ella desde el portal, crear una tabla y ejecutar algunas operaciones CRUD básicas. Aquí aprenderá:

  • Qué es Cloud Shell y cómo se accede desde el portal.
  • Cómo acceder a información sobre la base de datos desde la CLI de Azure, incluidas las cadenas de conexión.
  • Cómo conectarse a la base de datos con sqlcmd.
  • Cómo inicializar la base de datos con una tabla básica y algunos datos de ejemplo.

¿Qué es Azure Cloud Shell?

Azure Cloud Shell es una experiencia de shell basado en el explorador para administrar y desarrollar recursos de Azure. Piense en Cloud Shell como una consola interactiva que se ejecuta en la nube.

En segundo plano, Cloud Shell se ejecuta en Linux. Pero en función de si prefiere un entorno de Linux o Windows, puede elegir entre dos experiencias: Bash y PowerShell.

Cloud Shell es accesible desde cualquier lugar. Además del portal, también puede acceder a Cloud Shell desde shell.azure.com, Azure Mobile App o Visual Studio Code.

Cloud Shell incluye herramientas y editores de texto populares. Esta es una breve descripción de las utilidades az, jq y sqlcmd, que son tres herramientas que usará en este ejercicio.

  • az también se conoce como la CLI de Azure. Es la interfaz de la línea de comandos para trabajar con recursos de Azure. Usará esta interfaz para obtener información sobre la base de datos, incluida la cadena de conexión.
  • jq es un analizador JSON de la línea de comandos. Canalizará la salida de los comandos az a esta herramienta para extraer campos importantes de la salida JSON.
  • sqlcmd permite ejecutar instrucciones en SQL Server. Usará sqlcmd para crear una sesión interactiva con su instancia de Azure SQL Database.

Obtención de información sobre la instancia de Azure SQL Database

Antes de conectarnos a la base de datos, se recomienda comprobar que existe y que está en línea.

Aquí usamos la utilidad az para enumerar las bases de datos y mostrar cierta información sobre la base de datos Logistics, incluido su estado y tamaño máximo.

  1. Vaya a shell.azure.com o, desde Azure Portal, seleccione el botón Cloud Shell en los controles globales de la ventana de Azure Portal.

  2. Si se proporciona la opción, elija Bash para este ejercicio de aprendizaje.

  3. En la ventana emergente Introducción, seleccione No se requiere ninguna cuenta de almacenamiento. Seleccione su suscripción en la lista desplegable Suscripción. Seleccione Aplicar. Se carga el nuevo terminal de Cloud Shell.

  4. Los comandos az que se van a ejecutar requieren el nombre del grupo de recursos y el nombre del servidor lógico de Azure SQL. Para guardar las pulsaciones de teclas y no tener que escribirlos, ejecute el comando azure configure para especificarlos como valores predeterminados.

    Reemplace [server-name] por el nombre del servidor lógico de Azure SQL que creó y [resource-group] por el grupo de recursos que usó para el servidor.

    Sugerencia

    Para pegar en Cloud Shell, use Ctrl+Shift+V en lugar de Ctrl+V. Use Ctrl+C para borrar el comando actual del terminal.

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

    Nota:

    Dependiendo del panel en el que estemos en Azure Portal, el nombre del servidor SQL se muestra como FQDN (p. ej., servername.database.windows.net) o independiente (servername). Para este comando, solo necesita el nombre lógico sin el sufijo .database.windows.net.

  5. Ejecute el siguiente comando az sql db list para mostrar todas las bases de datos en el servidor lógico de Azure SQL:

    az sql db list
    

    Veremos un gran bloque de JSON como salida.

  6. Como solo queremos ver los nombres de la base de datos ejecute el comando de nuevo. Pero esta vez canalice la salida a jq para mostrar solo los campos de nombre.

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

    Debería obtener esta salida:

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

    Logistics es la base de datos de usuario. Al igual que SQL Server, la base de datos del sistema master incluye los metadatos del servidor, como inicios de sesión y los valores de configuración del sistema.

  7. Ejecute el siguiente comando az sql db show para obtener detalles sobre la base de datos Logistics:

    az sql db show --name Logistics
    

    Igual que antes, verá un gran bloque de JSON como salida.

  8. Ejecute por segunda vez el comando. Esta vez, canalice la salida a jq para limitarla solo al nombre, tamaño máximo y estado de la base de datos Logistics.

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

    Verá que la base de datos está en línea y la cantidad máxima de datos que puede almacenar esta.

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

    Si eligió la oferta gratuita de Azure SQL Database, la base de datos sin servidor se pone en pausa automáticamente para conservar los segundos de núcleo virtual gratuitos, por lo que podría ver la base de datos Logistics con el estado En pausa después de un período de inactividad.

Conectarse a la base de datos

Una cadena de conexión contiene toda la información necesaria para que una aplicación se conecte a la base de datos. Aunque todavía está en Cloud Shell, empecemos por obtener la cadena de conexión allí.

Cadena de conexión de Cloud Shell

Ejecute el siguiente comando az sql db show-connection-string para llevar la cadena de conexión a la base de datos Logistics en un formato que sqlcmd puede usar:

```azurecli
az sql db show-connection-string --client sqlcmd
```

Your output resembles the following example. Copy this output for use in the next step.

```output
"sqlcmd -S tcp:<server-name>.database.windows.net,1433 -d Logistics -U <username> -P <password> -N -l 30"
```

Cadena de conexión de Azure Portal

Azure Portal proporciona cadenas de conexión para varios proveedores de datos para la base de datos de Azure SQL con un acceso fácil.

  1. En Azure Portal, vaya a la base de datos SQL.
  2. En el menú de servicio de la base de datos SQL, en Configuración, seleccione Cadenas de conexión.
  3. Elija el proveedor de datos y el método de conexión deseados.

Conectarse a la base de datos con Visual Studio Code

Vamos a usar una herramienta gráfica para conectarse a la nueva instancia de Azure SQL Database. Visual Studio Code es un editor de código abierto para Linux, macOS y Windows. Admite extensiones, lo que incluye la extensión mssql para consultar SQL Server, Azure SQL Database, Azure SQL Managed Instance, una base de datos SQL en Fabric y otras plataformas.

  1. Primero, descargue e instale Visual Studio Code.

  2. En Visual Studio Code,abra la vista Extensiones; para ello, seleccione el iconoExtensiones en la barra de actividades del lateral de la ventana. Busque mssql y seleccione Instalar para agregar la extensión. y la extensión mssql a la estación de trabajo local.

    Sugerencia

    Para el desarrollo futuro del proyecto de aplicación de los objetos de base de datos, use también la Extensión de proyectos de SQL Database para Visual Studio Code. Esta herramienta le permite trabajar con la base de datos en el control de código fuente, capturar esquemas de base de datos existentes, diseñar nuevos objetos y publicar en bases de datos.

  3. En la lista de extensiones, elija la extensión SQL Server.

  4. En CONEXIONES, seleccione Agregar conexión.

    Captura de pantalla de Visual Studio Code, con el cuadro de diálogo Agregar conexión de la extensión mssql abierto.

  5. Asigne a la nueva conexión un nombre fácil de recordar personalizado en Nombre del perfil.

  6. Tiene varias maneras de proporcionar la información de conexión:

    • Elija Parámetros para escribir manualmente el nombre del servidor lógico de Azure SQL, el nombre de la base de datos, el nombre de usuario y la contraseña.
    • Elija Cadena de conexión para pegar la cadena de conexión de la base de datos y agregue el nombre de usuario y la contraseña.
    • Elija Examinar Azure para conectarse a su suscripción de Azure en VS Code y simplemente seleccione la nueva instancia de Azure SQL Database en una lista.
  7. Para este ejercicio de aprendizaje, elija Examinar Azure. Conéctese a la suscripción de Azure desde VS Code.

  8. Seleccione su Suscripción en la lista.

  9. Seleccione su Grupo de recursos en la lista.

  10. Seleccione su Servidor y Base de datos en la lista.

  11. Con el Tipo de autenticación establecido en Inicio de sesión de SQL, proporcione el Nombre de usuario y la Contraseña que creamos en el último módulo.

  12. Seleccione Conectar.

  13. Cuando se ejecuta correctamente, el cuadro de diálogo Agregar conexión desaparece y se reemplaza por el servidor conectado y un explorador de objetos de Tablas, Vistas, etc.

    Captura de pantalla de la extensión mssql de VS Code con el servidor conectado y los objetos de base de datos visualizados.

Consultar la base de datos con Visual Studio Code

Vamos a ejecutar una serie de comandos para realizar operaciones CRUD (crear, leer, actualizar y eliminar) básicas en Azure SQL Database.

  1. Haga clic con el botón derecho en la línea de nombre del servidor en CONEXIONES y seleccione Nueva consulta.

    Captura de pantalla de la opción Nueva consulta en Conexiones en la extensión mssql para Visual Studio Code.

  2. En la nueva ventana de consulta, vamos a crear nuestro primer objeto de base de datos pegando el siguiente comando para crear una nueva tabla denominada Drivers.

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

    La tabla contiene cuatro columnas: un identificador único, el apellido y el nombre del chofer y su ciudad de origen.

  3. Seleccione el botón Ejecutar consulta para ejecutar los comandos T-SQL en la ventana de consulta.

    Sugerencia

    Para ejecutar un único comando T-SQL entre muchos en una ventana de consulta, arrastre y seleccione la consulta deseada y, a continuación, seleccione Ejecutar.

    Captura de pantalla de la ventana Nueva consulta con el comando T-SQL para la tabla Controladores. El botón Ejecutar está resaltado.

    Al igual que casi cualquier cosa en Visual Studio Code, los métodos abreviados de teclado se pueden personalizar en Visual Studio Code. En Windows, el método abreviado de teclado predeterminado para Ejecutar es Ctrl + Shift + E.

  4. A continuación, ejecute las siguientes instrucciones T-SQL para verificar que la tabla Drivers existe, consultando los metadatos de la base datos:

    SELECT name FROM sys.tables;
    GO
    

    En la pestaña Resultados de la consulta, en Resultados, debe ver que Drivers existe en la lista de tablas.

    name
    -------
    Drivers
    
  5. Vamos a agregar una fila a nuestra tabla. Ejecute las siguientes instrucciones T-SQL para agregar una fila de ejemplo a la tabla:

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

    Esta salida indica que la operación se realizó correctamente:

    3:14:01 PM
    Started executing query at Line 7
    (1 row affected)
    Total execution time: 00:00:00.044
    
  6. Para ver la fila que acabamos de insertar, ejecute las siguientes instrucciones T-SQL para enumerar las columnas DriverID y OriginCity de todas las filas de la tabla:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Verá un resultado con DriverID y OriginCity para la fila que creó en el paso anterior.

    DriverID    OriginCity
    ----------- --------------------------
    1           Springfield
    
  7. Vamos a actualizar la fila para cambiar OriginCity. Ejecute la siguiente instrucción T-SQL para cambiar la ciudad de origen de "Springfield" a "Boston" para el conductor con un DriverID 1:

    UPDATE Drivers SET OriginCity='Boston' WHERE DriverID=1;
    GO
    

    Debe obtener un mensaje que confirme la ejecución de la consulta en la ventana Resultados de la consulta:

    3:14:29 PM
    Started executing query at Line 13
    (1 row affected)
    Total execution time: 00:00:00.031
    
  8. Ejecute las siguientes instrucciones T-SQL para volver a mostrar las columnas DriverID y OriginCity:

    SELECT DriverID, OriginCity FROM Drivers;
    GO
    

    Debería obtener esta salida. Fíjese en que OriginCity refleja la actualización a Boston.

    DriverID    OriginCity
    ----------- --------------------------
    1           Boston
    
  9. Por último, vamos a eliminar la fila ejecutando la siguiente instrucción T-SQL para eliminar el registro:

    DELETE FROM Drivers WHERE DriverID=1;
    GO
    
    3:15:00 PM
    Started executing query at Line 16
    (1 row affected)
    Total execution time: 00:00:00.017
    
  10. Ejecute las siguientes instrucciones T-SQL para comprobar que la tabla Drivers está vacía:

    SELECT COUNT(*) FROM Drivers;
    GO
    

    Verá que la tabla no contiene ninguna fila.

    -----------
              0
    

Ahora que tiene una idea general para trabajar con Azure SQL Database desde Cloud Shell y en Visual Studio. Puede usar la cadena de conexión para su herramienta de administración de SQL favorita, incluidas SQL Server Management Studio, Visual Studio o aplicaciones personalizadas.

Cloud Shell permite que sea más sencillo acceder a los recursos de Azure de cualquier tipo y trabajar con ellos. Como Cloud Shell se basa en el explorador, puede acceder desde Windows, macOS o Linux; en cualquier sistema con un explorador web.

Ha obtenido cierta experiencia práctica en la ejecución de comandos T-SQL en Visual Studio Code y ha práctico sus aptitudes de T-SQL.

En la siguiente unidad, recapitularemos este módulo y describiremos cómo desmontar nuestra base de datos.