miércoles, 1 de febrero de 2017

Fundamentos de Bases de Datos: Ejemplos 2017/02/01

Ejemplos


-- SELECCIONA LA BASE DE DATOS A TRABAJAR
USE CrediSeguro;
GO
/*
     Ejemplos de SELECT
     2017/02/01
*/
SELECT CodCliente, Nombre, Apellido,
     FechaNacimiento
     FROM Cliente;
--SELECT con Cláusula WHERE
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE CodCliente > 1989;
-- SELECT x Apellido = Rivera
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE Apellido = 'Rivera';
-- SELECT con Funciones Built-In
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE YEAR(FechaNacimiento) = 1979;

-- SELECT con WHERE y AND
-- Nacidos en Febrero y día 1
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE MONTH(FechaNacimiento) = 2
     AND DAY(FechaNacimiento) = 1;

-- SELECT con RANGO
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE MONTH(FechaNacimiento) = 2
     AND DAY(FechaNacimiento) BETWEEN 10 AND 14;

-- SELECT con RANGO y ORDER BY
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE MONTH(FechaNacimiento) = 2
     AND DAY(FechaNacimiento) BETWEEN 10 AND 14
     ORDER BY DAY(FechaNacimiento);

-- TODOS LOS CLIENTES ORDENADOS POR
-- EL MES Y EL DIA DE SU FechaNacimiento
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     ORDER BY MONTH(FechaNacimiento), DAY(FechaNacimiento),
     Apellido, Nombre;

-- TODOS LOS CLIENTES ordenados por
-- Mes y día de su FechaNacimiento, Apellidos y Nombres DESC
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     ORDER BY MONTH(FechaNacimiento), DAY(FechaNacimiento),
     Apellido DESC, Nombre DESC;

-- SELECT WHERE LIKE
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE YEAR(FechaNacimiento) BETWEEN 1970 AND 1985
     AND Apellido LIKE 'M%'
     ORDER BY Apellido, Nombre;

-- SELECT WHERE NOT
SELECT Apellido, Nombre,
     FechaNacimiento, CodCliente
     FROM Cliente
     WHERE YEAR(FechaNacimiento) BETWEEN 1980 AND 1985
     AND NOT Apellido LIKE 'Mi%'
     ORDER BY Apellido, Nombre;

-- INNER JOIN Cliente y Tarjeta
SELECT Apellido, Nombre,
     Cliente.CodCliente, FechaNacimiento,
     Tarjeta.NumeroTarjeta, FechaVencimiento,
     SaldoActual
     FROM Cliente
     INNER JOIN Tarjeta
         ON Cliente.CodCliente =Tarjeta.CodCliente
     WHERE FechaVencimiento > GETDATE()
     AND SaldoActual > 20000
     ORDER BY FechaVencimiento, Apellido, Nombre;

-- INNER JOIN Cliente y Tarjeta
SELECT   Apellido, Nombre,
     FechaNacimiento, Cliente.CodCliente,
     NumeroTarjeta, FechaVencimiento, SaldoActual
     FROM Cliente
     INNER JOIN Tarjeta
         ON Cliente.CodCliente = Tarjeta.CodCliente
     WHERE FechaVencimiento > GETDATE()
     ORDER BY FechaVencimiento;

-- INNER JOIN Tarjeta y Movimiento
SELECT NumeroTarjeta, FechaVencimiento,
     SaldoActual,
     M.Fecha, Abono, Cargo
     FROM Tarjeta T
     INNER JOIN Movimiento M
         ON T.CodTarjeta = M.CodTarjeta
     WHERE FechaVencimiento > GETDATE()
     AND Cargo > 3000
     ORDER BY NumeroTarjeta;





-- INNER JOIN Tarjeta y Movimiento
SELECT   NumeroTarjeta, FechaVencimiento,
     SaldoActual,
     Fecha, Cargo, Abono
     FROM Tarjeta
     INNER JOIN Movimiento
         ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
     WHERE FechaVencimiento > GETDATE();

