Sei sulla pagina 1di 86

Microsoft

SQL Server 2008


Administracin y programacin de BD. SQL Server

Versiones de SQL-Server 2008 (9.0)

SQL Server 2008 Enterprise Edition.- Diseado para


soportar entornos de grandes transacciones
empresariales (OTLP), gran complejidad de analisis de
datos, datawarehouse, y Web Sites muy activas.
SQL Server 2008 Standard Edition.- Diseado para
comercio electronico, datawarehouse y soluciones de
lineas de negocio de tamao pequeo-mediano.
SQL Server 2008 WorkGroup Edition.- Diseado para
pequeas organizaciones que necesitan una base de
datos que no tenga limite de usuarios, tambin se puede
usar para pequeos web servers.
SQL Server 2008 Developer Edition.- Incluye las
mismas funcionalidades de Enterprise Edition, pero esta
licenciado para servidores de desarrollo y test, no para
servidores productivos.
SQL Server 2008 Express Edition.- gratuito, facil de
usar y administrar base de datos, puede ser usado como
cliente de base de datos en vez de servidor de base de
datos.

Licencias del SQL-Server

Microsoft SQL Server 2008 est disponible en


base a tres modelos de licencias:
Licencia de servidor ms una licencia de
acceso de cliente (CAL) por dispositivo.
Requiere una licencia para el equipo que
ejecuta el producto servidor de Microsoft, y una
CAL para cada dispositivo cliente.
Licencia de servidor ms una licencia de
acceso de cliente (CAL) por usuario.
Requiere una licencia para el equipo que
ejecuta el producto servidor de Microsoft, y una
CAL para cada usuario.
Licencia por procesador. Requiere una nica
licencia por cada CPU en el entorno de sistema
operativo que ejecuta SQL Server. Esta licencia
incluye un acceso ilimitado de dispositivos
cliente.

Instalacin del SQL-Server

Requisitos de Hardware

Pentium III o superior, 600Mhz; Recomendado 1Ghz


o mas.
Memoria 512MB; recomendado 1Gb o mas
Disco con espacio de 2.1 GB (Todas las
aplicaciones)

Requisitos de Software.

Windows 2000 Profesional con SP4 (No Enterprise)


Windows Server 2000 SP4 , 2003 SP1, 2008
(Todas)
Windows XP con SP2 (No Enterprise)
Windows Vista (No Enterprise)

http://msdn.microsoft.com/es-es/library/ms143506(SQL.90).aspx

Explorando las instancias de


Sql
Instancia: es una copia del ejecutable de sqlservr.exe que
se ejecuta como un servicio de sistema operativo. Cada
instancia administra varias bases de datos del sistema y
una o varias bases de datos de usuario.
. Instancia por defecto: se accede poniendo
directamente el nombre del servidor

. Instancia con nombre: se accede usando una barra


inclinada hacia la izquierda seguida del nombre de la
instancia, que es la forma de identificarlas. Por ejemplo:
localhost\Instancia

Componentes de Sql
Herramienta o utilidad Descripcin
SQL Server Management Studio se utiliza para editar y
ejecutar consultas, y para iniciar tareas estndar del
SQL Server Management Studio asistente. Consola administrativa de SQL Server (SQL Server
Managment Studio). Centraliza toda la administracin

Analysis Server

Contiene funciones de procesamiento analtico en lnea y


minera de datos para aplicaciones de Business Intelligence

Reporting Services

ayudarn a crear, implementar y administrar informes para la


organizacin, as como de caractersticas de programacin
que le permitirn extender y personalizar la funcionalidad de
los informes.

Integration Services

Herramientas y componentes para transferencia de datos

Notification Services

Plataforma para aplicaciones que envia notificaciones

Sql Server Configuration


Manager
Administra los servicios asociados a SQL Server,
configurar los protocolos de red utilizados por SQL
Server y para administrar la configuracin de
conectividad de red de los equipos cliente de SQL
Server. El Administrador de configuracin de SQL
Server es un complemento de Microsoft
Management Console que est disponible desde el
men Inicio

Sistemas de gestin
de base de datos:

DataBase Management System.


Tipo de software muy especfico, dedicado
a servir de interfaz entre la base de datos,
el usuario y las aplicaciones que la
utilizan.
Manejar clara, sencilla y ordenada un
conjunto de datos, informacin relevante
para una organizacin.

