Está en la página 1de 50

www.pwc.

com/ve

Plan de Adiestramiento y
Capacitación
Personal de SPA

Consultoría Gerencial
Noviembre, 2013 Microsoft SQL Server 2005
como manejador de bases de
datos y fundamentos básicos
del SQL como lenguaje de
consultas.

Espiñeira, Pacheco y Asociados


Contenido
I. Introducción

II. ¿Por qué SQL Server?

III. Primeros pasos en SQL Server (Bases de datos y tablas)


Creación de la BD
Tipos de datos
Creación de tablas
Creación del diagrama de la base de datos
Introducir información a la BD

IV. Introducción al “Query”


Instrucción “Select”
Instrucción “Insert”
Instrucción “Update”
Instrucción “Delete”

V. Herramientas para diseñar queries

VI. Respaldar y Restaurar


Backup y Restore de información
Backup y Restore de estructura

VII. Apéndice: Instalación de SQL Server 2005


Apéndice A: Habilitar TCP/IP
Apéndice B: Agregar excepciones de Firewall

VIII. Recursos
Libros
Enlaces a internet
Colaboradores

Espiñeira, Pacheco y Asociados


1 de 2
I. Introducción
¿Quién debe hacer este curso?

…Viernes en la tarde, el socio se acerca a tu cubículo y deja caer un nuevo proyecto en tu


escritorio, este proyecto es similar a los otros en los que has trabajado, sin embargo,
incluye grandes volúmenes de datos por lo que parece inminente la necesidad de hacer
uso de una base de datos relacional. Recuerdas alguna vez haber visto términos como
SQL, tablas, registros y consultas, pero actualmente no recuerdas mucho de lo que en su
momento viste en la Universidad.

Te das cuenta que la fecha de cierre de estas pruebas es en una semana, y es cuando te
planteas la siguiente interrogante ¿Cómo comenzar a buscar definiciones y ejemplos de
código para ponerlas en contexto?

Este curso es para las personas que quieren aprender los fundamentos del Lenguaje
Estructurado de Consultas (Structured Query Language –SQL) rápidamente. A través de
algunos ejemplos relacionados con el área SPA, también conoceremos los principales
componentes del SQL Server como software de gestión y manejo de bases de datos.

II. ¿Por qué SQL Server?


Microsoft SQL Server es la herramienta de elección para muchos entornos corporativos,
ya que es un servidor de bases de datos comerciales. Su papel principal en el mundo
comercial es almacenar datos, lo que es ligeramente diferente a Microsoft Access.
Microsoft Access no es más que un sistema de gestión de base de datos que le permite al
desarrollador crear una interfaz de usuario totalmente interactiva que permita introducir
datos y hacer reportes. Microsoft SQL Server sólo almacena los datos en tablas, no tiene
la capacidad de proporcionar un front-end, como Microsoft Access.

Sin embargo, Microsoft SQL Server permite almacenar grandes volúmenes de datos, que
incluyen elementos como fotografías, videos, textos, números y mucho más. Ahora, yo
estoy seguro que todos piensan: "Pero Microsoft Access puede hacer eso también", y
tienen razón hasta cierto punto, pero Microsoft Access tiene límites muy definidos.
Microsoft SQL Server está diseñado para manejar Terabytes de datos, mientras que
Microsoft Access sólo puede manejar alrededor de 2 Gigabytes de información sin tener
problemas.

Espiñeira, Pacheco y Asociados


2 de 49
III. Primeros pasos en
SQL Server (Bases de
datos y tablas)
Para SQL Server, una base de datos (BD) es el contenedor físico para todos los esquemas,
los datos y toda la programación del lado del servidor. Por tanto, la base de datos es una
única unidad lógica a pesar de que puede existir en varios archivos, y están contenidas en
el directorio de bases de datos del servidor.

A continuación conoceremos como crear bases de datos y diseñar la estructura desde un


enfoque práctico y sencillo:

Creación de la BD
Para crear la base de datos con sus respectivas tablas, hacemos clic derecho sobre la
carpeta “Bases de datos” y pulsamos “Nueva base de datos…”:

Ingresamos el nombre de la base de datos, en este ejemplo “bd2010”, y presionamos el


botón “Aceptar”, como se muestra en la imagen:

Espiñeira, Pacheco y Asociados


3 de 49
Tipos de datos
En SQL Server, cada columna, variable local, expresión y parámetro tiene un tipo de
datos relacionado. Un tipo de datos es un atributo que especifica la clase de datos que el
objeto puede contener: datos enteros, de caracteres, de moneda, de fecha y hora, cadenas
binarias, etc.

A continuación conoceremos los tipos de datos comúnmente usados:

Tipo de datos Descripción


Int Números enteros
numeric (p, s) Datos numéricos de escala y precisión fija
Float Datos numéricos de punto flotante
varchar(n) Cadenas de caracteres que tienen longitud fija o variable.
nchar(n) Datos Unicode de longitud fija de n caracteres
Datetime Datos de fecha y hora

Espiñeira, Pacheco y Asociados


4 de 49
Creación de tablas

Creación de la tabla estudiantes


Luego, en el explorador de objetos buscamos la nueva base de datos que acabamos de
crear, desplegamos el árbol y en la carpeta “Tablas” hacemos clic derecho seleccionando
“Nueva tabla…”

