Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Datos
Introduccin al SQL
Dionicio Velasquez T.
981679833 / RPM: # 981679833
dionicio.velasquez@dataminingperu.com
Agenda Dia 1
Ejercicios Prcticos
Consultas
www.dataminingperu.com
Introduccin
Base de Datos
Se define una base de datos como una
serie de datos organizados en tablas
relacionados entre s, los cuales son
recolectados y explotados por los sistemas
de informacin de una empresa o negocio
en particular.
Tablas
En una base de datos la
informacin se organiza en
tablas, que son filas y
columnas similares a las de
los libros contables o a las
de las hojas de clculo.
Introduccin
Manejadores de BD
Otros
mas.
Database Engine
Gestin de BD en SQL
Crear una Base de Datos
Uso de Funciones
Ejemplos prcticos.
www.dataminingperu.com
Transact SQL
El lenguaje que nos permitir conversar con el SQL, son las instrucciones Transact
SQL. Esta conversacin se har mediante la interface de usuario.
16
Transact SQL
El lenguaje SQL contiene instrucciones que se ajustan alas dos principales categoras
de programacin: DDL y DML.
DDL: Se utiliza para definir y administrar objetos de la BD, tales como Bases, tablas, y
vistas. Usualmente las mas usadas son CREATE TABLE, ALTER TABLE, DROP TABLE. Se
utilizan para crear tablas, modificar (agregar o borrar columnas, modificar, etc), y
eliminar tablas respectivamente.
CREATE TABLE CLIENTES (COD CHAR(5),NOM VARCHAR(80),PAIS VARCHAR(30))
ALTER TABLE CLIENTES ADD EMAIL VARCHAR(30)
DML: Se utiliza para manipular informacin de las BD, para ello utilizaremos
instrucciones como INSERT, SELECT, UPADTE, CASE, DATE, UPDATE, DELETE y otros.
Estas instrucciones nos permiten seleccionar filas, filtrar, insertar nuevas filas,
modificar las filas existentes y eliminar datos no deseados.
17
COMANDOS SQL
18
CLAUSULAS SQL
Las clausulas son condiciones de modificacin utilizadas para definir los datos que
desea seleccionar o manipular:
19
Operadores SQL
Operadores Lgicos
Operadores de Comparacin
20
Funciones de Agregado SQL
21
Base de Datos: BD_Practicas
TABLA: CLIENTE PERFIL TABLA: CLIENTE PRODUCTOS
CAMPO TIPO DESCRIPCION CAMPO TIPO DESCRIPCION
CODIGO va rcha r Codi go del Cl i ente CODIGO va rcha r Codi go Cl i ente
MES cha r Mes Proces o CTA_AHORRO numeri c Fl g Cuenta Ahorro
AGENCIA va rcha r Codi go Agenci a SALDO_AHORRO numeri c Sa l do Cta Ahorro
SALDO_ACTIVO numeri c Sa l do Medi o Ati vos CTA_CORRIENTE numeri c Fl g Cta Corri ente
SALDO_PASIVO numeri c Sa l do Medi o Pa s i vos SALDO_CORRIENTE numeri c Sa l do Cta Corri ente
RENTABILIDAD numeri c Rentabi l i da d Mes CTA_FONDO numeri c Fl g Cta Fondo Mutuo
FH_NACIMIENTO va rcha r Fecha Na ci mi ento SALDO_FONDO numeri c Sa l do Fondo Mutuo
ECIVIL va rcha r Es tado Ci vi l CTA_PLAZO numeri c Fl g cta Pl a zo
SEXO va rcha r Sexo SALDO_PLAZO numeri c Sa l do Cta Pl a zo
FH_ALTA va rcha r Fecha a l ta Cl i ente CTA_CTS numeri c Fl g Cta CTS
UBIGEO va rcha r Ubi geo de res i denci a SALDO_CTS numeri c Sa l do Cta CTS
TIENE_TELEFONO cha r Tenenci a Tel efono CTA_PRESTAMO numeri c Fl g Pres tamo Cons umo
TIENE_CORREO cha r Tenenci a Correo SALDO_PRESTAMO numeri c Sa l do Pres tamo cons umo
USO_AGENCIA cha r Us o de Agenci a CTA_HIPOTECARIO numeri c Fl g Pres tamo hi poteca ri o
USO_CAJERO cha r Us o de Ca jero SALDO_HIPOTECARIO numeri c Sa l do Pres tamo hi poteca ri o
USO_INTERNET cha r Us o Internet CTA_TARJETA numeri c Fl g Ta rjeta Credi to
CLASIFICADO_SBS cha r Fl g Cl a s i fi ca ci on SBS SALDO_TC numeri c Sa l do Ta rjeta Crei to
INGRESO numeri c Ingres o Ca l cul a do SALDO_ACTIVO numeri c Sa l do Ctas Activos
SEGMENTO va rcha r Segmento Cl i ente SALDO_PASIVO numeri c Sa l do Ctas Pa s i vos
MARGEN_ACUMULADO numeri c Ma rgen Ordi na ri o
CTA_SEGURO numeri c Fl g Tenenci a Seguro
FROM <tablas>: permite especificar la tabla de la cual se desean obtener los datos.
Si se especifica ms de una tabla, stas irn separadas por comas.
HAVING <condicin>: establece una condicin para los atributos obtenidos como
resultado de la aplicacin de funciones escalares.
23
Orden de Ejecucin SQL
Dada una sentencia en SQL de seleccin que incluye todas las posibles clausulas, el
orden de ejecucin es:
Clausula WHERE
SELECT
Clausula GROUP BY AGENCIA, COUNT(CODIGO), SUM(SALDO_PASIVO)
FROM CLIENTE_PERFIL
WHERE segmento NOT IN ('211011,211022')
Clausula HAVING GROUP BY AGENCIA
HAVING SUM(SALDO_PASIVO)>100000
ORDER BY AGENCIA ASC
Clausula ORDER BY
24
FUNCIONES ESCALARES PARA SELECT
SUM : Realiza una suma de toda una columna para todas las filas accedidas
mediante una consulta SQL.
SELECT SUM (INGRESO) FROM CLIENTES_PERFIL
COUNT: Cuenta todas las filas de las tablas accedidas mediante una consulta
SQL.
SELECT COUNT(CODIGO) FROM CLIENTES_PERFIL
AVG : Realiza una media aritmtica de los atributos para todas las filas
accedidas mediante la consulta SQL.
SELECT AVG(INGRESO) FROM CLIENTE_PERFIL
MAX :Obtiene el mximo valor del atributo especificado, de entre todas las
filas seleccionadas mediante la sentencia SQL.
SELECT MAX(INGRESO) FROM CLIENTES_PERFIL
MIN : Obtiene el minimo valor del atributo especificado, de entre todas las filas
seleccionadas mediante la sentencia SQL.
SELECT MIN(INGRESO) FROM CLIENTES_PERFIL
25
Ejercicios prcticos
27
Lenguaje de manipulacin
INSERT: Nos permite aadir datos a una tabla especifica, para este caso
especificaremos los datos de todos los campos de dicha tabla.
28
FUNCIONES SQL- Funciones de Fecha
29
FUNCIONES SQL- Funciones de Fecha
SELECT NOMBRES,APELLIDOS,
DATEDIFF(YEAR,FECHA_NACIMIENTO,GETDA
TE()) AS EDAD
FROM BD_PRACTICAS.DBO.EMPLEADOS
30
FUNCIONES SQL- Funciones de Fecha
Mostrar los meses y el numero de pedidos, identificando los meses con mas pedidos.
31
FUNCIONES SQL- Funciones de Fecha
DAY: Devuelve un entero que representa la parte del da de la fecha
especificada.
Sintaxis: DAY ( fecha )
MONTH : Devuelve un entero que representa el mes de una fecha
especificada.
Sintaxis: MONTH ( fecha )
Mostrar en numeros el, ao, mes, dia de la fecha de pedido de la tabla pedidos.
32
FUNCIONES SQL- Funciones Matemticas
Ejemplos
SELECT POWER(4,2)
SELECT SQRT(81)
SELECT EXP( LOG(20)), LOG( EXP(20))
SELECT NOMBRES,UPPER(NOMBRES),LOWER(NOMBRES),
CARGO, RIGHT(CARGO,7), LEFT(CARGO,7)
FROM EMPLEADOS
35
FUNCIONES SQL- Funciones texto
36
Funciones de Conversin
CAST Y CONVERT
Convierten una expresin de un tipo de datos en otro. CAST y CONVERT proporcionan
funciones similares.
Este ejemplo convierte una columna de tipo int (la columna idPedido) en una columna de tipo char(20)
para poder utilizarla en una clusula LIKE.
Mostrar los pedidos cuyo el mes de la fechaPedido sea igual Agosto y el numero de pedido empieza
en los nmeros 12
SELECT IDPEDIDO,FECHAPEDIDO
FROM PEDIDOS
WHERE CAST(IDPEDIDO AS CHAR(20)) LIKE '12%'
AND MONTH(FECHAPEDIDO) = 8
GO
SELECT CONVERT(VARCHAR(8),GETDATE(),3)
37
SENTENCIAS CONDICIONALES
Las sentencias condicionales son aquellas que permiten discriminar entre diversas
sentencias, segn se cumpla el valor de una expresin lgica. Existen dos tipos de
sentencias condicionales.
.
Simple CASE expression:
SELECT *,
CASE WHEN EDAD < 25 THEN 'HASTA 25 AOS
WHEN EDAD BETWEEN 25 AND 35 THEN DE 25 A 35 AOS
WHEN EDAD BETWEEN 35 AND 45 THEN DE 35 A 45 AOS
WHEN EDAD BETWEEN 45 AND 55 THEN DE 45 A 55 AOS
ELSE 'MAS DE 55 AOS' END AS RANGO_EDAD
FROM dbo.CLIENTE_PERFIL
38
Consultas multi-tablas
39
Consultas multitablas
Unin de tablas
Esta operacin se usa cuando tenemos tablas con la misma
estructura y queremos tener una tabla con las filas de la
primera y de la segunda
Composicin de tablas
Composicin consiste en concatenar columnas de una
tabla con otra. Esto es de mucha ayuda si necesitamos
visualizar informacin que se encuentra en dos tablas.
SELECT *
FROM CLIENTE_PERFIL V
INNER JOIN
CLIENTE_PRODUCTO P
ON V.CODIGO=P.CODIGO
SELECT *
FROM CLIENTE_PERFIL, CLIENTE_PRODUCTO
WHERE
CLIENTE_PERFIL.CODIGO=CLIENTE_PRODUCTO.CODIGO
40
Consultas multi-tablas
INEER JOIN
Utilizado para emparejar tablas segn alguna condicin establecida, el cual mostrara solo
los registros que satisfacen esta condicin.
SELECT *
FROM CLIENTE_PERFIL V INNER JOIN CLIENTE_RESTAMOS P
ON V.CODIGO=P.CODIGO
Tenemos 200M clientes en la tabla Perfiles pero cruzando con la prestamos solo 17M
aproximadamente tienen unos tipo de prstamos.
SUBQUERY
El uso de estos es comn, es utilizar una consulta dentro de otra en muchos casos como
filtro.
42
Ejercicios prcticos 1
1. Hacer una tabla que nos muestre los clientes con solo prstamo
hipotecario, esta tabla tiene que tener el monto de prstamo,
edad, segmento, agencia, saldo Pasivo, saldo Activo, sexo.
2. Dar la distribucin de clientes y monto desembolso x rango de
edad (0-25, 25-35, 35-45, 45-55, 55+ aos)
3. Hacer una tabla que nos muestre a todos los clientes del banco,
por segmento, edad, ingreso y la tenencia de los productos
pasivos ( ahorro, plazo, FM) y activos(TC, prstamo).
4. Se necesita un reporte de clientes rango de ingreso (0-2.5M,
2.5M-3.5M, 3.5M-7M, 7M +) y tenencia de tarjeta, que nos
muestre el numero de clientes y saldo.
43
Ejercicios prcticos 2
Anlisis de campaas
Desarrollos prcticos.
www.dataminingperu.com
Gestin de Campaas
Proceso Feedback
Contacto efectivo
Identificacin mejor
canal.
Mejorar la oferta
comercial
46
Administracin de campaas a travs del ciclo de vida del
cliente con Modelos Predictivos
Modelos Mejor
Cross/Up Sell Modelos Mejor
Cross/Up Sell
Modelos
Cross/Up Sell
Ganancia Valor del cliente
Modelos de
Cross/up sell Modelos
Alarma Fuga
Modelos de De Clientes
Adquisicin Modelos
ms eficiente
de Retencin
Retencin
47
Ejemplo Practico
48
Elaborar tabln de informacin
Dimensiones Medidas
Rango Edad x # Clientes x
Sexo x Saldo Activo x
Estado civil Saldo Pasivo x
Ubigeo (Departamento, provincia y distrito)x Rentabilidad x
Rango ingreso Masa Salarial
Agencia Saldo Productos (AHO, PLZ, FM, CTS,
Transacciones (ventanilla, cajero, internet, PC,PV,PH)
telfono) Vinculacin
Reportado SBS Saldo Medio Cliente
Rango de Rentabilidad Edad Media
Rango Pasivo Rentabilidad Media
Rango Activo Vinculacin Media
Tenencia de productos (AHO, PLZ, FM, CTS, Ect.
PV, PC, PH)
Segmento
Es PH
49
Conexin a Excel
Nombre
servidor
50
Conexin a Excel
51
Desarrollo de reportes Dinamicos
rea variables
rea reporte
Medidas
52
Grficos Dinmicos
53
Grficos de Anlisis mas usados
80
76
Millones
70 100%
70 70
69 69 14%
61
59 90%
60 63 58
56
53 52
49 52 80%
8%
49 48 48 48 47
50 6%
50 45
70%
41 47 40 64%
40 38 37 38 38
42
41 60%
36 31%
30 26 29
33 34
31 32 24 50%
24
20 40%
10 30% 10%
32% 4%
20%
-
Dic-09 Ene-10 Feb-10 Mar-10 Abr-10 May-10 Jun-10 Jul-10 Ago-10 Sep-10 Oct-10 Nov-10 Dic-10
13%
10%
15,000
10,000 12,501
10,573
5,000
6,113 5,624
-
PATIO ALTO PATIO MEDIO PATIO BAJO
300 25%
259 OTROS
250 234 20%
20%
200 20%
200 189 PREMIUM
18% 170 18%
166 15% 38%
16%
150 AVP
12% 10% 11%
100
7% 5%
50 37 31 36 34 30
14
0 0% AVA
Ene-10 Feb-10 Mar-10 Abr-10 May-10 Jun-10 31%
PROVINCIA
29%
LIMA
71%
55
Agenda Clase 5
Conexin SQL - R.
Anlisis Estadstico en R.
www.dataminingperu.com
Conexin SPSS
57
Conexin SPSS
58
ANALISIS RFM
Qu es RFM?
El mejor predictor del futuro es el comportamiento pasado.
Recency tiempo desde ltima compra
Frecuency tiempo entre compras
Monetary Value monto de compras
Requiere el conocimiento del comportamiento histrico de compra de
los clientes.
Funciona en cualquier industria.
www.dataminingperu.com
Proceso construccin de segmentos RFM
R
F
5
Mas
reciente Mas
5
M
compras
5
Mayor
4 Monto
4
4
3
Base 3
Datos 3
Marketing 2 2 2
Mas
antiguo 1 Menos
compras 1 Menor
Monto 1
Primer Segundo Tercer
ordenamiento ordenamiento ordenamiento
por ultimo da por frecuencia por monto de
de compra de compra compra
www.dataminingperu.com
Desarrollo de RFM con SPSS
www.dataminingperu.com
Desarrollo de RFM con SPSS
www.dataminingperu.com
Desarrollo de RFM con SPSS
www.dataminingperu.com
Conexin con R
www.dataminingperu.com
Examen (indispensable para la certificacin)
65
66