SQL Server 2005 es un sistema gestor de bases de datos relacionales de Microsoft Corporation orientado a sistemas medianos y grandes aunque también puede rodar en ordenadores personales. SQL Server Management Studio (SSMS) es la herramienta de SQL Server que permite definir y gestionar todas las bases de datos almacenadas en el servidor SQL Server 2005.
En este tema veremos cómo utilizar el SQL Server Management Studio para manejar las bases de datos del servidor y organizaremos el texto en los siguientes puntos:
- Instalar SQL Server 2005.
- Entrada al SQL Server Management Studio
- Las bases de datos: Estructura interna, crear, adjuntar, conectar y desconectar.
- Las tablas: crear tablas, definirlas, modificar su contenido, etc.
- Relacionar tablas
- Las Consultas
- Las Vistas
Instalar SQL Server 2005
Existen diferentes versiones (ediciones) del producto, por lo que es un producto muy versátil, que puede cumplir con las exigencias de cualquier empresa, puede ser utilizado para gestionar bases de datos en un PC en modo local a gestionar todo el sistema de información de grandes empresas pasando por sistemas que requieran menos potencia y por sistemas móviles.Actualmente se utiliza más en entornos Cliente/servidor con equipos medianos y grandes.
Para realizar este curso te recomendamos instalar la versión gratuita: Express .
Si la instalación se realiza a partir del archivo descargado de Internet, la descarga se empaqueta como un único ejecutable mediante una tecnología de instalación de Microsoft llamada SFXCab. Al hacer doble clic en el .exe se inicia automáticamente el proceso de instalación.
Tan sólo deberemos seguir el asistente. Los puntos más importantes a tener en cuenta son:
- Habilitar el SQL Server Management Studio en la instalación (si no lo está por defecto) cuando nos pregunte qué componentes deseamos instalar.
- Indicar que se trata de una Instancia predeterminada.
Entrada al SQL Server Management Studio
Aunque trabajemos en modo local, la entrada a la herramienta es la misma. Para empezar entramos a través del acceso directoLo primero que deberemos hacer es establecer la conexión con el servidor:
Seleccionamos el nombre del servidor y pulsamos el botón Conectar. Se abrirá la ventana inicial del SQL Server Management Studio (en adelante SSMS):
En la parte izquierda tenemos abierto el panel Explorador de Objetos en el que aparece debajo del nombre del servidor con el que estamos conectados una serie de carpetas y objetos que forman parte del servidor.
En el panel de la derecha se muestra la zona de trabajo, que varía según lo que tengamos seleccionado en el Explorador de objetos, en este caso vemos el contenido de la carpeta que representa el servidor ord01.
En la parte superior tenemos el menú de opciones y la barra de herramientas Estándar.
1. Nueva consulta | 6. Consulta de SQL Server Mobile | 11. Resumen |
2. Consulta de motor de Base de datos | 7. Abrir archivo | 12. Explorador de Objetos |
3. Consulta MDX de Analysis Services | 8. Guardar | 13. Explorador de Plantillas |
4. Consulta DMX de Analysis Services | 9. Guardar todo | 14. Ventana de Propiedades |
5. Consulta MXLA de Analysis Services | 10. Servidores registrados |
En caso de que utilices la versión Express, es posible que no dispongas de algunos de éstos botones.
Estructura interna de una base de datos
Las bases de datos de SQL Server 2005 utilizan tres tipos de archivos:- Archivos de datos principales
En una base de datos SQLServer los datos se pueden repartir en varios archivos para mejorar el rendimiento de la base de datos.
El archivo de datos principal es el punto de partida de la base de datos y apunta a los otros archivos de datos de la base de datos. Cada base de datos tiene obligatoriamente un archivo de datos principal. La extensión recomendada para los nombres de archivos de datos principales es .mdf.
- Archivos de datos secundarios
Los archivos de datos secundarios son todos los archivos de datos menos el archivo de datos principal. Puede que algunas bases de datos no tengan archivos de datos secundarios, mientras que otras pueden tener varios archivos de datos secundarios. La extensión de nombre de archivo recomendada para los archivos de datos secundarios es .ndf.
Además los archivos de datos se pueden agrupar en grupos de archivos. Para cada base de datos pueden especificarse hasta 32.767 archivos y 32.767 grupos de archivos.
- Archivos de registro
Los archivos de registro (archivos de log) almacenan toda la información de registro que se utiliza para recuperar la base de datos, el también denominado registro de transacciones. Como mínimo, tiene que haber un archivo de registro por cada base de datos, aunque puede haber varios. La extensión recomendada para los nombres de archivos de registro es .ldf.
Crear una base de datos en SSMS
En el Explorador de objetos, si desplegamos la carpeta Bases de datos nos aparecen Bases de datos del sistema y las bases de datos de usuario después de la carpeta Instantáneas...Después de la instalación, en la carpeta Bases de datos del sistema se habrá creado una especial denominada master se utiliza como base de datos de usuario por defecto.
Las demás bases de datos forman también parte del diccionario de datos y las utiliza el sistema para llevar a cabo su gestión.
Las bases de datos de los usuarios se deben crear preferentemente fuera de la carpeta Bases de datos del sistema.
Para crear una nueva base de datos de usuario nos posicionamos sobre la carpeta Bases de datos y con el botón derecho del ratón desplegamos el menú contextual del que elegimos la opción Nueva base de datos…
Se abre a continuación el cuadro de diálogo donde definiremos la base de datos que queremos crear:
Lo mínimo a introducir será el campo Nombre de la base de datos, éste es el nombre de la base de datos lógica, la base de datos a la que nos referiremos dentro del SSMS, a nivel conceptual (en la imagen Mibase).
Si no indicamos ninguna ubicación podemos ver que los guarda en la carpeta del SQL Server/MSSQL.n/MSSQL/DATA n representa un número que puede variar de una instalación a otra.
Estos son los archivos mínimos en los que se almacenará la base de datos, pero como ya vimos anteriormente se puede almacenar en más archivos, los tenemos que definir todos en esta ventana a continuación de los dos obligatorios.
Al final pulsamos en Aceptar y se creará la base de datos.
Aparecerá dentro de la carpeta Bases de datos. Si no se ve pulsa en el icono Actualizar .
Desde el Explorador de Windows podemos ver que en la carpeta indicada se han creado los archivos físicos con los nombres que le hemos indicado.
Adjuntar una base de datos
En el Explorador de objetos, sobre la carpeta Bases de datos desplegar el menú contextual y elegir Adjuntar...En la siguiente ventana elegimos la base de datos:
Pulsando en Agregar indicamos el archivo de datos primario en su ubicación y automáticamente se adjuntará la base de datos lógica asociada a este archivo.
Finalmente pulsamos en Aceptar y aparece la base de datos en nuestro servidor.
La opción Adjuntar sólo se utiliza la primera vez, cuando todavía no tenemos la base de datos en el disco.
Conectar y Desconectar la base de datos
Una vez hemos creado la base de datos o la hemos adjuntado a nuestro
servidor, nos daremos cuenta de que no podremos manipular los archivos
de la base desde fuera del gestor SSMS, por ejemplo, desde el Explorador
de Windows. Es decir, no podremos copiar, cortar, mover o eliminar los
archivos fuente mdf, ndf y ldf. Si lo intentamos se mostrará un aviso de
que la base de datos está en uso.
Para poder realizar acciones sobre la base de datos, ésta debe estar desconectada.
Para ello, desde el SSMS, desplegamos el menú contextual de la base de
datos que nos interese manipular y seleccionaremos la opción Poner fuera de conexión:Para volver a conectar la base de datos y seguir trabajando con ella, accederemos al mismo menú contextual pero elegiremos la opción Poner en conexión:
Crear una nueva tabla
Para crear una nueva tabla primero nos tenemos que posicionar en la base de datos donde queremos que se almacene la tabla, desplegar el menú contextual y seleccionar la opción Nueva tabla.En la ventana que se abre debemos definir las columnas de la tabla:
A cada columna se le asigna un nombre, un tipo de datos, y opcionalmente una serie de propiedades, en este tema veremos las básicas y las demás las veremos con más detalle cuando veamos la instrucción SQL CREATE TABLE.
Tipos de datos
Podemos elegir entre todos los tipos que aparecen arriba.
Algunos tipos no necesitan más, como por ejemplo el tipo entero (int), y otros se pueden completar con una longitud, como los tipos alfanuméricos:
En este ejemplo hemos definido una columna (Codigo) de tipo Entero corto (Smallint), y una columna (Nombre) que almacenará hasta 20 caracteres alfanuméricos (nchar(20)), en este caso la longitud la indicamos en la pestaña Propiedades de columna en la propiedad Longitud.
Valores nulos
También podemos indicar si la columna permitirá valores nulos o no, o bien cambiando la propiedad Permitir valores nulos que aparece debajo de la propiedad Longitud, o bien simplemente marcando o desmarcando la casilla de la columna Permitir valores nulos que se encuentra al lado de la columna Tipo de datos. Si la casilla está marcada, el usuario podrá no rellenar el campo cuando inserte una fila de datos en la tabla.Columna con contador
Las columnas de este tipo se utilizan normalmente para numerar las filas de la tabla, como no habrán dos filas con el mismo valor (el sistema se encarga de incrementar el valor cada vez que se crea una nueva fila), estos campos se suelen utilizar como claves primarias.En SQL Server 2005 no existe el tipo de datos Contador pero se consigue el mismo funcionamiento asignando a la columna un tipo de datos numérico y definiendo la columna como columna de identidad.
Clave primaria
Para definir una columna como clave primaria, posicionamos el puntero del ratón sobre la columna, desplegamos el menú contextual y seleccionamos la opción Establecer Clave principal:Aparecerá una llave a la izquierda del nombre, símbolo de las claves principales:
Para definir una clave primaria compuesta por varias columnas, seleccionamos las columnas manteniendo pulsada la tecla Ctrl y luego seleccionamos la opción.
Para quitar una clave principal, hacemos lo mismo pero en esta ocasión seleccionamos la opción Quitar clave principal.
También podemos utilizar el icono de la barra de herramientas.
Añadir o eliminar columnas
Una vez definidas algunas columnas, si queremos añadir una nueva columna entre dos, nos posicionamos en la segunda y seleccionamos la opción Insertar columna del menú contextual.Del mismo modo si queremos eliminar la definición de una columna, nos posicionamos en la columna a eliminar y seleccionamos la opción Eliminar columna:
O simplemente hacemos clic en la zona a la izquierda del nombre y pulsamos la tecla Supr.
Finalmente guardamos la tabla, nos pedirá el nombre de la tabla:
La nueva tabla aparecerá en la lista de tablas de la base de datos:
Modificar la definición de una tabla
Para entrar a la ventana de definición de la tabla utilizamos la opción Modificar de su menú contextual (También es posible que se llame Diseño):Se abrirá la ventana que ya conocemos para definir las columnas de la tabla.
Insertar datos en la tabla
Ahora que tenemos la tabla creada podemos rellenarla con datos. Para eso debemos abrir la tabla:Se abrirá una ventana parecida a esta:
La primera columna sirve para indicarnos el estado de una fila, por ejemplo el * nos indica que es una nueva fila, esta fila realmente no está en la tabla, nos sirve de contenedor para los nuevos datos que queremos insertar.
Modificar datos
Para modificar un valor que ya está en una fila de la tabla sólo tenemos que posicionarnos en el campo y rectificar el valor. En cuanto modificamos un valor, la fila aparece con un lápiz escribiendo (ver imagen), este lápiz nos indica que la fila se ha modificado y tiene nuevos datos por guardar. Al salir de la fila ésta se guardará automáticamente a no ser que el nuevo valor infrinja alguna regla de integridad. Si queremos salir de la fila sin guardar los cambios, tenemos que cancelar la actualización pulsando la tecla ESC.Eliminar filas
Para eliminar una fila completa, la seleccionamos y pulsamos la tecla Supr o bien desplegamos su menú contextual y seleccionamos la opción EliminarEn cualquiera de los dos casos nos aparece un mensaje de confirmación.
Relacionar tablas
Como ya hemos visto, en una base de datos relacional, las relaciones entre las tablas se implementan mediante la definición de claves ajenas, que son campos que contienen valores que señalan a un registro en otra tabla, en esta relación así creada, la tabla referenciada se considera principal y la que contiene la clave ajena es la subordinada.Desde el entorno gráfico del SSMS podemos definir claves ajenas entrando en el diseño de la tabla y desplegando el menú contextual del campo que va a ser clave ajena:
Al pulsar el botón que se encuentra en la fila Especificación de tablas y columnas se abre el diálogo donde definiremos la relación:
El entorno gráfico SSMS (X)
En la parte derecha tenemos la tabla en la que estamos y el campo que va a actuar como clave ajena, sólo nos queda elegir en el desplegable de la izquierda la tabla a la que hace referencia la clave y al seleccionar una tabla, a la izquierda del campo clave ajena podremos elegir el campo de la otra tabla por el que se relacionarán las tablas. En nuestro caso será:De esta forma hemos definido una relación entre las tablas Facturas y Clientes. Para ver las relaciones existentes entre las diferentes tablas tenemos los diagramas.
Primero debemos definir el diagrama, para ello seleccionamos la opción correspondiente:
Si no tenemos todavía ningún diagrama creado, nos aparece un mensaje:
Elegimos Sí y se crea digamos el soporte donde se pintará el diagrama.
A continuación nos aparece el nuevo diagrama ahora si elegimos crear un nuevo diagrama nos preguntará las tablas a incluir en el diagrama:
Seleccionamos cada una y pulsamos Agregar, cuando hayamos agregado al diagrama todas las que queremos pulsamos en Cerrar y aparecerán en el diagrama las tablas con las relaciones que tengan definidas en ese momento:
La llave indica la tabla principal (padre) y el símbolo infinito señala la tabla que contiene la clave ajena.
En el examinador de objetos en la carpeta Diagramas de base de datos aparecen todos los diagramas definidos hasta el momento:
Hemos aprendido hasta ahora lo básico para poder crear una base de datos y rellenarla con tablas relacionadas entre sí y con datos, ahora veamos cómo recuperar esos datos.
Abrir una nueva consulta
Vamos a ver ahora cómo crear consultas SQL y ejecutarlas desde el entorno del SSMS.Para ello debemos abrir la zona de trabajo de tipo Query, abriendo una nueva consulta, seleccionando previamente el servidor y pulsando el botón
A continuación se abrirá una nueva pestaña donde podremos teclear las sentencias SQL:
Escribir y ejecutar código TRANSACT-SQL
Sólo tenemos que teclear la sentencia a ejecutar, por ejemplo empezaremos por crear la base de datos.Utilizaremos la sentencia CREATE DATABASE mínima:
CREATE DATABASE ventas;
Al pulsar el botón Ejecutar se ejecuta la sentencia y aparece en la parte inferior el resultado de la ejecución, en la pestaña Mensajes:
Si ahora desplegamos la carpeta Bases de Datos del Explorador de Objetos, observaremos la base de datos que hemos creado:
Si la ejecución de la sentencia produce un error, el sistema nos devolverá el mensaje de error escrito en rojo en la pestaña Mensajes.
El editor de texto
Para facilitarnos la redacción y corrección de las sentencias, el editor de SQL presenta las palabras de distintos colores según su categoría y podemos utilizar el panel Explorador de Objetos para arrastrar desde él los objetos sobre la zona de trabajo y así asegurarnos de que los nombres de los objetos (por ejemplo nombre de tabla, de columna, etc.) sean los correctos.Como hemos dicho el texto que se escribe en este editor de código se colorea por categoría. Los colores son los mismos que se utilizan en todo el entorno SQL Server. En esta tabla aparecen los colores más comunes.
Color | Categoría |
---|---|
Rojo | Cadena de caracteres |
Verde oscuro | Comentario |
Negro sobre fondo plateado | Comando SQLCMD |
Fucsia | Función del sistema |
Verde | Tabla del sistema |
Azul | Palabra clave |
Verde azulado | Números de línea o parámetro de plantilla |
Rojo oscuro | Procedimiento almacenado de SQL Server |
Gris oscuro | Operadores |
Configurar un esquema de colores personalizado
En el menú Herramientas > Opciones, desplegando la opción Entorno, Fuentes y colores, se puede ver la lista completa de colores y sus categorías, así como configurar un esquema de colores personalizado:En la lista Mostrar valores para, seleccionamos el entorno que se verá afectado.
El botón Usar predeterminados nos permite volver a la configuración predeterminada.
Las Vistas
Las consultas que hemos visto hasta ahora son trozos de código SQL que podemos guardar en un archivo de texto y abrir y ejecutar cuando queramos, pero si queremos que nuestra consulta de recuperación de datos se guarde en la propia base de datos y se comporte como una tabla (algo parecido a una consulta almacenada de Access), la tenemos que definir como una vista. Esta vista tiene la ventaja entre otras de poder ser utilizada como si fuese una tabla en otras consultas. Realmente al ejecutarla obtenemos una tabla lógica almacenada en memoria y lo que se guarda en la base de datos es su definición, la instrucción SQL que permite recuperar los datos.Para definir una vista en el Explorador de Objetos desplegamos la base de datos donde la guardaremos y elegimos la opción Nueva vista del menú contextual de la carpeta Vistas, se pondrá en funcionamiento el generador de consultas pidiéndonos las tablas en las que se basará la vista. Pulsamos sobre la tabla a añadir al diseño de la vista y pulsamos el botón Agregar, podemos añadir así cuántas tablas queramos.
Después de Cerrar, vemos a la derecha del Explorador de Objetos la pestaña con la definición de la vista que puede incluir varios paneles:
La aparición de estos paneles es configurable, en la barra de herramientas Diseñador de vistas los iconos remarcados en azul son los correspondientes a cada panel:
El panel de diagrama
Es el primero que aparece, incluye una representación gráfica de las tablas con sus campos y de la forma en que se juntan en la vista. En este caso, como las tablas tienen relaciones definidas (claves ajenas), esta relación ha aparecido automáticamente al añadir la segunda tabla. Pero se puede cambiar el tipo de relación eligiendo la opción correspondiente en el menú contextual que aparece con el clic derecho sobre la relación:Desde el panel diagrama podemos añadir cómodamente campos de las tablas a la consulta marcando la casilla correspondiente. En la imagen anterior la única casilla seleccionada es la del * en la tabla Libros por lo que se visualizarán todas las columnas de la tabla Libros y ninguna de la tabla Préstamos.
El panel de criterios
Es una rejilla en la que podemos definir las columnas del resultado de la consulta (las columnas de la vista).- En cada fila de la rejilla se define una columna del resultado o una columna que se utiliza para obtener el resultado.
- En Columna tenemos el nombre de la columna de la se obtienen los datos o la expresión cuando se trata de una columna calculada.
- En Alias escribimos el nombre que tendrá la columna en la vista, también corresponde con el encabezado de la columna en la rejilla de resultado. Si se deja el campo en blanco, por defecto se asume el mismo nombre que hay en Columna.
- En Tabla tenemos el nombre de la tabla del origen de la consulta a la que pertenece la Columna, por ejemplo la primera columna del resultado se saca de la columna Codigo de la tabla LIBROS y se llamará CodLibro. La cuarta columna de la vista cogerá sus datos de la columna Usuario de la tabla Prestamos y se llamará Usuario (Alias se ha dejado en blanco por lo que asume el nombre que hay en Columna.
- En la columna Resultados indicamos si queremos que la columna se visualice o no, las columnas con la casilla marcada se visualizan.
- Las columnas Criterio de ordenación y Tipo de orden permiten ordenar las filas del resultado según una o más columnas. Se ordena por las columnas que tienen algo en Tipo de orden y cuando se ordena por varias columnas Criterio de ordenación indica que primero se ordena por la columna que lleva el nº 1 y después por la columna que lleva el nº 2 y así sucesivamente. En el ejemplo las filas del resultado se ordenarán primero por código de libro y después por código de préstamo, todas las filas dentro del mismo libro se ordenarán por código de préstamo.
Muy útil para empezar a usar esta herramienta, ¿sabes si es posible generar un diccionario de datos en esta herramienta?
ResponderEliminar