Está en la página 1de 38

BOOTCAMP DATA ANALYTICS

SQL
SESIÓN III

DOCENTE: ARNALDO ALVARADO


Reglas
Se requiere puntualidad para un mejor desarrollo del curso.

Para una mayor concentración mantener silenciado el micrófono durante la


sesión.

Las preguntas se realizarán a través del chat y en caso de que lo requieran


podrán activar el micrófono.

Realizar las actividades y/o tareas encomendadas en los plazos determinados.

Identificarse en la sala Zoom con el primer nombre y primer apellido.


Agenda

▪ ¿Qué es Microsoft SQLServer?


▪ ¿Qué esTransact SQL?
▪ Categorías de las sentenciasSQL.
▪ DDLy DMLLenguaje.
▪ Consultas de manipulación dedatos.
▪ Consultas condicionales.
▪ Operadores lógicos.
▪ Funciones de agregación.
▪ Funciones de tipo fecha, texto, matemáticas, conversión.
▪ Ejercicios prácticos.
Lenguaje Transact SQL

DDL (Lenguaje de Definición de datos)


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.

DML (Lenguaje de Manipulación de datos)


Se utiliza para manipular información de las BD, para ello utilizaremos instrucciones como
INSERT, SELECT, 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.
Comandos de lenguaje definición de datos(DML)

Comando Descripción
INSERT Utilizado para insertar o cargar datos en las tablas de las base de datos
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
¿Cómo insertar datos a una tabla?
Otras
Sintaxis: Opciones:
INSERT INTO table_name (column1, column2, column3,...) INSERT INTO table_name
VALUES (value1, value2, value3, ...); VALUES (value1, value2, value3, ...);

Observe:
INSERT INTO table_name
• El carácter que separa a las columnas y los valores es la coma , SELECT column1, column2, ...
• Los campos de tipo texto inician y terminan con el apostrofe ' FROM table_name
• Los valores de tipo numérico se escriben directamente. WHERE condition;

TABLA: TB_CLIENTES
char(4) varchar(25) char(1) numeric(2,0)
CODIGO NOMBRE SEXO EDAD EMAIL
C001 JOSE M 35 jose@gmail.com
C002 MARIA F 25

INSERT INTO [BD_PRUEBA].[dbo].[TB_CLIENTES] (código, nombre, sexo, edad email)


VALUES ('C001', 'JOSE','M',35,'jose@gmail.com')

INSERT INTO [BD_PRUEBA].[dbo].[TB_CLIENTES]


VALUES ('C002','MARIA','F',25,'maria@gmail.com')
¿Cómo actualizar un registro de la tabla?
Sintaxis:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

TABLA: TB_CLIENTES
char(4) varchar(25) char(1) varchar(50)
CODIGO NOMBRE SEXO EMAIL
C001 JOSE M jose@gmail.com CODIGO NOMBRE SEXO EMAIL
C002 MARIA F maria@gmail.com Actualizar datos C001 JOSE M NULL
C003 PEDRO M pedro@gmail.com C002 MARIA F NULL
C004 ANA F ana@gmail.com C003 PEDRO M NULL
C005 JUAN M juan@gmail.com C004 ANA F NULL
C005 JUAN M NULL

UPDATE [dbo].[TB_CLIENTE]
SET EMAIL='jose@gmail.com'
WHERE CODIGO='C001'
¿Cómo eliminamos un registro de la tabla?

Sintaxis:
DELETE FROM table_name
WHERE Condition

TABLA: TB_CLIENTES
char(4) varchar(25) char(1) varchar(50)

C001 JOSE M jose@gmail.com


C002 MARIA F maria@gmail.com Eli minar
C003 PEDRO M pedro@gmail.com
C004 ANA F ana@gmail.com
C005 JUAN M juan@gmail.com

-- ELIMINAR UN REGISTRO DE UNATABLA -- ELIMINAR TODOS REGISTROS DE UNATABLA