Creamos la tabla estudiantes con los siguientes campos: “identificacion, pri_nom,


seg_nom, pri_ape, seg_ape, genero, telefono, dirección”. Los tipos de datos son los que
se muestran en la siguiente imagen:

Establecemos como identificador principal la “identificación”:

Espiñeira, Pacheco y Asociados


5 de 49
Presionamos el botón guardar y digitamos el nombre de la tabla en este caso
“estudiantes”

Creación de la tabla cursos


Nuevamente hacemos clic derecho sobre la carpeta “Tablas” y seleccionamos la opción
“Nueva tabla…” como se ilustra a continuación:

La tabla contara con dos campos “id” y “nombre”. Los tipos de datos son los que se
muestran en la siguiente imagen:

Establecemos la cédula como clave principal.

Presionamos guardar y escribimos el nombre de la tabla “cursos”

Espiñeira, Pacheco y Asociados


6 de 49
Creación de la tabla matrículas
La tabla matrículas tendrá 4 campos “id”, “id_estudiante”, “id_curso” y
“fecha_matricula”, nuevamente hacemos clic derecho sobre la carpeta “Tablas” y
seleccionamos la opción “Nueva tabla…” como se ilustra a continuación:

Luego de crear la tabla hacemos clic derecho sobre el campo “id” y seleccionamos la
opción establecer clave principal:

Por último hacemos clic en la opción guardar y escribimos el nombre de la tabla


“matriculas”.

Espiñeira, Pacheco y Asociados


7 de 49
Creación del diagrama de la base de datos
El Diseñador de bases de datos es una herramienta visual que permite diseñar y ver una
base de datos a la que se está conectado. Cuando modele una base de datos, usted puede
utilizar el Diseñador de bases de datos para crear, editar o eliminar tablas, columnas,
claves, índices, relaciones y restricciones.

Para ver una base de datos, usted puede crear uno o varios diagramas que muestren
algunas o todas las tablas, columnas, claves y relaciones de la base de datos.

Los pasos para poder contar con la relación entre tablas son los siguientes:

Hacemos clic derecho sobre la carpeta “Diagramas de bases de datos”, nos aparecerá una
ventana haciendo una pregunta referente a la creación de diagramas de base de datos, a la
cual responderemos “Yes”

Nuevamente hacemos clic derecho sobre la carpeta “Diagramas de base de datos” y


seleccionamos la opción “Nuevo diagrama de base de datos”

Seleccionamos las tres tablas, pulsamos el botón “Agregar” y luego “Cerrar”:

Espiñeira, Pacheco y Asociados


8 de 49
Luego organizamos las 3 tablas de esta manera:

Seleccionamos la llave principal de la tabla estudiantes (“identificación”) y presionando el


botón izquierdo del mouse arrastramos la llave (“identificación”) hasta la tabla
matrículas.

Presionamos el botón “Aceptar”, y repetimos los mismos pasos con la tabla cursos. El
resultado final se muestra en la siguiente imagen:

Espiñeira, Pacheco y Asociados


9 de 49
Introducir información a la BD
Constantemente almacenamos información en hojas de cálculo de Excel y en ocasiones el
cliente entrega archivos de texto para las pruebas. Pero… ¿Qué pasa cuando necesitamos
que toda esa información sea migrada a una base de datos?

En ocasiones no sabemos por dónde empezar, pero en esta sección les diremos como
importar esa información a la base de datos. Supongamos que tenemos nuestra hoja de
Excel y aún no hemos creado la tabla.

Importaremos la información que está en nuestra hoja de cálculo, para ello tendremos
que ir a la sección “Explorador de objetos”, seleccionar la base de datos, y hacer clic
derecho sobre ella, luego seleccionamos la opción “Tareas”, “Importar Datos” y hacemos
clic.

En ese momento se abrirá una nueva ventana, que es el asistente para importar datos.

Espiñeira, Pacheco y Asociados


10 de 49
En la sección “Origen de datos” o “Data Source” seleccionamos “Microsoft Excel”. Luego
tendremos que seleccionar la ruta donde se encuentra nuestro archivo Excel y por último
la versión de Excel. Una vez tengamos todo seleccionado damos clic en el botón
“Siguiente”.

La ventana anterior nos permite seleccionar la forma de extraer los datos, siendo las
opciones “Copiar los datos de una o varias tablas o vistas” o “Escribir una consulta para
especificar los datos que se van a transferir”, para lo cual dejaremos la que está
seleccionada por defecto que es la primera tal como se muestra en la imagen anterior y
damos clic en el botón “Siguiente”.

En esta pantalla, lo que tendremos a la izquierda serán las hojas de nuestro libro de Excel
y a la derecha, la tabla en la que se guardaran los datos de nuestra primera hoja de Excel.
Si quisiéramos ver el detalle de cómo se ven los datos de la hoja Excel en nuestra tabla,
solo tenemos que dar clic en el botón “Preview…”.

Espiñeira, Pacheco y Asociados


11 de 49
La información que tenemos ya en hojas de cálculo de Excel se ve de esta manera en
nuestra tabla creada en la base de datos.

Por último, damos aceptar y finalizar al proceso de importar los datos del Excel a nuestra
base de datos, esta nos dará un informe sobre la importación de los datos o posibles
errores que puedan surgir durante el proceso, tal como se muestra en la siguiente imagen:

