Академический Документы
Профессиональный Документы
Культура Документы
Clusula Where
Ejemplos
Ejemplo 1:
Script que permita mostrar los PASAJEROS cuyo tipo de documento sea DNI.
Tabla Pasajero
Ejemplo 2:
Mostrar los pagos que se han realizado la fecha 27-01-2013.
Tabla Pago
Ejemplo 3:
Mostrar los pagos realizados en el mes de mayo del ao 2014.
Ejemplo 4:
Mostrar los Pasajeros que no tienen asignado un telfono.
select nombre,apaterno,amaterno,telefono from pasajero
where telefono is null
go
Ejemplo 5:
Implementar un Script que permita mostrar los PASAJEROS con su correspondiente pas de
residencia.
A) Operadores Aritmticos
+ Sumar : Operador de Suma Nmerica y concatenacin de Columnas.
- Restar : Operador de resta Nmerica y tambin representa a nmeros negativos.
* Multiplicar : Operador de Multiplicacin.
/ Dividir : Operador de Divisin entera y fraccionaria.
% Mdulo : Operador que Devuelve el resto de una divisin.
B) Operador de Asignacin
Sql server solo cuenta con un operador para la asignacin de valores.
El operador = se tendr que colocar en cualquier expresin que necesite asignar un valor de
cualquier tipo.
Ejemplos:
Ejemplo 1:
Script que permita mostrar el resultado de la expresin 2*(10+15) - (8/3), utilizar la sentencia
SELECT para mostrar el resultado.
Ejemplo 2:
Script que permita mostrar el resultado de la expresin Celsius=(Fharenheit-32)*5/9, usar la
sentencia Select.
Ejemplo 3:
Calcular el rea de un Crculo, almacenando el valor del radio y de PI en sus variables respectivas.
declare @pi float
declare @radio float
declare @area float
--Asignar valores
set @pi=3.1415
set @radio=7
--Encontrar el rea del Crculo
set @area=@pi * Power(@radio,2)
Ejemplo 4:
Script que permita capturar en una variable el correo electrnico del pasajero con cdigo
P0000005, usar variables Transact-SQL y sentencia Select para mostrar el email.
C) Operadores Lgicos
Los operadores lgicos tienen por misin comprobar la veracidad de Alguna Condicin, estos
como los operadores de comparacin, devuelven el tipo de datos BOOLEAN (True, False,
Unknown).
AND: Representa la Lgica Y, dos expresiones deben ser TRUE para poder devolver TRUE.
ANY: Devuelve TRUE si alguna expresin del conjunto de expresiones es TRUE.
BETWEEN: Devuelve TRUE si el valor se encuentra dentro de un rango nmerico o cadena.
EXISTS: Devuelve TRUE si una determinada subconsulta devuelve por lo menos una fila de
registros.
IN: Devuelve TRUE si el operando se encuentra dentro de una lista de valores especficos.
NOT: Invierte el valor booleano de una expresin
OR: Devuelve FALSE cuando ambas expresiones sean FALSE.
SOME: Devuelve TRUE si de un conjunto de comparaciones alguna es TRUE.
= Igualdad de Expresiones
<> != Diferencia de Expresiones
> >= Mayor / Mayor o Igual
< <= Menor / Menor o Igual
Ejemplos
Ejemplo 1:
Script para Mostrar las reservas que sean del ao 2014 y no superen los $ 500.
Tabla Reserva
Ejemplo 2:
Script que permita mostrar las reservas cuyo costo se encuentre desde $400 hasta $700.
Ejemplo 3:
Script que permita mostrar los pasajeros cuya letra inicial de su apellido paterno se
encuentre entre A y C.
Tabla Pasajero
select apaterno, amaterno, nombre,num_documento from pasajero
where left(apaterno,1) between 'A' and 'C'
order by apaterno asc, amaterno asc, nombre asc
go
Ejemplo 4:
Script que permita mostrar los pasajeros cuya letra inicial de su apellido paterno No se
encuentre entre A y C.
C) Operadores Lgicos
%: Representa a uno o ms caracteres. Puede ser cualquier tipo de carcter textual o smbolo.
_: Representa un solo carcter de cualquier tipo.
Ejemplo 1:
Script que permita verificar si un determinado pas fue registrado o no en su tabla origen.
Ejemplo 2:
Script que permita mostrar los pasajeros cuyo nombre inicie con la letra A.
Tabla Pasajero
Ejemplo 3:
Mostrar los pasajeros que tienen una cuenta de correo GMAIL
Ejemplo 4:
Mostrar los pasajeros cuyo segundo carcter de su nombre sea la letra A, O U.
Ejemplo 5:
Mostrar los pasajeros cuyo segundo carcter de su nombre no sea la letra A, O U.
Ejemplo 6:
Mostrar los pagos realizados por un determinado pasajero, filtrar a dicho pasajero por su
nmero de documento. Usar subconsultas Operadores T-SQL.
Externas: las filas resultantes no son directamente de la tabla origen, podra ser de la
izquierda, derecha o completa.
INNER JOIN
El INNER JOIN es otro tipo de composicin de tablas, permite emparejar filas de
distintas tablas de forma ms eficiente que con el producto cartesiano cuando una de
las columnas de emparejamiento est indexada.
Ejemplos
Tabla Pasajero-Pas
2. Implementar un Script que permita mostrar los pasajeros con las siguientes
columnas idpasajero, nombre, apaterno, amaterno, pas, fecha de pago, monto de
pago (Inner Join).
Tabla Pas-Pasajero-Pago
Tabla Reserva
LEFT JOIN
La sentencia LEFT JOIN retorna la pareja de todos los valores de la izquierda con los
valores de la tabla de la derecha correspondientes, o retorna un valor nulo NULL en
caso de no correspondencia.
El operador de combinacin LEFT JOIN, indica que todas las filas de la primera tabla
se deben incluir en los resultados, con independencia si hay datos coincidentes en la
segunda tabla.
Ejemplos:
1. Implementar un Script que permita mostrar los pasajeros que no han realizado
ningn pago (Left Join).
Tabla Pas-Pasajero-Pago
RIGHT JOIN
Se devuelven todas las filas de la tabla de la derecha. Cada vez que una fila de la
tabla de la derecha no tenga correspondencia en la tabla de la izquierda, se
devuelven valores NULL para la tabla de la izquierda.
El operador de combinacin RIGHT JOIN, indica que todas las filas de la segunda
tabla se deben incluir en los resultados, con independencia si hay datos coincidentes
en la primera tabla.
2. Implementar un Script que permita mostrar todos los registros de la tabla pasajero y
pas (Right Join).
Tabla Pasajero-Pas
go
FULL JOIN
Una combinacin externa completa devuelve todas las filas de las tablas de la
izquierda y la derecha. Cada vez que una fila no tenga coincidencia en la otra tabla,
las columnas de la lista de seleccin de la otra tabla contendrn valores NULL.
Cuando haya una coincidencia entre las tablas, la fila completa del conjunto de
resultados contendr los valores de datos
de las tablas base.
CROSS JOIN
Las combinaciones cruzadas presentan el producto cartesiano de todos los registros
de las dos tablas. Se emplea el CROSS JOIN cuando se quiere combinar todos los
registros de una tabla con cada registro de otra tabla.
3. Implementar un Script que permita mostrar las registros de la tabla pasajero y pago
de tal forma que se aplique un producto cartesiano entre sus filas (Cross Join).
select * from pasajero cross join pago pag
Datos Agrupados
GROUP BY
Agrupa un conjunto de registros de acuerdo a los valores de una o ms columnas de
una tabla.
[ROLLUP]
[CUBE]
<Lista de Columnas>
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar las claves primarias de la tabla pas
agrupadas desde la tabla pasajero. Usar la clusula Group By.
Tabla Pasajero-Pas
--Utilizando Group By
select p.idpais from pasajero p
group by p.idpais
go
2. Implementar un Script que permita determiner el total de Aviones que tiene cada
aerolnea, y filtrar solo las aerolneas que tienen ms de un avin. Usar la clusula
Group By y Having.
Tabla Aerolnea-Avin
--Utilizando Group By
Select aer.nombre,count(avi.idavion) as Total_Aviones
from aerolinea aer inner join avion avi
on avi.idaerolinea=aer.idaerolinea
group by aer.nombre
having count(avi.idavion)>1
go
Funciones Agregadas
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar el acumulado de los montos registrados
en la tabla pago (Funcin SUM).
Tabla Pago
Ejemplo 2:
I Implementar un Script que permita mostrar el acumulado de los montos registrados
en la tabla pago por cada ao, considere el ao de la columna fecha. Use la Funcin
SUM y la clusula Group By.
Ejemplo 3:
Implementar un Script que permita mostrar el acumulado de los montos registrados
en la tabla pago por cada ao, y mes, considere el ao de la columna fecha. Use la
Funcin SUM y la clusula Group By.
COUNT
Funcin que permite devolver el nmero de elementos de un grupo. Count siempre
devolver un valor numrico.
Ejemplos
Ejemplo 1:
Implementar un Script que permita determinar el total de pasajeros registrados
(Funcin COUNT).
Tabla Pasajero
--Utilizando Funcin count
select count(idpasajero) as Total_Pasajeros
from pasajero
go
Ejemplo 2:
Implementar un Script que permita determinar el total de pasajeros registrados
agrupados por su pas, tener en cuenta las columnas a mostrar Nombre del pas, Total
Pasajeros. Use la Funcin agregada COUNT y la clusula Group By e Inner Join.
Tabla Pasajero-Pas
T
--Usando la Funcin agregada COUNT y la clusula Group By e Inner
Join.
select pai.nombre as [Pas],count(pas.idpasajero) as
[Total Pasajeros] from pasajero pas inner join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
go
Tabla Pasajero-Pas-Pago
select pai.nombre as [Pas],count(distinct pas.num_documento)
as [Total Pasajeros], sum(pag.monto) as [Monto Acumulado]
from pasajero pas inner join pais pai
on pai.idpais=pas.idpais inner join pago pag
on pag.idpasajero=pas.idpasajero
group by pai.nombre
go
Funciones Agregadas
SUM
COUNT
MAX
MIN
AVG
MAX
Funcin que permite determinar el valor mximo de una expresin propuesta por el
usuario.
Solo puede ser usado en columnas o expresiones que tenga como tipo de dato un
entero.
MAX Y MIN
All: Especifica que todos los valores son evaluados.
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar el monto ms alto y ms bajo registrado en
la tabla PAGO (Funcin MAX y MIN).
t Tabla Pago
t
--Usando la funcin MAX y MIN
select max(monto) as [Monto Mayor],
min(monto) as [Monto Menor]
from pago
go
Ejemplo 2:
Implementar un Script que permita mostrar los montos ms altos y ms bajos por ao
de la tabla pago, ordenados de forma descendente.
Ejemplo 3:
Implementar un Script que permita mostrar los datos del pasajero que registra el
mayor monto desde la tabla PAGO.
select pas.*
from pasajero pas
where pas.idpasajero=(select idpasajero from pago
where monto=@maxPago)
go
Funciones Agregadas
SUM
COUNT
MAX
MIN
AVG
AVG
Funcin que devuelve el promedio de los valores de un determinado grupo,
consideremos que dicha columna debe de ser numrica.
AVG(Columna Expresin)
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar el precio promedio de las tarifas asignadas
a los diferentes vuelos. (Funcin AVG).
Tabla Tarifa
Ejemplo 2:
Implementar un Script que permita mostrar el monto promedio de pagos agrupado por
pases. (Funcin AVG).
Tabla Pas-Pasajero-Pago
UNION
Consulta1
UNION
Consulta2
Ejemplos
Ejemplo 1:
Implementar un Script que permita mostrar los apellidos paternos de los pasajeros y
los nombres de los pases en una misma consulta .
Tabla Pas-Pasajero
Ejemplo 2:
Implementar un Script que permita mostrar el total de registros de las tablas Pasajero,
Pas, Pago desde una misma consulta.
Tabla Pas-Pasajero-Pago
Scripts
Procedimientos Almacenados
Funciones
Triggers
Estructuras de Control:
IF <Condicin_Lgica>
<BEGIN>
<Expresiones_CondicinTrue>
<END>
ELSE
<BEGIN>
< Expresiones_CondicinFalse>
<END>
Ejemplos:
Ejemplo 1:
Implementar un Script que permita insertar un nuevo registro en la tabla pas, en caso
se registre duplicidad en el nombre de un pas mostrar un mensaje de pas ya
registrado, caso contrario insertar dicho registro y mostrar un mensaje de Pas
registrado Correctamente.
Tabla Pas
--Estructura Condicional IF
declare @idpais char(4)='0011',
@nombre varchar(30)='Argelia'
if exists(select * from pais where nombre=@nombre)
begin
print 'Pas ya Registrado'
end
else
begin
insert into pais
values (@idpais,@nombre)
print 'Pas Registrado Correctamente'
end
go
Ejemplo 2:
Implementar un Script que permita Mostrar el mensaje de No hay Pasajeros en este
pas, solo cuando el total de pasajeros asignados a un determinado Pas no tenga
registros en la tabla pasajero. Caso contrarios determinar cuntos pasajeros tiene
dicho pas.
Tabla Pais-Pasajero
Scripts
Procedimientos Almacenados
Funciones
Triggers
La estructura CASE evala una expresin que podr tomar N valores distintos, segn
se elija uno de estos valores se tomar N posibles acciones
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar la fecha en texto registrada en la tabla
RESERVA.
Tabla Reserva
Ejemplo 2:
Implementar un Script que permita mostrar el nmero total de pasajeros por pas y el
mensaje NO CUENTA solo a los pases cuyo nmero de pasajeros sea cero.
Tabla Pais-Pasajero
Scripts
Procedimientos Almacenados
Funciones
Triggers
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar los nmeros pares consecutivos del 1 al
100.
Ejemplo 2:
Implementar un Script que permita aumentar en 10% el costo de las tarifas solo si el
promedio de estas no supera los 2000, cuando se termine de actualizar dichos
valores mostrar el mensaje YA NO HAY MS QUE ACTUALIZAR.
Tabla Tarifa
--Iniciamos el ciclo de repeticiones
--y evaluamos las repeticiones mientras el
-- promedio del precio sea menor que mil
while (select avg(precio) from tarifa)<2000
begin
--Actualizamos el costo
update tarifa set precio=precio*1.1
--repetiremos el bucle hasta que el precio `
--sea mayor que 2000 ahi nos detenemos
if (select max(precio) from tarifa)>2000
break
else
--Si el precio no es mayor que 2000 continuamos
continue
end
print 'Ya no hay ms que actualizar'
go
Ejemplo 3:
Implementar un Script que permita mostrar los registros de la tabla pasajero
paginados de 2 en 2.
Tabla Pasajero
--La pgina que deseamos mostrar
declare @pagina int=1
--Declaramos nuestra estructura iterativa
while(@pagina<=5)
begin
--Nmero de filas por pgina
declare @cantFilas int=2
--adicionamos una subconsulta llamada X
select * from (select rownum= ROW_NUMBER()
over (order by p.idpasajero),
--la funcin devuelve el nmero secuencial de una fila
de una
--particin de un conjunto de resultados,
-- comenzando con 1 para la primera fila de
--cada particin.
* from pasajero p) X
where rownum>(@cantFilas*(@pagina-1))AND
rownum<=(@cantFilas*(@pagina-1))+@cantFilas
set @pagina=@pagina+1
end
go
Programacin Transact SQL
Scripts
Procedimientos Almacenados
Funciones
Triggers
Procedimientos Almacenados
Sp_columns
Sp_column_privileges
Sp_databases
Sp_fkeys
Sp_pkeys
Sp_tables
Sp_server_info
Sp_statistics
Ejemplos
Ejemplos:
Ejemplo 1:
Implementar un procedimiento almacenado que muestre el listado de los pases y su
total de pasajeros.
begin
end
go
as
select pai.nombre,count(*) as [Total]
from pasajero pas join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
go
--Ejecutamos el procedimiento almacenado
exec pasajerosxpais
Ejemplo 2:
Implementar un procedimiento almacenado que permita mostrar los pagos de un
determinado pasajero, considerar para este caso como parmetro de bsqueda el
nmero de documento del pasajero.
begin
end
go
@num_documento varchar(12)
as
select fecha,monto,tipo_comprobante,num_comprobante
from pago where idpasajero=
(select idpasajero from pasajero
where num_documento=@num_documento)
go
--Ejecutamos el procedimiento almacenado y le enviamos el
parmetro de entrada
exec pagosxpasajero '47715777'
Ejemplo 3:
Implementar un procedimiento almacenado que permita registrar un Nuevo pas, para
este caso definir como parmetro de entrada todos los campos referentes a la tabla
pas.
Tabla Pas
begin
end
go
--Implementamos nuestro procedimiento almacenado
Ejemplo 4:
Implementar un procedimiento almacenado que retorne el total de pagos recibidos
en una determinada fecha.
Tabla Pago
********************************************************************************
********************************************************************************
use data
Select @idL= (Select idLibro From Libros Where Titulo='Tcnicas del Tai
Chi')
Select @idA= (Select idAutor From Autores Where Nombre='Luis Rubio')
Insert AutoresLibros Values(@idL, @idA)
insert tmp_consulta_libros
SELECT l.Titulo As [Libros de Ficcin],
l.PrecioCompra As Precio,a .Nombre As Autor,
t.DescripcionTema
FROM Autores a INNER JOIN AutoresLibros al ON
a.idAutor = al.idAutor INNER JOIN
Libros l ON al.idLibro = l.idLibro
INNER JOIN Temas t
ON l.idTema = t.idTema
where PrecioCompra>450
--UPDATE
select idlibro,PrecioCompra,Editorial into act_libros from libros
where idlibro in (2,5)
select 5/100.0
---DELETE
--En SQL Server no acepta delete con from..inner
delete from libros li inner join act_libros ac
on li.idlibro=ac.idlibro