Taller de Instalacin de SQL-Server

Taller de Instalacin de
SQL-Server - Finalizacin

13

14

10

11

12

Conectarse al Servidor
SQL-SERVER

Tipo de Servidor
Nombre del Servidor (IP)
Autenticacin

SQL Server Management


Studio

Explorador de Objetos

Bases de Datos
Seguridad
Objetos de Servidor
Replica
Administracin
Servicios de Notificacin

Ficha Resumen

Bases de SQLServer

Bases de Datos del Sistema y


de Usuario
De Sistema:
Master.- Registra toda la informacin del
sistema para una instancia de SQL Server.
Model.- Se utiliza como plantilla para todas las
bases de datos creadas.
Msdb.- La utiliza el Agente SQL Server para
programar alertas y trabajos.
Tempdb.- Contiene objetos temporales o
conjuntos de resultados intermedios.
.

Archivos de la Base de Datos

Principal.- El archivo de datos principal


(.MDF)
Secundario.- Los archivos de datos
secundarios son opcionales (.NDF)
Registro de Transacciones.- contienen la
informacin de registro que se utiliza para
recuperar la base de datos. (.LDF)

Almancenamiento
D a t a b a s e

Fichero de datos
.mdf o .ndf

Fichero de log
.ldf

La unidad almacenamiento de datos es la pgina. Cada pagina contiene 8k


Las extensiones son una coleccin de ocho pginas fsicamente contiguas; se
utilizan para administrar las pginas de forma eficaz. Todas las pginas se
almacenen en extensiones.

Creacin de una Base de Datos

Nombre Lgico.
Tamao Fsico Inicial.
Crecimiento de Archivos.
Archivos de la Base (Ruta de acceso).
Opciones - Nivel de Compatibilidad

CREATE DATABASE
CREATE DATABASE NOMBREBASE
[ON { [PRIMARY]
[, FILEGROUP NombreGrupo]
(NAME = ArchivoLogico,
FILENAME = ArchivoFisico
[, SIZE=Tamao]
[, MAXSIZE={TamaoMax | UNLIMITED}]
[, FILEGROWTH=IncrementoCrecimiento]
)} [,..n] ]
[LOG ON
{ ( NAME=ArchivoLogico
FILENAME=ArchivoFisico
[, SIZE=Tamao]
[, MAXSIZE={TamaoMax | UNLIMITED}]
[, FILEGROWTH=IncrementoCrecimiento]
)} [,..n] ]
[COLLATE NombreIntercalacin]

Adicionando y Modificando
Archivos
ALTER DATABASE NombreBase
ADD FILE
(NAME = ArchivoLogico,
FILENAME = ArchivoFisico
[, SIZE=Tamao]
[, MAXSIZE={TamaoMax | UNLIMITED}]
[, FILEGROWTH=IncrementoCrecimiento]
)

Esquemas de la B.D.

Es un contenedor de nombres para


objetos de la base de datos (tablas, vistas,
Procedimientos almacenados).
Define un limite dentro del cual todos los
nombres son nicos.
Su Formato:

Servidor.basedatos.esquema.objeto.
Versin Corta equema.objeto.

Creacin de Esquemas
Todas

las bases contienen un esquema


predeterminado llamado dbo.
Dbo. Es asignado para todos los usuario
que no tienen ningn esquema definido
explcitamente.
Use NombreBaseDatos
CREATE SCHEMA NombreEsquema
Crear un esquema llamado Persona, y agregar la
tabla direccin al mismo.

Administracin de Polticas
La administracin basada en polticas es una
tcnica que le permite comprobar y registrar el
estado de objetos y caractersticas en uno o varios
servidores o en una base de datos en concreto.
Tambin le permiten prevenir los cambios o
registrar solo cuando haya cambios en esa
propiedad de objetos

Copias de Seguridad y
Restauracin

El componente de copias de seguridad y


restauracin de SQL Server ofrece una
proteccin muy importante para los datos
crticos almacenados en las bases de
datos.
Casos Comunes:

Errores de medios.
Errores de usuario, por ejemplo, quitar una
tabla por error.
Errores de hardware, por ejemplo, una unidad
de disco daada o la prdida permanente de
un servidor.
Desastres naturales.

mbito Copias de seguridad


de datos
El

mbito de una copia de seguridad de datos