Una vez terminado el proceso de forma satisfactoria y sin errores, hacemos clic en el
botón “Close”.

Repetir el mismo procedimiento para las otras 2 tablas.

Espiñeira, Pacheco y Asociados


12 de 49
IV. Introducción al
“Query”
Un query SQL no es necesariamente una consulta a la base de datos, esta puede ser un
comando para hacer una de las siguientes acciones:

 Crear o eliminar una tabla


 Insertar, modificar o eliminar registros o campos
 Buscar varias tablas para obtener información específica y devolverla en algún
orden determinado

Para hacer uso de esta poderosa herramienta es necesario aprender cómo escribir un
query en SQL.

Instrucción “Select”

La primera instrucción que conoceremos será SELECT la cual permite recuperar


información desde la base de datos sobre una base de varias opciones definidas por el
desarrollador.

SINTAXIS:

SELECT <NOMBRES DE COLUMNAS> [*]


El (*) en el SELECT * le dice a la base de datos que retorne todas las columnas asociadas
a la tabla descrita en FROM, siendo la base de datos quien determina el orden para
devolver las columnas.

FROM <TABLA>
En caso que se necesite encontrar un ítem o grupo de ítems en particular dentro de la
base de datos, son necesarias una o más condiciones. Las condiciones están contenidas en
la cláusula WHERE como se muestra a continuación:

WHERE <CONDICIÓN LÓGICA>


Tenemos entonces que SELECT, FROM, y WHERE son las tres cláusulas usadas más
frecuentemente en SQL. A continuación un ejemplo de su uso:

ENTRADA:

SELECT *
FROM ESTUDIANTES;

SALIDA: Lista todos los registros de la tabla ESTUDIANTES.

Espiñeira, Pacheco y Asociados


13 de 49
Si buscabas algún registro en particular de ESTUDIANTES, debes usar:

ENTRADA:

SELECT *
FROM ESTUDIANTES
WHERE pri_nom = 'Jon';

SALIDA: Resultará un único registro:

Construyendo las condiciones lógicas

Una condición en SQL es una combinación de uno o varios predicados que utilizan
operadores lógicos para generar un valor TRUE ó FALSE (Verdadero ó Falso). Estas
están ubicadas generalmente en la cláusula WHERE y son las encargadas de hacer a un
query más selectivo. Dichos predicados también son una combinación de operadores de
diversos tipos, como aritméticos o de comparación. A continuación conoceremos los
grupos de operadores más usados:
Operadores lógicos: Los operadores lógicos comprueban la veracidad de alguna
condición. Éstos, como los operadores de comparación, devuelven el tipo de datos
Boolean con el valor TRUE, FALSE o UNKNOWN.

Operador Significado
ALL TRUE si el conjunto completo de comparaciones es TRUE
AND TRUE si ambas expresiones booleanas son TRUE
ANY TRUE si cualquier miembro del conjunto de comparaciones es TRUE
BETWEEN TRUE si el operando está dentro de un intervalo
EXISTS TRUE si una sub-consulta contiene cualquiera de las filas
IN TRUE si el operando es igual a uno de la lista de expresiones
LIKE TRUE si el operando coincide con un patrón
NOT Invierte el valor de cualquier otro operador booleano
OR TRUE si cualquiera de las dos expresiones booleanas es TRUE
SOME TRUE si alguna de las comparaciones de un conjunto es TRUE

Operadores de comparación: Los operadores de comparación comprueban si dos


expresiones son iguales. Se pueden utilizar en todas las expresiones excepto en la de los
tipos de datos text o image.

Operador Significado
= Igual a
> Mayor que
< Menor que

Espiñeira, Pacheco y Asociados


14 de 49
>= Mayor o igual que
<= Menor o igual que
<> No es igual a
!= No es igual a (no es del estándar ISO)
!< No es menor que (no es del estándar ISO)
!> No es mayor que (no es del estándar ISO)

Operadores aritméticos: Los operadores aritméticos realizan operaciones


matemáticas con dos expresiones de uno o más de los tipos de datos de la categoría de
tipos de datos numéricos.

Operador Significado
+ Suma
- Resta
* Multiplicación
/ División
% Devuelve el resto entero de una división. Ejemplo, 12 % 5 = 2 porque el
resto de 12 entre 5 es 2.

Operadores bit a bit: Los operadores bit a bit realizan manipulaciones de bits entre
dos expresiones de cualquiera de los tipos de datos de la categoría del tipo de datos
entero.

operador Significado
& (AND bit a bit) Operador AND bit a bit (dos operandos).
| (OR bit a bit) Operador OR bit a bit (dos operandos).
^ (OR exclusivo bit a bit) Operador OR exclusivo bit a bit (dos operandos).

Cuando una expresión compleja tiene múltiples operadores, la prioridad de operador


determina la secuencia en que se realiza la operación. El orden de ejecución puede afectar
de manera significativa al valor resultante.

Los operadores tienen los niveles de prioridad que se muestran en la siguiente tabla. Un
operador de un nivel más alto se evalúa antes que un operador de un nivel más bajo.