DELETE FROM [dbo].[TB_CLIENTE] TRUNCATE TABLE [dbo].[TB_CLIENTE]
WHERE CODIGO='C002'
Base de datos: Banco
TABLA: TB_CLIENTE_PERFIL TABLA: TB_CLIENTE_PRODUCTOS TABLA: TB_CLIENTE_PRESTAMO
CAMPO TIPO DESCRIPCION CAMPO TIPO DESCRIPCION CAMPO TIPO DESCRIPCION
CODIGO Varchar Codigo del Cliente CODIGO varchar Codigo Cliente
CONTRATO Int Codigo Contrato
COD_AGENCIA Varchar Codigo Agencia CTA_AHORRO numeric Flg Cuenta Ahorro
CODIGO Varchar Codigo Cliente
COD_SEGMENTO varchar Codigo segmento cliente SALDO_AHORRO numeric Saldo CtaAhorro
DESEMBOLSO Numeric Monto Inicial desembolso
FH_NACIMIENTO varchar Fecha Nacimiento CTA_PLAZO numeric Flg cta Plazo
SALDO_REAL Numeric Saldo Actual Deuda
ECIVIL varchar EstadoCivil SALDO_PLAZO numeric Saldo CtaPlazo
MONTO_CUOTA Numeric Monto de Cuota
SEXO varchar Sexo CTA_FONDO numeric Flg Cta FondoMutuo
NUMERO_CUOTAS Numeric Total Numero decuotas
FH_ALTA varchar Fecha altaCliente SALDO_FONDO numeric Saldo Fondo Mutuo
CUOTAS_PAGADAS Numeric Cuotaspagadas
COD_UBIGEO varchar Ubigeo de residencia CTA_CTS numeric Flg CtaCTS
TIENE_TELEFONO char Tenencia Telefono SALDO_CTS numeric Saldo CtaCTS CUOTAS_PENDIENTES Numeric CuotasPendientes
TIENE_CORREO char Tenencia Correo CTA_PRESTAMO numeric Flg PrestamoConsumo TASA Numeric Tasa delprestamo
USO_AGENCIA char Uso de Agencia SALDO_PRESTAMO numeric Saldo Prestamoconsumo FECHA_ALTA Varchar Fecha de Altacontrato
FECHA_VENCIMIENTO Varchar Fecha Vencimiento
USO_CAJERO char Uso de Cajero CTA_HIPOTECARIO numeric Flg Prestamohipotecario
COD_PRODUCTO varchar Codigo Producto
USO_INTERNET char Uso Internet SALDO_HIPOTECARIO numeric Saldo Prestamohipotecario
CLASIFICADO_SBS char Flg ClasificacionSBS CTA_TARJETA numeric Flg TarjetaCredito
INGRESO numeric Ingreso Calculado SALDO_TARJETA numeric Saldo TarjetaCreito

TABLA: TB_CLIENTE_RENTABILIDAD TABLA: TB_TIPO_PRESTAMO


TABLA: UBIGEO CAMPO TIPO DESCRIPCION CAMPO TIPO DESCRIPCION
CAMPO TIPO DESCRIPCION CODIGO varchar Codigo Cliente Codigo producto
SALDO_ACTIVO numeric Saldo Ctas Activos COD_PRODUCTO nvarchar prestamo
COD_UBIGEO nvarchar Codigo Ubigeo
SALDO_PASIVO numeric Saldo Ctas Pasivos PRODUCTO nvarchar Detalle prestamo
DISTRITO nvarchar Distrito
PROVINCIA nvarchar Provincia RENTABILIDAD numeric Rentabilidad Mes
DEPARTAMENTO nvarchar Departamento TABLA: TB_AGENCIA
COD_POSTAL nvarchar Codigo Postal TABLA: TB_SEGMENTO CAMPO TIPO DESCRIPCION
AREA varchar Ambito COD_AGENCIA nvarchar Codigo agencia
CAMPO TIPO DESCRIPCION
ZONA nvarchar Zona decobertura
TABLA: TB_ESTADO_CIVIL COD_SEGMENTO int Codigo Segmento
AGENCIA nvarchar Nombre de agencia
CAMPO TIPO DESCRIPCION DESC_SEGMENTO varchar Descripcion Segmento
ECIVIL varchar Codigo estado civil GRUPO numeric Grupo Segmento
ESTADO_CIVIL varchar Estadocivil
Base de datos: Banco - Carga

2) Seleccionar Device y los 3 puntos


1) Clic derecho en la
carpeta Databases y
seleccionamos
“Restore Database”
Base de datos: Banco - Carga

4) Una vez
seleccionado damos
clic en “Ok”

3) Clic en “ADD” y
seleccionamos nuestro
archivo
Base de datos: Banco - Carga

5) Vemos que todos los campos


se completan de forma
automática y damos clic en “Ok”
Clausulas

Son condiciones de modificación utilizadas para definir los datos que se desea seleccionar o manipular

Clausula Descripción
Utilizado para consultar registros de la base de datos que satisfacen un criterio
SELECT
determinado.

FROM Utilizado para especificar la tabla de la cual se va seleccionar los registros