puede ser la base de datos completa, parcial o un
conjunto de archivos o grupos de archivos.
Una copia de seguridad completa incluye todos
los datos de una base de datos determinada o un
conjunto de grupos de archivos o archivos.
Una copia de seguridad diferencial se basa en la
ltima copia de seguridad completa de los datos.
Una copia de seguridad diferencial incluye slo los
datos que han cambiado desde la ltima base
diferencial.
Una copia de seguridad al transaction log el cual
guarda todos los cambios realizados en la base de
datos

mbito de Restauracin de
copia de seguridad de datos

Modelo de recuperacin Simple: Sin necesidad de


hacer copias de seguridad del log de. Se reduce
automticamente el espacio de registro, manteniendo al
mnimo el espacio del fichero segun termina las
transacciones de las consultas.
Modelo de recuperacin Completa: Requiere
copias de seguridad del log de transacciones. No se pierde
trabajo si un archivo de datos se pierde o resulta daado.
Se puede recuperar hasta cualquier momento

Modelo de recuperacin bulk-logged: Requiere


copias de seguridad del log de transaccionespermite
operaciones de copia masiva de alto rendimien to, (por
ejemplo, operaciones realizadas con BCP.exe, Bulk
Insert, etc), reduciendo el uso del espacio de registro..

Integridad de una base de


datos

DBCC CHECKDB

ALGUNAS SENTENCIAS
DBCC CHECKTABLE
DBCC CHECKCATELOG

Seguridad Inicios de Sesin

Un inicio de sesin define el contexto de


seguridad en cada proceso que ejecuta.
Los usuarios de Windows necesitan un
inicio de sesin de SQL Server para
conectarse.
2 tipos (Modo Mixto)

Autentificacin de Windows
Autenticacin de Sql Server

Funciones del Servidor


Asignacin de Usuarios
Funcin Sobre la base de datos

Usuario de la Base de Datos

Elementos que podemos Proteger

Tablas, Vistas y Procedimientos


Almacenados

Permisos: Conceder, Denegar, WITH


GRANT.

Automatizando tareas

Jobs: Especifica serie de Tareas


programadas Pueden incluir Transact Sql

Se puede definir que en base a la ejecucion


tarea programada el operador reciba una
alerta

Objetos de la Base

Diagramas
Tablas (Sistema y Usuario)
Vistas (Sistema y Usuario)
Sinnimos
Programacin

Procedimientos
Funciones
Desencadenadores
Tipos
Reglas
Valores Predeterminados

Seguridad

Usuario / Funciones y Esquema

Tipos de Datos

Limitar el almacenamiento en una columna;


rangos de valores.
Correcta seleccin del tipo dato sea carcter,
enteros, binarios, fechas etc.
Objetos que tienen tipos de datos

Columnas en Tablas y Vistas


Parmetros en Procedimientos Almacenados
Variables

Los Cuatro atributos de un Objeto

La clase o tipo de datos


Longitud o su tamao
Precisin (Solo numricos) smallint, 5 dgitos,
precisin de 5.
Escala (Solo numricos) Nmeros de dgitos de la
parte decimal. Int =Escala 0; Money=Escala max 4.

Tipos de Datos - 7 Categoras

Numero Exacto

Numero Aproximado

Bigint
Int
Smallint
Decimal(p,s)
Numeric(p,s)
Bit

Money
Smallmoney

Fecha y Tiempo

Char() Tamao Fijo


Varchar() Tamao Variable
Text (2GB)

Binario

DateTime

Carcter

Float
Real

Monetario

Binary(n)
Image

Propsito General

Timestamp
XML

Tipos de Datos Definidos por Usuario

Crear nuestros propios tipos de datos


Tipo de datos personalizado.
Para una base de datos concreta.
Nombre nico.

CREATE TYPE [ schema_name. ] type_name { FROM


base_type [ ( precisin [ , scale ] ) ] [ NULL | NOT NULL ]
| EXTERNAL NAME assembly_name [ .class_name ] |
AS TABLE ( { <column_definition> |
<computed_column_definition> } [ <table_constraint> ] [
,...n ] ) } [ ; ]
Crear el tipo CodigoPostal como varchar(5) y un Texto de
100; usando TSQL y Management Studio

Creacin de TABLAS

Coleccin de Columnas / Campos


Cada Fila representa una registro.