Nivel Operadores
1 ~ (operador bit a bit NOT)
2 * (multiplicar), / (dividir), % (módulo)
3 + (positivo), - (negativo), + (sumar), (+ concatenar), - (restar), & (AND bit a bit) ,
^ (OR exclusiva bit a bit), | (OR bit a bit)
4 =, >, <, >=, <=, <>, !=, !>, !< (operadores de comparación)
5 NOT
6 AND
7 ALL, ANY, BETWEEN, IN, LIKE, OR, SOME
8 = (asignación)

Cuando en una expresión dos operadores tengan el mismo nivel de prioridad de


operador, se evalúan de izquierda a derecha en función de su posición dentro de la
expresión.

Ejemplos / Sección 1
Espiñeira, Pacheco y Asociados
15 de 49
Modelando los datos de la consulta
En esta sección trataremos sobre funciones. Las Funciones en SQL permiten realizar
operaciones como determinar la suma de una columna o convertir todos los caracteres de
un string a mayúsculas.

Funciones agregadas: Las funciones agregadas realizan cálculos sobre un conjunto de


valores y retornan un único valor, éstas generalmente son usadas con la cláusula GROUP
BY en la instrucción SELECT. A excepción de COUNT las funciones agregadas ignoran
los valores NULL.

Función Descripción Sintaxis


Retorna el valor promedio del grupo de
AVG AVG ( [ ALL | DISTINCT ] expression)
valores
COUNT ( { [ [ ALL | DISTINCT ]
COUNT Retorna el número de ítems en un grupo
expression ] | * } )
Retorna el máximo valor de una
MAX MAX ( [ ALL | DISTINCT ] expression)
expresión
Retorna el mínimo valor de una
MIN MIN ( [ ALL | DISTINCT ] expression)
expresión
Retorna la suma de todos los valores en la
SUM SUM ( [ ALL | DISTINCT ] expression)
expresión

Funciones para fecha y tiempo: Estas funciones realizan distintas operaciones sobre
entradas de fechas y tiempo, y retornan un valor numérico, string o fecha/tiempo.

Función Descripción Sintaxis


DATEADD Incremente la fecha en la DATEADD (datepart , number, date )
fracción de tiempo
especificada
DATEDIFF Retorna la diferencia entre DATEDIFF ( datepart , startdate , enddate )
dos fechas expresadas en
fracción
DAY Retorna el día de una fecha DAY ( date )
como valor numérico
GETDATE Retorna le fecha del GETDATE ( )
sistema
MONTH Retorna el mes de una MONTH ( date )
fecha como valor numérico
YEAR Retorna el año de una YEAR ( date )
fecha como valor numérico

Las fracciones de las fechas o “datepart” son las siguientes:

Fracción fecha Abreviaturas


year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d

Espiñeira, Pacheco y Asociados


16 de 49
week wk, ww
weekday dw, w
hour hh
minute mi, n
second ss, s
millisecond ms

Funciones de cadenas o Strings: Éstas funciones manipulan cadenas de caracteres y


retornan resultados de tipo String o numérico.

Función Descripción Sintaxis


LEFT Retorna la parte izquierda de la LEFT ( character_expression ,
cadena con el número de integer_expression )
caracteres especificado
LEN Retorna la longitud de la cadena LEN ( string_expression )
LTRIM Retorna la cadena sin los espacios LTRIM ( character_expression )
en blanco iniciales
REPLACE Reemplaza todas las ocurrencias REPLACE ( string_expression1 ,
de una cadena con otra cadena de string_expression2 ,
caracteres string_expression3 )
RIGHT Retorna la parte derecha de la
cadena con el número de RIGHT ( character_expression ,
caracteres especificado integer_expression )
RTRIM Retorna la cadena sin espacios en RTRIM ( character_expression )
blanco al final

Ejemplos / Sección 2

Otras cláusulas importantes

Hasta ahora hemos conocido las cláusulas FROM y WHERE, logrando cada una de ellas
efectos determinantes sobre la instrucción SELECT. Veamos a continuación otro grupo
de cláusulas que nos permiten hacer a nuestro query incluso más selectivo y acertado.
LIKE: Determina si una cadena de caracteres coincide con un patrón especificado. Un
patrón puede contener caracteres normales y caracteres comodines. Durante la operación
de búsqueda de coincidencias de patrón, los caracteres normales deben coincidir
exactamente con los caracteres especificados en la cadena de caracteres. Sin embargo, los
caracteres comodín pueden coincidir con fragmentos arbitrarios de la cadena.

SINTAXIS:
match_expression [ NOT ] LIKE pattern [ ESCAPE
escape_character ]

Carácter Descripción Ejemplo


comodín
% Cualquier cadena de cero o WHERE title LIKE '%computer%'
más caracteres. busca todos los títulos de libros que
Espiñeira, Pacheco y Asociados
17 de 49
contengan la palabra 'computer' en el
título.
_ (carácter Cualquier carácter. WHERE au_fname LIKE ‘_ean’ busca
de todos los nombres de cuatro letras que
subrayado) terminen en ean (Dean, Sean, etc.)
[] Cualquier carácter individual WHERE au_lname LIKE ‘[C-P]arsen’
del intervalo ([a-f]) o del busca apellidos de autores que
conjunto ([abcdef]) que se ha terminen en arsen y empiecen por
especificado. cualquier carácter individual entre C y
P, como Carsen, Larsen, Karsen, etc.
[^] Cualquier carácter individual WHERE au_lname LIKE ‘de[^l]%’
que no se encuentre en el busca todos los apellidos de autores
intervalo ([^a-f]) o el que empiecen por de y en los que la
conjunto ([^abcdef]) que se siguiente letra no sea l.
ha especificado.