-- INNER JOIN Cliente, Tarjeta, Movimiento
SELECT Apellido, Nombre, FechaNacimiento,
     Cliente.CodCliente,
     Tarjeta.NumeroTarjeta, FechaVencimiento,
     SaldoActual,
     Fecha, Abono, Cargo
     FROM Cliente
     INNER JOIN Tarjeta
         ON Cliente.CodCliente = Tarjeta.CodCliente
     INNER JOIN Movimiento
         ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
     WHERE FechaVencimiento > GETDATE()
     AND Cargo > 4500
     AND YEAR(Fecha) = 2014
     ORDER BY Apellido, Nombre, NumeroTarjeta,
         Fecha;



-- INNER JOIN Cliente, Tarjeta, Movimiento
SELECT Apellido, Nombre, Cliente.CodCliente,
     NumeroTarjeta, FechaVencimiento, SaldoActual,
     Movimiento.Fecha, Movimiento.Abono, Cargo
     FROM Cliente
     INNER JOIN Tarjeta
         ON Cliente.CodCliente = Tarjeta.CodCliente
     INNER JOIN Movimiento
         ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
     WHERE FechaVencimiento > GETDATE()
     AND Cargo > 1000
     AND Cliente.CodCliente BETWEEN 100 AND 125
     ORDER BY Apellido, Nombre, NumeroTarjeta, Fecha;



-- EJEMPLO Query Designer
-- Menú de Query, Design Query in Editor (Ctrl+Shift+Q)
SELECT        Cliente.Apellido, Cliente.Nombre,
     Cliente.FechaNacimiento, Cliente.CodCliente,
     Tarjeta.NumeroTarjeta, Tarjeta.FechaVencimiento,
     Tarjeta.SaldoActual, Movimiento.Fecha, Movimiento.Abono,
                         Movimiento.Cargo
FROM            Cliente 
INNER JOIN Tarjeta
 ON Cliente.CodCliente = Tarjeta.CodCliente
INNER JOIN Movimiento
 ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
WHERE        (Tarjeta.FechaVencimiento > GETDATE())
     AND (Movimiento.Cargo > 4500)
ORDER BY Cliente.Apellido, Cliente.Nombre, Tarjeta.NumeroTarjeta, Movimiento.Fecha



-- EJEMPLO Query Designer
-- Menú de Query, Design Query in Editor (Ctrl+Shift+Q)
SELECT Cliente.Apellido, Cliente.Nombre, 
Cliente.CodCliente,
Tarjeta.NumeroTarjeta, Tarjeta.FechaVencimiento,
Tarjeta.LimiteCredito, Tarjeta.SaldoActual,
Movimiento.Fecha, Movimiento.Abono,
Movimiento.Cargo
FROM Cliente
INNER JOIN Tarjeta 
ON Cliente.CodCliente = Tarjeta.CodCliente
INNER JOIN Movimiento 
ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta

WHERE        (Tarjeta.FechaVencimiento > GETDATE())
ORDER BY Cliente.Apellido, Cliente.Nombre, Tarjeta.NumeroTarjeta, Movimiento.Fecha




-- EL USO DE COUNT
SELECT COUNT(*) AS NoClientes
     FROM Cliente;

SELECT COUNT(*) AS Tarjetas23
     FROM Tarjeta
     WHERE CodCliente = 23;

SELECT COUNT(*) AS Tarjetas1898
     FROM Tarjeta
     WHERE CodCliente = 1898;

SELECT MAX(Cargo) AS Maximo
     FROM Movimiento;
SELECT MIN(Cargo) AS Minimo2014
     FROM Movimiento
     WHERE YEAR(Fecha) = 2014;
SELECT MIN(Cargo) AS Minimo2015
     FROM Movimiento
     WHERE YEAR(Fecha) = 2015;