CREATE TABLE [ database_name . [ schema_name ] . |


schema_name . ] table_name
( { <column_definition> | <computed_column_definition>
|
<column_set_definition> }
[ <table_constraint> ] [ ,...n ] )
[ ON { partition_scheme_name ( partition_column_name ) |
filegroup | "default" } ]
[ { TEXTIMAGE_ON { filegroup | "default" } ] [ FILESTREAM_ON {
partition_scheme_name | filegroup | "default" } ] [ WITH (
<table_option> [ ,...n ] ) ] [ ; ]

Taller Creacin de Tablas

Usando TSQL Crear

Persona (Codigo,Nombre,Apellido,Genero)
Empleado
(Codigo,Nombre,Apellido,Direccion,Genero,
Sueldo,FechaNacimiento,Foto,Estado)
Estudiante (temporal)

Verificar la creacin del Objeto sys.object


y sp_help
Usando Management Studio Crear La
tabla Producto
(Cdigo,Descripcin,Precio,Cantidad,
Fecha,Estado).

Tipos de Columnas

Columnas Calculadas.- Columna Virtual que no


se almacena fsicamente en la tabla
Columnas de Identidad (Identity) .- Valores
secuenciales generados por el sistema que
identifican cada fila.
Columnas Uniqueidentifier .- se utiliza con la
funcin newid(), Numero identificador unico
como cadena bynaria (GUID) Globally Unique
Identifier.

Hacer un ejemplo de cada una usando TSQL.

Modificacin de Tablas
Modificar la estructura de una tabla con:
ALTER TABLE.
Podemos:
Aadir o eliminar Campos
Cambiar el tipo de dato a los campos
Cambiar el Nombre a los campos
Modificar Longitud o tamao (Numrico o Texto)
Agregar o modificar sus propiedades.
ALTER TABLE table_name
{ [ALTER COLUMN column_name]
| ADD { <column_definition>
columna tipoDeDato { [NULL - NOT NULL]
| DROP COLUMN column_name } [ ,...n ]

Hacer un ejemplo de algunos escenarios citados.

Integridad de Datos
Dos cosas importantes en el diseo de las
tablas:
Identificacin de valores validos para una
columna.
Determinar como forzar la integridad de
los datos en la columna.
Categoras:

Entidad (Filas)
Dominio (Fsico y Lgico) (Columnas)
Referencial (Entre Tablas)

Integridad de Datos

Entidad.- Todas la filas de una tabla


tengan un identificador nico; conocido
como clave principal o PK.
Dominio.- Conjunto de valores de datos
que son validos para una columna
determinada adems de valores nulos o
no.
Referencial.- Mantener las relaciones
entre las claves principales y las claves
externas.

Agregar o Cambiar Filas (Ninguna fila)


Cambiar Valores (Filas Hurfanas)
Eliminar Filas (Existen Filas Relacionadas)

Restricciones o Constraints

Mtodos estndar ANSI para exigir la integridad de


los datos.
Usados en Integridad de Datos (dominio, entidad y
referencial).
Tipo

Dominio

Constraint
DEFAULT
CHECK
FOREIGN KEY

Entidad

PRIMERY KEY
UNIQUE

Referencial

FOREIGN KEY
CHECK

Descripcin
Valor Predeterminado, cuando un insert no
proporciona ningn valor.Datos aceptados en una columna
(No reglas).
Valores aceptables para la actualizacin;
columna de otra tabla.
Identifica cada fila de manera nica.
Impide la duplicacin de claves alternativas no
principales
Columna (s) que coinciden con la PK de la
misma tabla o otra conocida como FK.
Datos aceptados en una columna basndose
en otras de la misma tabla.

Constraint DEFAULT CHECK Y


PRIMARY KEY

Valores Predeterminados
Validaciones
Clave Principal

CREATE TABLE Nombre (


{<Columnas> | <RestriccionTabla>} [,..n])
<definicionColumna> ::={NombreColumna Tipo}
[ {DEFAULT Expresin} ]
[ <restriccionColumna> [..n] ]
<restriccionColumna>::=
[ CONSTRAINT NombreRestriccion
{ [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE]
| [ REFERENCES TablaRef [(ColumnaRef) ] ]}
ALTER TABLE NombreTabla
[ADD CONSTRAINT NombreRestriccion] [DROP CONSTRINT Nombre Restriccion]
DEFAULT <ValorPredeterminado>
CHECK <Expresin>
PRIMARY KEY [CLUSTERED | NONCLUSTERED] {(Columna [,n])}
FOR NombreColumna

Hacer Taller para cada una.

Constraint UNIQUE

Dos Filas de una columna no pueden tener el


mismo valor.
Ya se tiene Clave Principal PK.
Otros Identificadores sean nicos como:

Cedula.
Matricula de Carro.
Permiso de Conducir.
Numero de Cotizacin.

Especificar CLUSTER o NONCLUSTER

ALTER TABLE NombreTabla


[ADD CONSTRAINT NombreRestriccin]
- DROP CONSTRINT NombreRestriccin]
UNIQUE CLUSTER - NONCLUSTERED (columna[,..n])

Crear una tabla con un UNIQUE en sus columnas, luego use ALTER
TABLE.

Constraint FOREIGN KEY

Es una clave o combinacin de columnas


que se utiliza para establecer y exigir un
vinculo entre los datos de 2 tablas.
Esta restriccin define una referencia a
una columna con una restriccin
PRIMARY KEY o UNIQUE de la misma
tabla o de otra.

ALTER TABLE NombreTabla


[ADD CONSTRAINT NombreRestriccion]
- DROP CONSTRINT Nombre Restriccion]
FOREIGN KEY (columna[,..n])
REFERENCES TablaOrigen (columna[,..n])

Hacer Taller.

Actualizacin y eliminaciones
Cascada

NO ACTION.-Se produce un error y se


deshace la instruccin (Predeterminado)
CASCADE.-Los valores de la clave
Externa se actualizan o Eliminan.
SET NULL.- Los Valores de la clave
externa se establecen a NULL
SET DEFAULT.- Los Valores de la clave
externa se establecen a sus valores
predeterminados.

Hacer Prueba con un taller.

Diagramas de Base Datos

Son representaciones visuales de la BD


Representan las relaciones entre tablas
en funcin de sus claves.
Permiten Modelar y crear un Modelo
Entidad Relacin o MER.
En SQL-Server se puede modificar los
objetos, crear tablas y sus relaciones FK.
Se pueden tener varios Diagramas mas
pequeos de un MER grande.

Taller Crear un Diagrama de la Tablas de la base.

MER Reservas de Libros

Sentencias Transact-SQL
Programacin de Base de Datos

SQL & T-SQL

SQL.- es un lenguaje de consulta para los


sistemas de Bases de Datos relacionales, pero
no es un lenguaje Programacin.
SQL, no variables, estructuras de control, de
flujo, bucles etc.
T-SQL admite el nivel bsico de implementacin
de SQL-92, estndar ANSI.
TSQL.- podemos programar las unidades de
programa de la BD.

Procedimientos Almacenados
Funciones
Triggers
Scripts, Etc.

T-SQL - Comentarios

TSQL.- no es CASE-SENSITIVE, es decir


no diferencia maysculas de minsculas.
Un comentario es una aclaracin que el
programador incluye en el cdigo, son
soportados 2 estilos:

-- Comentario de una sola lnea.


/* */ Comentario de varias lneas.

Scripts y Lotes

Script.- es un conjunto de sentencias de


TSQL en formato texto plano que se
ejecuta en un servidor de SQL-Server.
GO .- comando para iniciar el envo del
lote actual de instrucciones TSQL.
En ocasiones en conveniente separar las
sentencias en varios lotes.
Si desea ejecutar cierto cdigo TSQL,
mrquelo y ejecute con la tecla F5.

Hacer un pequeo taller.

Identificadores

Tenemos 2 tipos:
Identificadores Estndar

De 1 a 128 caracteres Mximo.


1er carcter debe ser alfabtico.
Despus del 1er carcter pueden incluir letras,
nmeros o smbolos.
Si empieza con @ indica una variable o parmetro
local.
Si empieza con # indica una tabla o procedimiento
temporal
Si empieza ## indica un objeto global temporal

Identificadores Delimitados

Si un identificar no cumple alguna de las reglas de


formato siempre debe estar delimitado con [ ]

Tipos de datos en TSQL

El tipo de dato define el formato de


almacenamiento, espacio en discomemoria que va ocupar un campo o
variable, restricciones y rango de valores
validos.
Los tipos de datos de los columnas en las
tablas son los mismos para las variables o
parmetros.

Realizar un taller.

Variables en TSQL

Una variable es un valor identificado por un


nombre (identificador) sobre el que podemos
realizar modificaciones.
Los identificadores de una variable debe
empezar con el carcter @.
Para declarar variables debemos utilizar la
palabra clave DECLARE, seguido del
identificador y tipo de dato.
La asignacin de variables con:

Instruccin SET
Sentencia SELECT
DECLARE {@variableLocal tipoDatos} [,n]
SET @variableLocal = expresin

Hacer taller.

Operadores TSQL

Aritmticos:

Comparacin:

=, <>, !=, <,>,<=,>=, !>,!<

Lgicos:

+,-,*,/,**,%

AND, NOT, OR

Otros:

ALL, ANY, BETWEEN, LIKE, NOT ,


SOME

Estructura Condicional IF

Permite evaluar una expresin booleana y ejecutar


operaciones en el bloque formado por BEGIN END.
Sintaxis:

IF (<expresin booleana>)
BEGIN

{ sentencias SQL o bloques de sentencias}

END
ELSE IF
BEGIN

{ sentencias SQL o bloques de sentencias}

END
ELSE
BEGIN

{ sentencias SQL o bloques de sentencias}

END -- Realizar Taller.

Estructura condicional CASE

Permite evaluar una expresin y devolver


un valor u otro.
Sintaxis:

CASE <expresin>
WHEN <valorExpresin> THEN <valordevuelto>
WHEN <valorExpresin> THEN <valordevuelto>
ELSE <elseValorDevuelto> -- Valor por defecto
END
Realizar Taller.

Estructura de control WHILE


El bucle While se repita mientras expresin se
evale como verdadero.
Es el nico tipo de bucle que dispone TSQL.
Sintaxis:
WHILE Expresin_Booleana
{ sentencias SQL o bloque Sentencias}
[BREAK]
{ sentencias SQL o bloque Sentencias}
[CONTINUE]
{ sentencias SQL o bloque Sentencias}
Realizar Taller.

Estructura GOTO

La sentencia GOTO nos permite desviar el


flujo de ejecucin hacia una etiqueta
definida NomEtiqueta:.
Se usaba bastante con la variable de
sistema @@ERROR para el control de
errores.
Actualmente se desaconseja su uso, y se
recomienda TRY-CATCH para la gestin
de errores.

Hacer ejemplo.

Control de Errores try catch

Si se produce un error en el bloque TRY,


el control se transfiere a un bloque
CATCH.

BEGIN TRY
{ sentencias SQL o bloque Sentencias}
END TRY
BEGIN CATCH
{ sentencias SQL o bloque Sentencias}
END CATCH
Hacer ejemplo.

Funciones especiales de Error


ERROR_NUMBER().- Numero del Error.
ERROR_SEVERITY().- Severidad del error.
ERROR_STATE().- estado del error
ERROR_PROCEDURE().- Nombre del
procedimiento almacenado que ha provocado el
error.
ERROR_LINE().- Lnea que se ha producido el
error.
ERROR_MESSAGE().- Mensaje del error.
Ver ejemplo

Generar un error con RAISERROR

Provocar voluntariamente un error.


Cuando los datos incumplen una
regla de negocio.
RAISERROR.- recibe 3 parmetros:

Mensaje.- Texto
Severidad.- 0 al 25; solo podemos usar
0 al 18, para el resto debe ser miembro
de la funcin o rol sysadmin.
Estado.- Valores entre 1 y 127.

Ver ejemplo.

Consultar Datos Sentencia


SELECT

Consultar datos almacenados en una


tabla.

SELECT <nombre_campo / lista_seleccin>


INTO <nombre_nueva_tabla>
FROM <nombre_tabla>
[WHERE <condicin> [AND OR <condicin>]]
[GROUP BY <nombre_campos>]
[HAVING <condicin>[AND OR <condicin>]]
[ORDER BY <nombre_campo> [ASC DESC]]
[COMPUTE / COMPUTE BY ]
Hacer Taller

Distinct, Top y Percent

Distinct.- Elimina las filas duplicadas de


los resultados.

SELECT DISTINC <CAMPO> FROM <TABLA>

Top.- Limitar el numero de Filas


Devueltas.
Percent.- se devuelve el porcentaje
(especificado por expresin) de las filas
del conjunto de datos.

TOP (Expresin) [ PERCENT ]

Alias de Tablas
La legibilidad de una instruccin SELECT
se puede mejorar si se proporciona un
alias para la tabla.
Conocida como Variable de intervalo o
nombre de correlacin.
til en Join, para identificar campos
ambiguos.
2 formas:
NombreTabla as TablaAlias
NombreTabla TablaAlias

Intervalos
(BETWEEN Y NOT BETWEEN)

Es una bsqueda que devuelve todos


los valores entre dos especificados.
Podemos tener intervalos inclusivos o
exclusivos (Operadores <, > ).
Podemos hacer uso del operador
NOT.

WHERE <CAMPO> BETWEEN <VALOR> AND <VALOR>

Listas (IN, NOT IN)

La palabra clave IN permite seleccionar


las filas que coincidan con alguno de los
valores de una lista.
Los elementos de una lista deben estar
separados por una coma e incluidos entre
parntesis.

WHERE <campo> IN (Lista)

Coincidencias de Patrn
LIKE y NOT LIKE
Busca valores de cadenas de caracteres
que coincidan con un patrn determinado.
Caracteres Comodn:
% .- Cualquier cadena de cero o mas
caracteres.
_ .- Cualquier carcter
[ ] .- Cualquier carcter individual del
intervalo [a-z] o [abcde]
[ ^ ] .- Cualquier carcter individual fuera del
intervalo. [^a-z] o [^abcde]

Valores
NULL (IS NULL e IS NOT NULL)

NULL .- NO es cero ni espacio en blanco.


Ausencia de Valor.
Puede ser considerado como perdida en
la integridad de datos.

WHERE <CAMPO> IS NULL IS IS NOT NULL

Clusula GROUP BY &


HAVING

Agrupa un conjunto de filas seleccionado


en un conjunto de filas de resumen..
Devuelve una fila por cada grupo.
Puede usar Funciones de agregacin
como SUM(), AVG(),COUNT(),
MAX(),MIN() por grupo.
HAVING.- especifica una condicin de
bsqueda para un grupo o agregado.

Solo se puede usar con la clusula GROUP


BY

GROUP BY <campos>

Subconsultas con Tablas


derivadas

Una tabla derivada se crea al utilizar una


subconsulta en al clusula FROM.
Una tabla derivada es funcionalmente
equivalente a la consulta entera.

SELECT * FROM <SUBCONSULTA>


Ejemplo:
SELECT tab.salesorderid, tab.cutomerid FROM
(SELECT salesorderid,customerid
FROM salesorderheader) as TAB

Vistas

Una vista es como una tabla virtual que almacena una


consulta (SELECT).
Almacena una consulta como un objeto para utilizarse
posteriormente.
Las tablas consultadas en una vista se llaman tablas
base.
Las vistas permiten:

Ocultar informacin: permitiendo el acceso a algunos datos y


manteniendo oculto el resto.
El usuario opera con los datos de una vista como si se tratara de
una tabla.

CREATE VIEW <NombreVista>


AS
<sentencia SQL SELECT>

Subconsultas con Expresiones


Utilizar en expresiones de calculo.
La subconsulta debe producir un valor escalar o
una lista de valores de una sola columna.
Una lista de valores sustituye a una expresin
en una clusula WHERE que contiene la
palabra clave IN.
Ejemplo:
SELECT Name, LisPrice,
(SELECT AVG(ListPrice) FROM Product) as
Promedio ,
ListPrice - (SELECT AVG(ListPrice) FROM
Product) as Diferencia
FROM Product WHERE ProducLine=T

Subconsulta Correlacionada
Usada en una expresin dinmica que
cambia en cada fila de una consulta
externa.
Esta dividen consultas complejas en dos o
mas consultas simples relacionadas.
Ejemplo:
SELECT SalesOrderID, CustomerID
FROM SalesOrderHeader as or1
WHERE 3 < (SELECT OrderQty FROM
SalesOrderdetail as od WHERE
or1.SalesOrderID=od.SalesOrderID and
od.Product=770)

Operadores EXISTS y NOT EXISTS


Son consultas correlacionadas
Con el propsito de restringir el conjunto
de resultados de una consulta externa a
las filas que cumplen la subconsulta.
Estos devuelve TRUE o FALSE.
Ejemplo:
SELECT a.firsName, a.LasName
FROM Person as a
WHERE EXISTS (SELECT * FROM
Employee as b WHERE
a.BusinessEntityID=b.BusinessEntityID
and a.LastName = Jhonson)

Combinacin de Tablas

Recuperar datos de 2 o mas tablas segn


sus relaciones lgicas.
Especifica una clave externa (FK) y su
clave asociada en la otra tabla (PK).
Se pueden usar operadores lgicos para
comparacin de la columnas (filtrar).

Sintaxis:
FROM <1raTabla TIPOJOIN 2daTabla>
[ON (CondicinJOIN)]
TIPOJOIN.- Interior, Exterior y Cruzada
CondicinJOIN.- Predicado a evaluar por cada par de
filas combinadas.

Tipos de Combinaciones
Internas:
INNER JOIN o JOIN.- Combinan tablas
mediante la comparacin de los valores que son
comunes en ambas tablas (FK y PK).
Externas
LEFT OUTER JOIN o LEFT JOIN
RIGHT OUTER JOIN o RIGHT JOIN
FULL OUTER JOIN o FULL JOIN
Cruzadas
CROSS JOIN
Realizar Taller.

Sentencia INSERT
Inserta Filas en una Tabla
Mencionamos las columnas y los valores
de las misma:
INSERT [INTO] Tabla [(col_list)]
DEFAULT VALUES VALUES (DEFAULT
NULL expresin [,..n])
La opcin DEFAULT VALUES inserta
valores por defecto en todas las
columnas.

Sentencia UPDATE
Modifica los valores existentes de una
tabla.
Los registros se modifican de conformidad
de la clusula WHERE.
Si se omita la clusula WHERE la
modifica todas las filas de la tabla.
UPDATE tabla
SET Columna= expresin DEFAULT NULL
[,..N]
[FROM] Tabla2 [,..n]
[WHERE Condicin]

Sentencia DELETE &


TRUNCATE TABLE
Elimina los registros de una tabla.
La sentencia opera sobre las filas y no en
las columnas.
DELETE FROM tabla
[WHERE condicin]
TRUNCATE TABLE
Proporciona una mayor rapidez de
ejecucin.
No posee clusula WHERE
Borra todos los registros de una tabla.

XML en consultas
Lenguaje de marcado extensible XML.
Requisitos de muchas aplicaciones
actuales.
Transformar datos entre XML y
Relacional.
Manejado en Consultas SELECT
Clusula FOR XML, que se anexa a la
instruccin SELECT.
Taller.

ndices
Optimizacin en el tiempo de respuesta de
consultas.
Un ndice es un conjunto de paginas
asociado a una tabla o vista.
Si una tabla no tiene ndice utiliza en
mtodo table scan para recuperar filas,
menos eficiente.
Se modifican con ALTER INDEX y se
elimina con DROP INDEX.
CREATE INDEX <NOMBRE>
ON <Tabla>(campo [,..n])

Taller

Funciones Definidas por el Usuario


Programacin Modular
Ejecucin mas rpida.
Reducir el trfico de RED.
Tipos de Funciones:
Escalares
Valores de Tabla en Lnea
Valores de Tabla con mltiples Sentencias

CREATE FUNCTION <NOMBRE>


(Parmetros)
RETURNS <tipo de dato>
AS
BEGIN
RETURN <expresin>
ENG -- taller

Desencadenadores - TRIGGER

tiles para implementar Reglas


empresariales e Integridad de Datos.
Las instrucciones INSERT, UPDATE y
DELETE hacen que se llame a un
desencadenador.
Capacidad de consultar otra tabla e incluir
instrucciones complejas (lgica).

CREATE TRIGGER <Nombre>


ON <Tabla o Vista>
[ WITH ENCRYPTION ]
{
{ { FOR | ALTER | INSTEAD OF} { [ DELETE] [,] [ INSERT ) [ , ]
[ UPDATE] }
[ WITH APPEND]
[ NOT FOR REPLICATION]
AS
[ { IF UPDATE (Columna)
[ { AND | OR } UPDATE (Columna) ]
[ ..n]

Desencadenadores - Escenarios

Auditoria

Seguimientos de cambios en los datos para


auditarlos posteriormente
Considerar la Tabla de auditoria como
Nombre de usuario, Equipo de host, Nombre
de la Aplicacin, Fecha y hora de cambio.

Totales de ejecucin

Para la realizacin de informacin o


decisiones puntuales
Tener dichos totales actualizados.

Taller