ORDER BY: Especifica el orden utilizado en las columnas devueltas en una instrucción
SELECT.
SINTAXIS:
[ ORDER BY {order_by_expression } [ ,...n ]]

GROUP BY: Agrupa un conjunto de filas seleccionado en un conjunto de filas de


resumen de acuerdo con los valores de una o más columnas o expresiones. Se devuelve
una fila para cada grupo. Las funciones agregadas de la lista <select> de la cláusula
SELECT proporcionan información de cada grupo en lugar de filas individuales.
SINTAXIS:
GROUP BY <group by spec>
HAVING: Especifica una condición de búsqueda para un grupo o agregado. HAVING
solo se puede utilizar con la instrucción SELECT. Normalmente, HAVING se utiliza en
una cláusula GROUP BY. Cuando no se utiliza GROUP BY, HAVING se comporta como
una cláusula WHERE.
SINTAXIS:
[ HAVING <search condition> ]

UNION [ALL]: Combina los resultados de dos o más consultas en un solo conjunto de
resultados que incluye todas las filas que pertenecen a las consultas de la unión. La
operación UNION es distinta de la utilización de combinaciones de columnas de dos
tablas.

SINTAXIS:
{ <query_specification> | ( <query_expression> ) }
UNION [ ALL ]
<query_specification | ( <query_expression> )

Veamos entonces la sintaxis de un SELECT en donde encajan todas las cláusulas que hemos
conocido:

SINTAXIS:
Espiñeira, Pacheco y Asociados
18 de 49
SELECT [DISTINCT | ALL] { * | { expr [ [AS] c_alias }
| column
... }
FROM {table | view }[t_alias] ...
[WHERE condition ][LIKE][JOIN type][JOIN condition]
[GROUP BY expr [, expr] ... [HAVING condition] ]
UNION [ ALL ] <query_specification | (
<query_expression> )
[ORDER BY {expr|position} [ASC | DESC]

Ejemplos / Sección 3

Cruzando tablas JOINS

Haciendo uso de joins, podemos recuperar datos de dos o más tablas, basados en una
relación lógica entre dichas tablas. Una condición join define la manera como dos tablas
están relacionadas en un query.
SINTAXIS:

FROM first_table join_type second_table [ON


(join_condition)]

Join Descripción Sintaxis Imagen


LEFT Retorna todos los SELECT
JOIN registros de la tabla <select_list>
izquierda (tabla A) sin FROM Table_A A
considerar si alguno de LEFT JOIN
esos registros tiene Table_B B
coincidencia en la tabla ON A.Key =
derecha (tabla B). B.Key
También recupera los
registros que coinciden
en la tabla derecha
RIGHT Retorna todos los SELECT
JOIN registros de la tabla <select_list>
derecha (tabla B) sin FROM Table_A A
considerar si alguno de LEFT JOIN
esos registros tiene Table_B B
coincidencia en la tabla ON A.Key =
izquierda (tabla A). B.Key
También recupera los
registros que coinciden
en la tabla izquierda

Espiñeira, Pacheco y Asociados


19 de 49
Join Descripción Sintaxis Imagen
INNER Retorna todos los SELECT
JOIN registros en la tabla <select_list>
izquierda (tabla A) que FROM Table_A A
tengan un registro INNER JOIN
relacionado en la tabla Table_B B
derecha (tabla B) ON A.Key =
B.Key
OUTER Este Join también puede SELECT
JOIN describirse como FULL <select_list>FRO
OUTER JOIN ó FULL M Table_A
JOIN. Retorna todos los AFULL OUTER
registros de ambas JOIN Table_B
tablas, cruzando BON A.Key =
registros de la tabla B.Key
izquierda (tabla A) que
coincidan con registros
en la tabla derecha
(tabla B).

Ejemplos / Sección 4

Joins excluyentes:

Join Descripción Sintaxis Imagen


LEFT Retorna todos los SELECT
JOIN registros de la tabla <select_list>
izquierda (tabla A) que FROM Table_A A
no coinciden con la tabla LEFT JOIN
derecha (tabla B) Table_B B
ON A.Key =
B.Key
WHERE B.Key IS
NULL
RIGHT Retorna todos los SELECT
JOIN registros de la tabla <select_list>
derecha (tabla B) que no FROM Table_A A
coinciden con la tabla RIGHT JOIN
izquierda (tabla A) Table_B B
ON A.Key =
B.Key
WHERE A.Key IS
NULL
OUTER Retorna los registros de SELECT
JOIN ambas tablas que no <select_list>
tuvieron coincidencias FROM Table_A A
FULL OUTER
JOIN Table_B B
ON A.Key =
B.Key
WHERE A.Key IS
NULL OR B.Key
IS NULL

Espiñeira, Pacheco y Asociados


20 de 49
Subqueries

Un subquery es un query cuyos resultados son enviados como argumento para otro
query. Los subqueries nos permiten enlazar varias consultas juntas.

IN: Determina si un valor especificado coincide con algún valor de una subconsulta o una
lista.

SINTAXIS:

test_expression [ NOT ] IN ( subquery | expression [


,...n ])

EXIST: Especifica una subconsulta para probar la existencia de filas.

SINTAXIS:

EXISTS subquery

Ejemplos / Sección 5

Instrucción “Insert”

La instrucción INSERT nos permite introducir datos a la base de datos. Esta puede ser
definida en dos instrucciones:

INSERT...VALUES
INSERT...SELECT

Insert...Values
La instrucción INSERT...VALUES introduce datos a una tabla un registro a la vez. Es
útil para operaciones pequeñas que manejan pequeñas cantidades de información.

SINTAXIS:
INSERT INTO table_name
(col1, col2...)
VALUES(value1, value2...)

Las reglas básicas a considerar para usar esta instrucción son:

 Los valores usados deben ser del mismo tipo que el campo al cual están siendo
agregados.

Espiñeira, Pacheco y Asociados


21 de 49
 El tamaño de la información debe estar dentro del tamaño de la columna. Por
ejemplo, no se puede agregar una cadena de 80 caracteres a una columna de 40
caracteres.

 La ubicación u orden de los datos en la cláusula VALUES debe corresponder al


orden en la lista de columnas.

Insert...Select

La instrucción INSERT...VALUES es útil cuando se está agregando un único registro a


una tabla en la base de datos, pero obviamente tiene limitaciones. ¿Te gustaría agregar
25.000 registros a una tabla? En situaciones como esta, la instrucción
INSERT…SELECT es mucho más beneficial. Permite al programador copiar
información de una tabla o grupo de tablas dentro de otra tabla.

SINTAXIS:
INSERT INTO table_name
(col1, col2...)
SELECT col1, col2...
FROM tablename
WHERE search_condition

Ejemplos / Sección 6

Instrucción “Update”

El propósito de la instrucción UPDATE es cambiar el valor de un registro existente.

SINTAXIS:

UPDATE table_name
SET columnname1 = value1
[, columname2 = value2]...
WHERE search_condition

Esta instrucción verifica la cláusula WHERE en primer lugar. Para todos los registros en
la tabla dada en los cuales la cláusula WHERE evalúe un valor TRUE, el campo
correspondiente es actualizado.

Si la cláusula WHERE es omitida, todos los registros en la tabla son actualizados con el
valor dado.

Instrucción “Delete”

Adicional a agregar datos a la base de datos, necesitaremos también eliminar registros.

Espiñeira, Pacheco y Asociados


22 de 49
SINTAXIS:
DELETE FROM tablename
WHERE condition

Lo primero que tenemos que tomar en cuenta es que el comando DELETE no tiene una
validación. Los usuarios estamos acostumbrados a ser notificados y verificar cuando un
archivo o directorio va a ser eliminado. ¿Estás seguro (S/N)? es la pregunta más común
antes de ejecutar la operación. En SQL cuando le indicas al manejador que elimine unos
datos, este obedece sin preguntar.

A continuación algunos puntos importantes para recordar cuando usemos la instrucción


DELETE:

 La instrucción DELETE no puede eliminar valores individuales de un campo,


para eso se debe usar el UPDATE. DELETE elimina el registro entero de una
tabla.

 Al igual que INSERT y UPDATE, eliminar registros de una tabla puede causar
problemas de integridad referencial con otras tablas.

 La instrucción DELETE elimina solo registros, no la tabla como tal.

Espiñeira, Pacheco y Asociados


23 de 49
V. Herramientas para
diseñar queries
El SQL Server cuenta con una poderosa herramienta llamada Query Designer, esta
herramienta es utilizada para crear consultas y recuperar datos de una base de datos
relacional. Use el diseñador gráfico de consultas para generar una consulta de forma
interactiva y ver los resultados para los tipos de orígenes de datos de SQL Server.

Hacemos clic en el diseñador de queries SQL

En la ventana que se abrirá se podrán observar todas las tablas que pertenezcan a la base
de datos seleccionada

En este caso, seleccionamos las tablas que deseamos agregar y pulsamos “Add…”

Posteriormente, seleccionaremos los campos que deseamos que nos muestre la consulta:

Espiñeira, Pacheco y Asociados


24 de 49
Si queremos buscar todos los estudiantes de la tabla “Estudiantes” que estén en la tabla
“Matriculas” seleccionamos y arrastramos el campo Identificación hasta el campo
id_estudiante y quedará de la siguiente manera:

El query se va mostrando en la pantalla inferior:

Una vez culminado el proceso, procederemos a hacer clic en “Ok” y el SQL nos arrojará el
query en la ventana principal. Para obtener los resultados correspondientes debemos
hacer clic en el botón “Execute” .

Espiñeira, Pacheco y Asociados


25 de 49
VI. Respaldar y
Restaurar
Una aplicación SQL Server en funcionamiento en realidad es una colección de bases de
datos. Además de los datos en sí, incluye bases de datos del sistema y el registro de
transacciones. A continuación encontrará algunos consejos y buenas prácticas de
Respaldo (Backup) y Restauración (Restore) con SQL Server.

A diferencia de muchos programas, SQL Server permite la realización de backup


mientras los usuarios están activos y se están procesando transacciones. Esto significa
que se puede hacer backup mientras se está utilizando el sistema.

Backup y Restore de información


Ya conectados nos aparecerán todos los objetos que tiene el motor de base de datos,
incluidas las bases de datos.

Para realizar el backup desde el asistente, hacemos clic derecho a la Base de Datos que le
deseamos realizar la copia de seguridad. Luego hacemos clic en “Tareas” y “Copia de
Seguridad”.

Espiñeira, Pacheco y Asociados


26 de 49
Aquí se observaran las opciones para hacer el backup como Nombre del Archivo,
Ubicación del Archivo, Tipo de Backup, etc.

En Opciones nos muestra otras características que podemos hacer con la copia de
seguridad.

Una vez que terminamos de marcar y llenar las opciones que queremos, presionamos el
botón “Aceptar”. El sistema indicará cuando haya finalizado, caso contrario nos notificará
el error.

Espiñeira, Pacheco y Asociados


27 de 49
Luego de realizado este proceso, tenemos nuestra copia de seguridad para la base de
datos. El archivo que se crea es similar al que se muestra a continuación:

Ahora vamos a realizar la restauración de la base de datos con la copia de seguridad


hecha anteriormente. Por motivos didácticos se va a crear una nueva tabla en la base de
datos llamada “Nueva”, esto es para restaurar al estado anterior la base de datos, donde
todavía no estaba creada la tabla “Nueva”.

Para realizar la restauración le hacemos clic derecho a la base de datos y seleccionamos


“Tareas”, luego “Restauración” y por último “Base de Datos”.

Espiñeira, Pacheco y Asociados


28 de 49
Nos mostrara las opciones de la restauración, seleccionamos la Base de Datos y la copia
de Seguridad que deseamos, en este caso solamente hay una.

En “Opciones” se mostrarán otras herramientas para validar si queremos sobrescribir la


base de datos con la copia de seguridad, en este caso seleccionamos dicha opción
“Sobrescribir la Base de Datos existente”, esto para regresar al estado donde no se
encontraba la tabla “Nueva”. En la sección “Estado de Recuperación” dejamos por defecto
la que está marcada.

Espiñeira, Pacheco y Asociados


29 de 49
Presionamos el botón “Aceptar” para realizar la operación.

Nota: La base de datos NO debe estar en USO

Las causas por las que puede fallar el proceso pueden ser:
 Alguna consulta abierta que está conectada a la base de datos
 Alguna modificación de tablas o campos.
 Conexión con alguna aplicación, etc.

Una vez verificado que la base de datos NO esté en uso, presionamos Aceptar nuevamente
en la ventana del Asistente de Restauración.

Espiñeira, Pacheco y Asociados


30 de 49
Backup y Restore de estructura
Es cierto que con un backup puedes tener el respaldo completo de una base de datos,
pero existen motivos por los que puedes necesitar los scripts de una base de datos en
donde se incluya el schema (esquema) y los datos, para ello basta con seguir los
siguientes pasos.

Hacer clic derecho sobre cualquier base de datos y seleccionar “Task” luego hacer clic en
“Generate – Scripts”

Hacer clic en el botón “Next”

La base de datos que deseas debe de estar seleccionada, o puedes igualmente seleccionar
cualquier otra y hacer clic en “Next”

Espiñeira, Pacheco y Asociados


31 de 49
Cambiar la opción de “script data” a “true”

Seleccionar los tipos de objetos que deseas generar los scripts

Espiñeira, Pacheco y Asociados


32 de 49
Seleccionar las tablas, triggers y demás elementos que deseas generar:

Se puede escoger entre guardar el resultado en un archivo, en el portapapeles, o en una


nueva ventana.

Espiñeira, Pacheco y Asociados


33 de 49
Aparecerá un resumen donde se puede verificar los datos:

La pantalla del resultado satisfactorio se muestra a continuación:

Espiñeira, Pacheco y Asociados


34 de 49
Espiñeira, Pacheco y Asociados
35 de 49
VII. Apéndice: Instalación
de SQL Server 2005
Nota: para instalar SQL Server 2005, se debe contar con derechos administrativos en el
equipo.

Para instalar SQL Server 2005, siga las siguientes instrucciones:

Obtenga e instale Microsoft .NET Framework 2.0 de la página web de Microsoft. La


edición Express de Microsoft SQL Server 2005 precisa de .NET Framework 2.0.

Haga clic en el botón I accept the licensing terms and conditions


Haga clic en el botón Next

En el proceso de instalación se muestra una lista de los componentes necesarios que se


instalarán.
Haga clic en el botón Install.

Espiñeira, Pacheco y Asociados


36 de 49
Luego se mostrará una pantalla indicando que todos los componentes se han instalado
satisfactoriamente. Haga clic en el botón Next

Haga clic en el botón Next

Errores
Los errores se indican mediante una "X" roja en la columna de la izquierda, un Status de
"Error" y, potencialmente, un Message. Deberá salir de la instalación (hacer clic en el
botón “Exit”) y resolver los posibles errores antes de proseguir con la instalación.
Una vez resueltos los errores, vuelva a iniciar la instalación de SQL Server 2005.
Advertencias
En la comprobación de configuración pueden mostrarse también advertencias, que
pueden ignorarse o solucionarse. Una de las posibles advertencias es “IIS Feature
Requirement”. Algunas de las nuevas funciones de SQL Server 2005 precisan de IIS, pero
el paquete de edición 2D de SQL Server (CREO Elements/Direct Manager Server) no
utiliza ninguna de estas funciones, de modo que se puede hacer caso omiso de la
advertencia sin problemas.
Si no hay ningún error, el botón “Exit” se convierte en un botón “Next”
Haga clic en el botón “Next”

Espiñeira, Pacheco y Asociados


37 de 49
Escriba un nombre de contacto en el campo “Name”. El campo “Company” es opcional.
Escriba “Product Key”.
Haga clic en “Next>”.

Espiñeira, Pacheco y Asociados


38 de 49
Seleccione los componentes según los siguientes esquemas:

 Mínima: (181 MB) Para sistemas con limitaciones de espacio en disco.


 SQL Server Database Services
 Recomendada: (586 MB) Para la mayoría de casos, como operación de sistemas y
administración avanzada de bases de datos.
 SQL Server Database Services
 Workstation components, Books Online and development
tools
 Completa: (636 MB) Para manipulación avanzada de datos y análisis.
 Todos los componentes
Haga clic en el botón “Next>”.

Utilice una instancia Predeterminada a menos que tenga la necesidad de utilizar una
instancia con nombre. Para obtener información sobre los nombres de instancia, haga
clic en el botón “Help”.
Si instala una “Named instance”, deberá indicar este nombre durante la instalación de
“Create Elements”/”Direct Manager Server”.
Seleccione “Default instance”.
Haga clic en el botón “Next”.

Espiñeira, Pacheco y Asociados


39 de 49
Defina la cuenta en la que se ejecutará SQL Server 2005.

 Seleccione Use the built-in System account (o utilice la cuenta que le


proporcione su departamento de informática).
 Seleccione SQL Server en Start services at the end of setup para iniciar
automáticamente el servicio después de arrancar.
 Si utiliza una instancia con nombre, seleccione SQL Browser.
Haga clic en el botón “Next”.

Espiñeira, Pacheco y Asociados


40 de 49
Crear Elements/Direct Manager Server precisa de autenticación mixta.
Seleccione Mixed Mode (Windows Authentication and SQL Server
Authentication).
Indique una contraseña para el inicio de sesión del usuario sa (administrador de sistema).
Confirme la contraseña.
Haga clic en el botón “Next”.

Acepte la configuración predeterminada.


Haga clic en el botón “Next”.

Espiñeira, Pacheco y Asociados


41 de 49
Esta página se muestra si se selecciona Reporting Services en la página Components
to Install. (Los servicios de informes solo están disponibles si se ha instalado IIS).

Haga clic en el botón Install.

Completing Microsoft SQL Server 2005 Setup


La instalación de Microsoft SQL Server 2005 ha finalizado.
Haga clic en “Finish”.

Espiñeira, Pacheco y Asociados


42 de 49
Apéndice A: Habilitar TCP/IP

Ahora que está instalado SQL Server 2008 Express, necesitará configurar las opciones de
red que se encuentran deshabilitadas de manera predeterminada.

1. En el Menú de Inicio, seleccione All Programs > Microsoft SQL Server


2005 >Configuration Tools > SQL Server Configuration Manager.

2. Expanda SQL Server Network Configuration y seleccione Protocols for


SQLEXPRESS.

3. Habilitar TCP/IP. Si necesita Named Pipes, se pueden habilitar tal como se evidencia
en la siguiente imagen:

Espiñeira, Pacheco y Asociados


43 de 49
4. Cierre el SQL Server Configuration Manager.

Apéndice B: Agregar excepciones de Firewall

Si tiene un servidor de seguridad de software instalado, debe agregar excepciones para los
servicios de “SQL Server” y “SQL Server Browser”. Si utiliza “Windows Firewall”, haga lo
siguiente:

1. En Control Panel, abra el subprograma de System and Security >Windows


Firewall.

2. Vaya al vínculo Allow a program or feature through Windows Firewall.

Espiñeira, Pacheco y Asociados


44 de 49
3. Haga clic en Change settings.

4. Haga clic en Allow another program….

Espiñeira, Pacheco y Asociados


45 de 49
5. Localice y seleccione C:Program FilesMicrosoft SQL
ServerMSSQL.10MSSQLBinnsqlservr.exe.

6. Haga clic en el botón “Add”.

Espiñeira, Pacheco y Asociados


46 de 49
7. Haga clic en el botón “Allow another program…”

8. Localice y seleccione C:Program FilesMicrosoft SQL

Server90Sharedsqlbrowser.exe.

Espiñeira, Pacheco y Asociados


47 de 49
9. Haga clic en “Add” y, a continuación, haga clic en el botón “Ok”.

Si utiliza un servidor de seguridad de terceros, debe seguir sus instrucciones para agregar
excepciones a sqlservr.exe y sqlbrowser.exe

Cuando haya completado todos los pasos anteriores, necesitará reiniciar los servicios de
SQL Server y SQL Server Browser para completar el proceso. Si todavía tiene problemas,
es posible que deba reiniciar el computador.

Espiñeira, Pacheco y Asociados


48 de 49
VIII. Recursos
Libros
Teach Yourself SQL in 21 Days, Second Edition
Macmillan Computer Publishing
Ryan K. Stephens

Introduction to Structured Query Language


James Hoffman

Enlaces a internet
http://msdn.microsoft.com/es-es/library/bb510741.aspx

Colaboradores
Luis Fernando Farías
Consultoría Gerencial

Jonathan González
Consultoría Gerencial

Espiñeira, Pacheco y Asociados


49 de 49

También podría gustarte