-- Listado de Operaciones
SELECT NumeroTarjeta, Fecha, Abono, Cargo
     FROM Tarjeta
     INNER JOIN Movimiento ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
     WHERE YEAR(Fecha) = 2014
     ORDER BY NumeroTarjeta, Fecha;

SELECT NumeroTarjeta, COUNT(*) AS NoMovimientos
     , SUM(Cargo) AS SumaCargo, AVG(Cargo) AS PromedioCargo
     FROM Tarjeta
     INNER JOIN Movimiento
         ON Tarjeta.CodTarjeta = Movimiento.CodTarjeta
     WHERE YEAR(Fecha) = 2014
     GROUP BY NumeroTarjeta;


-- Información Resumen por Mes de Movimientos
SELECT YEAR(Fecha) AS Anio, MONTH(Fecha) AS Mes,
     COUNT(*) AS Conteo, AVG(Cargo) AS Promedio
     , MAX(Cargo) AS Maximo, MIN(Cargo) AS Minimo
     , SUM(Cargo) AS SumaCargo, SUM(Abono) AS SumaAbono
     FROM Movimiento
     GROUP BY YEAR(Fecha), MONTH(Fecha)

     ORDER BY YEAR(Fecha), MONTH(Fecha);




-- CONTEO DE FILAS
SELECT COUNT(*) AS TotalMovs
     FROM Movimiento;

-- SUMATORIA de las Columnas
SELECT SUM(Cargo) AS TotalCargo,
     SUM(Abono) AS TotalAbono
     FROM Movimiento;

-- PROMEDIO x Tarjeta
SELECT CodTarjeta, AVG(Cargo) AS Promedio
     FROM Movimiento
     GROUP BY CodTarjeta;

SELECT CodTarjeta, Cargo, Fecha
     FROM Movimiento
     ORDER BY CodTarjeta;

-- Datos Generales por Tarjeta
-- Año 2015
-- Tarjetas con Más de 3 Movimientos o Más
SELECT CodTarjeta, COUNT(Cargo) AS Cantidad,
     SUM(Cargo) AS Total, AVG(Cargo) AS Promedio,
     MIN(Cargo) AS Minimo, MAX(Cargo) AS Maximo
     FROM Movimiento
     WHERE YEAR(Fecha) = 2015
     GROUP BY CodTarjeta
     HAVING COUNT(Cargo) > 2

     ORDER BY CodTarjeta;




USE CrediSeguro;
GO
-- CONTEO DE FILAS
SELECT COUNT(*) AS TotalMovs
     FROM Movimiento;

-- SUMATORIA de las Columnas
SELECT SUM(Cargo) AS TotalCargo,
     SUM(Abono) AS TotalAbono
     FROM Movimiento;

-- PROMEDIO x Tarjeta
SELECT CodTarjeta, AVG(Cargo) AS Promedio
     FROM Movimiento
     GROUP BY CodTarjeta;

SELECT CodTarjeta, Cargo, Fecha
     FROM Movimiento
     ORDER BY CodTarjeta;

-- Datos Generales por Tarjeta
-- Año 2015
-- Tarjetas con Más de 3 Movimientos o Más
SELECT CodTarjeta, COUNT(Cargo) AS Cantidad,
     SUM(Cargo) AS Total, AVG(Cargo) AS Promedio,
     MIN(Cargo) AS Minimo, MAX(Cargo) AS Maximo
     FROM Movimiento
     WHERE YEAR(Fecha) = 2015
     GROUP BY CodTarjeta
     HAVING COUNT(Cargo) > 2
     ORDER BY CodTarjeta;


SELECT CodCliente, Apellido, Nombre,
     FechaNacimiento
     FROM Cliente
     WHERE Apellido LIKE 'M%r%n'
     --AND Nombre LIKE 'A%r'

     ORDER BY Apellido, Nombre;


No hay comentarios.:

Publicar un comentario