Este documento contiene 25 ejercicios de SQL sobre tablas bancarias. Los ejercicios cubren consultas básicas, filtros, ordenamiento, subconsultas, funciones y agregados. El objetivo es que los estudiantes practiquen y demuestren su dominio de SQL mediante la resolución paso a paso de cada ejercicio propuesto.
1. UNIVERSIDAD VERACRUZANA
FACULTAD DE ADMINISTRACIÓN
MAESTRO: DR. CARLOS ARTURO
TORRES GASTELU
EJERCICIOS SQL
ALUMNOS:
MENGELLE CASTRO ALBERTO
VARELA ROMERO STEPHANIE
2. 1.-Recupere el ID de empleado, el nombre y el apellido de todos los empleados
del banco. Ordene por apellido y nombre.
INPUT:
Selectid_empleado, apellido
From banco*
ORDER BY apellido, Nombre
2.-Recupere el ID de cuenta, el ID de cliente y el saldo disponible de todas las
cuentas cuyo estado sea "ACTIVE" (ACTIVO) Y cuyo saldo disponible sea
superior a 2.500 euros.
3.-Escriba una consulta sobre la tabla account que devuelva los ID de los
empleados que abrieron las cuentas (utilice la columna account.open_emp_id).
Incluya una única fila por cada empleado.
INPUT
Selectopen_emp_id
From account
ORDER BY open_emp_id
4.-Rellene los campos en blanco (que figuran indicados por <#> de esta
consulta de conjunto de datos múltiples, para conseguir los resultados que se
muestran a continuación:
Para los dos primeros ejercicios se utilizarán los siguientes datos sobre
transacciones:
5.-¿Cuál de los ID de transacción devolverían las siguientes condiciones de
filtrado?
Txn_date< ‘2005-02-26’and (txn_type_cd='DBT' OR amount > 100)
3. El id 2 y el id 7
6.-¿Cuál de los ID de transacción devolverían las siguientes condiciones de
filtrado?
account_id IN (101,103) AND NüT (txn_type_cd = 'DBT' OR amount > 100)
Respuesta:
7.-Construya una consulta que recupere todas las cuentas abiertas en 2002.
8.-Construya una consulta que encuentre a todos los clientes no institucionales,
cuyo apellido contenga una "a" en la segunda posición y una "e" en cualquier
sitio detrás de la "a".
INPUT
SELECT fname
FROM individual
WHERE fname LIKE ‘_a%e%’
9.-Rellene los campos en blanco (indicados mediante <#>) de la siguiente
consulta para obtener los siguientes resultados:
mysql> SELECT e.emp_id, e.fname, e.1name, b.name
-> FROM emp10yee e INNER JOIN <1> b
-> ON e.assigned_branch_id = b.<2>;
4. 10.-Construya una consulta que devuelva el ID de cuenta para cada cliente no
institucional (customer. cust_type_cd ' 1 ') junto con el ID del cliente (customer-
fed_id) y el nombre del producto en el que esté basada la cuenta
(product_name).
11.-Construya una consulta que localice a todos los empleados cuyo supervisor
esté asignado a un departamento diferente. Recupere los ID de empleados, el
nombre y el primer apellido.
12.-Si tenemos el conjunto A = {LM N O P} Yel conjunto B = {PQR S T}, qué
conjuntos se forman mediante las siguientes operaciones:
• A union B =
• A union all B=
• A intersect B=
• A except B=
13.-Escriba una consulta compuesta que encuentre el nombre y los apellidos
de todos los clientes, junto con el nombre y los apellidos de todos los
empleados.
SELECT individual.fnameindividual.lnameemployee.fnameemployee.lname
FROM employee INNER JOIN idividual
WHERE employee.assigned_branch_id =account.open_branch_id IN
(SELECT account.cust_id
FROM account
WHERE account.cust_id = customer.cust_id IN ( SELECTfnamelname
FROM individual
WHERE customer.cust_id = individual.cust_id));
5. 14.-Clasifique u ordene los resultados del ejercicio 6.2 por la columna Iname.
15Escriba una consulta que devuelva los caracteres desde la posición 17 hasta
la 25 de la cadena siguiente: "Por favor, encuentre la subcadena de esta
cadena" ("Pleasefindthesubstring in thisstring").
Select --------
From---------
Where -------- LIKE ‘%str%’
bstring
16.-Escriba una consulta que devuelva el valor absoluto y el signo (-1, O ó 1)
del número -25,76823. También, devuelva el número redondeado a la
centésima más próxima.
17.-Escriba una consulta que devuelva sólo el mes de la fecha actual.
Es muy probable que sus resultados sean diferentes, salvo que coincida que
esté en el mes de mayo cuando realice este ejercicio.
18.-Construya una consulta que cuente el número de filas en la tabla de
cuentas.
19.-Modifique su consulta del ejercicio 8.1 para que calcule el número de
cuentas que tiene cada cliente. Muestre el ID del cliente y el número de
cuentas por cada uno.
20.-Modifique su consulta del ejercicio 8.2 para que sólo incluya aquellos
clientes que al menos tengan dos cuentas.
6. 21.-Encuentre el saldo disponible total por producto y por sucursal donde haya
más de una cuenta por producto y sucursal. Ordene los resultados por saldo
total (de mayor a menor).
22.-Construya una consulta sobre la tabla account que utiliza una condición de
filtrado con una subconsulta no correlacionada sobre la tabla product, para recuperar
todas los préstamos (product.product_type_cd= 'LOAN'). Recuperar el ID de
cuenta, el código de producto, el ID de cliente y el saldo disponible.
23.-Modifique la consulta del ejercicio 9.1 utilizando una subconsulta
correlacionada sobre la tabla product para obtener los mismos resultados.
24.-Relacione la siguiente consulta con la tabla employee, para mostrar el nivel
de experiencia de cada empleado:
SELECT 'trainee' name, '2004-01-01' start_dt, '2005-12-31' end_dt
UNIONALL
SELECT 'worker' name, '2002-01-01' start_dt, '2003-12-31' end_dt
UNIONALL
SELECT 'mentor' name, '2000-01-01' start_dt, '2001-12-31' end_dt
Póngale a la subconsulta el alias "levels"e incluya el ID de empleado, el
nombre,
el apellido y el nivel de experiencia (Ievels.name).
25.-Construya una consulta sobre la tabla employee que recupere el ID de
empleado, el nombre y el apellido, además del nombre del departamento y la
sucursal a la que está asignado. No relacione (una) ninguna tabla.