Utilizado especificar las condiciones que deben de reunir los registros que se van
WHERE
a seleccionar
GROUP BY Utilizado para separar los registros seleccionados en grupos específicos
HAVING Utilizado para expresar la condición que debe de satisfacer cada grupo
Utilizado para ordenar los registros seleccionados de acuerdo con un orden
ORDER BY
especifico.
Orden de ejecución de una sintaxis
Reporte de agencias cuyo suma de saldo pasivo total de sus clientes superen los S/. 100,000 soles,
no considerar los clientes del segmento corporativo; el reporte tiene que ser por código agencia
mostrando el numero de clientes y el monto total delpasivo.

Clausula SELECT SELECTA.COD_AGENCIA, COUNT(A.CODIGO),


SUM(B.SALDO_PASIVO)

Clausula FROM FROM TB_CLIENTE_PERFILA


INNER JOIN TB_CLIENTE_RENTABILIDAD B ONA.CODIGO=B.CODIGO
Clausula WHERE
WHERE COD_SEGMENTO NOT IN('288011','288022’)

Clausula GROUP BY
GROUP BYCOD_AGENCIA

Clausula HAVING
HAVING SUM(B.SALDO_PASIVO)>100000

Clausula ORDER BY
ORDER BYA.COD_AGENCIAASC
Ejemplos de sintaxis

1. Listar todos los campos de la tabla cliente perfil


2. Mostrar solo los campos código, sexo y fecha de nacimiento
3. Mostrar solo los clientes del sexo masculino.
4. Cuantos clientes tienen teléfono.
5. Listar a los 10 clientes con mayores ingresos
6. Listar al 20% de clientes con mayor rentabilidad
Operadores de comparación
Los operadores de comparación comprueban si dos expresiones son iguales. Se pueden utilizar en todas las
expresiones excepto
en las de los tipos de datos text, ntext o image. En la siguiente tabla se presentan los operadores de comparación
Transact-SQL.

Operador Uso
< Mayor que
> Menor que
<> Distinto de / No es igual
<= Menor igual que
>= Mayor igual que
= Igual que
!= 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)
Ejemplos Operadores de comparación

1. Clientes con saldo pasivo menor a 10,000 soles.

2. Clientes con rentabilidad mayor igual a 250 soles mes.

3. Clientes con ingreso igual 5000 soles.

4. Clientes con saldos activos menores a 3500 soles

5. Clientes con saldo hipotecario no menor de 250,000 soles

6. Clientes con saldo en cuenta CTS no mayor de 15,000 soles


Ejemplos 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 uso
BETWEEN Utilizado para especificar un intervalo de valores
LIKE Utilizado en la comparación de un modelo
IN Utilizado para especificar registros en una base de datos.
ALL Verdadero si todo el conjunto de comparación es verdadero
AND Es el “y “ lógico. Evalúa dos condiciones y devuelve un valor de verdad solo si ambas son ciertas.
ANY Verdadero si cualquiera de un conjunto de comparación es verdadero.
EXISTS Verdadero si una subconsulta contiene filas
OR Es el “o “ lógico, devuelve un valor de verdad solo si alguna de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión
SOME Verdadero si alguna de las comparaciones sonverdaderas.
Ejemplos Operadores Lógicos

1. Clientes con saldos activos entre 1500 y 3500 soles

2. Clientes que tengan prestamos hipotecarios.

3. Clientes que solo sean del segmento premium

4. Cuantos clientes tienen teléfono y email.

5. Clientes sin ingreso especificado o valor 0.

6. Clientes que hayan usado banca por internet o cajero.

7. Listado de todos los prestamos no considerar los prestamos vehiculares


Ejemplos Operadores Cadena
Los SQL Server proporciona los operadores de concatenación de cadenas pueden combinar dos o más cadenas o
columnas de caracteres o binarias, o una combinación de cadenas y nombres de columna en una expresión. Los
operadores de cadena de caracteres comodín pueden coincidir con uno o más caracteres en una operación de
comparación de cadenas.

Operador uso
+ Concatenación de cadenas.
% Comodín para extraer cualquier carácter.
[^ ] Comodín para coincidir caracteres
[] Verdadero si todo el conjunto de comparación es verdadero
_ Comodín para coincidir el numero de caracteres
Ejemplos Operadores Cadena

1. Especificar los clientes del departamento de Lima o callao

2. Especificar los distritos de Lima que inician con la letra ”C” y “S”

3. El listado de distritos que inician con la letra “I o A” pero que contengan solo 3 caracteres

4. El listado de distritos que no inician con la letra “Ao C” .

5. Identificar todos los prestamos que no tienen fecha de vencimiento registrado.


Ejemplos funciones de agregado

Operador Uso
COUNT Utilizado para devolver el numero de registros de la selección.
Utilizado para devolver la suma de todos los valores de un campo
SUM
determinado.
AVG Utilizado para calcular el promedio de los valores de un campo determinado
MIN Utilizado para devolver el valor mas bajo de un campo determinado.
MAX Utilizado para devolver el valor mas alto de un campo determinado.
Ejemplos funciones de agregado

1. Determinar el numero de clientes que tienen un préstamo

2. Determinar la suma total del saldo pasivo de todos los clientes

3. Determinar el promedio de saldo activo de todos los clientes

4. Determinar el desembolso máximo de préstamo

5. Determinar el desembolso mínimo de préstamo

6. Determinar el desembolso promedio de préstamo


7. Determinar el numero de clientes por agencia detallando el total de la masa
salarial y el promedio de ingreso.
Funciones de fecha
Función Uso Sintaxis
Devuelve un valor datetime nuevo que se
DATEADD (parteFecha,
DATEADD basa en la suma de un intervalo de fecha a la
numero, fecha)
fecha especificada.
Devuelve una parte de fecha que hayan DATEDIFF (parteFecha,
DATEDIFF Parte de fecha Abreviaturas
trascurrido entre dos fechas determinadas. fechaIncial, fechaFinal)
Year yy, yyyy
Devuelve una cadena de caracteres que DATENAME (parteFecha,
DATENAME Quarter qq, q
representa la parte de la fecha especificada Fecha)
Month mm, m
Devuelve un entero que representa la parte DAY (Fecha)
DAY Dayofyear dy, y
del día de la fecha especificada.
Day dd, d
Devuelve un entero que representa el mes de
MONTH MONTH(Fecha) Week wk, ww
una fecha especificada
Hour hh
Devuelve un entero que representa la parte
YEAR YEAR(Fecha) Minute mi, n
de año de la fecha especificada
Second ss, s
GETDATE Devuelve la fecha actual del sistema GETDATE()
Millisecond ms
Ejemplo funciones fecha

1. Mostrar los clientes mayores de 35 años

2. Generar una variable de envió de kit de bienvenida 15 días posteriores a la fecha de alta del cliente.
3. Generar la tabla que contenga el código cliente, fecha desembolso préstamo, fecha_vencimiento, un
campo Fecha_CampañaRenovacion 20 días antes de la fecha de vencimiento del contrato.

4. Crear una tabla que contenga el código del cliente, fecha de nacimiento, el día, mes, año y el

descriptivo del mes de cumpleaños y guardarlo en una tabla de nombre TB_MesCumpleañosClientes.


Funciones de Texto

Función Uso Sintaxis


LEFT (expresionTexto,
LEFT Devuelve los caracteres especiados por la izquierda
numeroCaracteres)
RIGTH (expresionTexto,
RIGHT Devuelve los caracteres especificados por la derecha.
numeroCarcteres)
Devuelve los caracteres especificados des de una posición inicial y el SUBSTRING (expresionTexto,
SUBSTRING
numero de caracteres a extraer posicionInicial, numeroCaracteres)
Reemplaza por una tercera expresión todas las apariciones de la REPLACE (columna, TextoRemplazar,
REPLACE segunda expresión de cadena proporcionada en la primera expresión NuevoTexto)
de cadena
LTRIM Muestra el texto sin espacios en blanco por la izquierda de untexto. LTRIM(expresionTexto)
RTRIM Muestra el texto sin espacios en blanco por la derecha de un texto. RTRIM(expresionTexto)
LEN Devuelve el numero de caracteres de una campo LEN(expresionTexto)
Ejemplo funciones fecha

1. Hacer la sintaxis de que remplace en la variable sexo el detalle del carácter descriptivo ‘M’ por ‘Masculino’.

2. Hacer la sintaxis para extraer el primer carácter del tipo de préstamo.

3. Extraer del código de clientes los 4 caracteres a partir de la posición 2, en la tabla de clientes perfil

4. Determinar el numero máximo de caracteres del detalle de los distritos en la tabla ubigeo.

5. Extraer los 3 últimos dígitos del tipo de prestamos.


Funciones de Matemáticas

Función Uso Sintaxis


+ Permite hacer el calculo de suma entre 2 columnas Column1 + Column2
- Permite hacer el calculo de resta entre 2 columnas Column1 - Column2
* Permite hacer el calculo de multiplicación entre 2 columnas Column1 * Column2
/ Permite hacer el calculo de división entre 2 columnas Column1 / Column2
POWER Devuelve la expresión numérica elevada a una potencia POWER(Column1, exponente)
SQRT Devuelve la raíz cuadrada de una expresión numérica. SQRT (Column1)
Devuelve una expresión numérica, redondeada a la longitud o precisión
ROUND ROUND (Column1 , longitud )
especificada.
Devuelve un numero entero más pequeño mayor o igual que la expresión
CEILING CEILING (Column1 )
numérica dada.
Devuelve el numero entero más grande menor o igual que la expresión numérica
FLOOR FLOOR (Column1 )
dada.
Ejemplo funciones matemáticas

1. Crear una tabla con los campos código, saldo activo, saldo pasivo y volumen de negocio (saldo
activo + saldo pasivo)
2. Hacer el calculo del nivel aproximado de nivel de endeudamiento del cliente que representa el 30%
de su ingreso.

3. Detallar el código del cliente, ingreso, su ingreso elevado al cuadrado y la raíz cuadrada de su

ingreso.
Funciones de conversión

Convierten una expresión de un tipo de datos en otro. CAST y CONVERT proporcionan funciones similares.

Función Uso Sintaxis


CAST Permite modificar el dato de una variable o columna CAST(variable, nuevotipodato)
Permite modificar el tipo de dato de una variable o CONVERT
CONVERT
columna. (nuevotipodato,variable)
Ejemplo funciones conversión

1. Crear una tabla código y un campo que especifique el siguiente texto: “El ingreso del cliente es:

@ingreso soles” , usando la función CAST.


2. Crear una tabla código y un campo que especifique el siguiente texto: “El ingreso del cliente es:
@ingreso soles” , usando la función CONVERT.
Funciones condicional

CASE
WHEN condition1 THEN r e s u l t 1
WHEN condition2 THEN r e s u l t 2
WHEN conditionN THEN resultN
ELSE result
END;

Función Uso Sintaxis


Permite discriminar una sentencias, según se cumpla el IF WHEN When_expresion,
IF
valor de la expresión lógica. [ELSE else_expression]END
CASE WHEN When_expression,
THEN result_expression [..n]
Permite discriminar entre varias sentencias, según se [ELSE else_expression]
CASE cumpla el valor de la expresión lógica. END
Ejemplo funciones condicionales

1. Crear una vista con los siguientes campos: código, fecha nacimiento, edad y rango de edad
(<18,18-25,26-35, 36-40, 41-50,51-65, +65 años)
2. Crear una tabla código, saldo activo, saldo pasivo, rentabilidad, volumen de negocio (saldo activo +
saldo pasivo), ratio de rentabilidad rentabilidad / (volumen de negocio)

3. Crear un campo que detalle si el cliente tiene ingreso superior a 3500 soles
Ejercicios Prácticos (Tarea para la casa)

1. Listar todos los clientes de la zona Lima este.

2. Listar los clientes del segmento banca red.


3. Determinar el numero de clientes, la masa salarial y el promedio de ingreso de los clientes del distrito de
San Isidro.

4. Determinar los clientes con prestamos personales que tienen menos de 48 cuotas programadas.

5. Determinar el 10% de clientes con prestamos que tienen el menor numero de cuotas pendientes.

6. Listar el numero de clientes con prestamos que hayan pagado mas del 80% de su préstamo.

7. Listar los clientes que tengan mas de 2 cuentas de ahorro con saldos superiores a 500 soles.
REFERENCIAS

Uso Insert
https://docs.microsoft.com/es-es/sql/t-sql/statements/insert-transact-sql?view=sql-server-ver15
Uso Update
https://docs.microsoft.com/es-es/sql/t-sql/queries/update-transact-sql?view=sql-server-ver15
Uso Where
https://docs.microsoft.com/es-es/sql/t-sql/queries/where-transact-sql?view=sql-server-ver15
Funciones de agregación
https://docs.microsoft.com/es-es/sql/t-sql/functions/aggregate-functions-transact-sql?view=sql-server-ver15
Insertar Registros
https://docs.microsoft.com/es-es/sql/t-sql/statements/insert-transact-sql?view=sql-server-ver15
Consultas a la BD
https://docs.microsoft.com/es-es/sql/t-sql/queries/select-transact-sql?view=sql-server-ver15
Funciones de cadena
https://docs.microsoft.com/es-es/sql/t-sql/functions/string-functions-transact-sql?view=sql-server-ver15
Funciones de fecha
https://docs.microsoft.com/es-es/sql/odbc/reference/appendixes/numeric-functions?view=sql-server-ver15
Funciones de conversion
https://docs.microsoft.com/es-es/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15
❑ Arnaldo Eduardo Alvarado Vallejos
arnaldo.alvarado@dataminingperu.com
951611996
https://www.linkedin.com/in/arnaldoalvaradovallejos/

También podría gustarte