5 ejercicios de base de datos sql

5 ejercicios de base de datos sql


Sql Database Query Sql

En el mundo de la informática, las bases de datos desempeñan un papel crucial. Por esta razón, el papel del programador debe tener un amplio conocimiento de las bases de datos y su uso. Para interactuar con una base de datos, el lenguaje universal adoptado es SQL, que desde hace años se ha integrado como un estándar para gestionar las bases de datos.

¿Qué es una base de datos?

Según Oracle, una base de datos es un conjunto de información (o datos) estructurados y almacenados electrónicamente en un sistema informático. Por lo general, la base de datos es controlada por un sistema DBMS (Database Management System). Los datos, el sistema DBMS y las aplicaciones asociadas se refieren como sistema de base de datos, a menudo abreviado como base de datos. Una base de datos puede ser de varios tipos, el más utilizado y conocido es la base de datos relacional.

Para familiarizarse con las bases de datos, es necesario aprender que es sql.

¿Qué es sql?

El significado de SQL corresponde a un acrónimo: Structured Query Language, es un lenguaje de programación utilizado por casi todas las bases de datos relacionales para ejecutar consultas, manipular y definir datos, así como proporcionar control de acceso. Fue desarrollado por primera vez en la década de 1970 y aún es fundamental para la gestión de las bases de datos.

Una vez que se han establecido estos conceptos, para aprender el lenguaje SQL y la lógica detrás de las bases de datos relacionales, es importante practicar. Forma parte del proceso de aprendizaje, al igual que con todos los lenguajes de programación.

Para ello, veremos una serie de ejercicios sobre el lenguaje SQL, de dificultad gradual, para cubrir todas las peculiaridades del lenguaje.

  1. Escribe una instrucción SQL para crear un producto cartesiano entre vendedor y cliente, es decir, cada vendedor aparecerá para todos los clientes y viceversa para ese vendedor que pertenece a esa ciudad. 

Nombre tabla: vendedor

Vendedor_id

Nombre_vendedor

Ciudad

Comisión

5001

Mario Rossi

Napoli

0.15

5002

Franco Neri

Palermo

0.13

5005

Gigi Proietti

Roma

0.11

5006

Michele Chetone

Treviso

0.14

5007

Davide Guidi

Pordenone

0.13

 

Nombre tabla: cliente

Cliente_id

Nombre_cliente

Ciudad

Categoria

Vendedor_id

3002

Giuseppe Verdi

Roma

100

5001

3007

Max Angioni

Roma

200

5001

3005

Nicola di Bari

Bari

200

5002

3008

Antonio Clerici

Napoli

300

5002

3004

Simone Vespa

Venezia

300

5006

3009

Ezio Greggio

Treviso

100

5007

 

  1. A partir de la siguiente tabla, escribe una query SQL para encontrar todos los clientes. Ordena el conjunto de resultados por cliente_id. Devuelve el nombre_cliente, la ciudad y la categoría.

Nombre tabla: cliente

Cliente_id

Nombre

Ciudad

Categoria

Vendedor_id

3002

Giuseppe Verdi

Roma

100

5001

3007

Max Angioni

Roma

200

5001

3005

Nicola di Bari

Bari

200

5002

3008

Antonio Clerici

Napoli

300

5002

3004

Simone Vespa

Venezia

300

5006

3009

Ezio Greggio

Treviso

100

5007

 

  1. Dadas las tablas proporcionadas en el ejercicio 1, escribe una consulta SQL para encontrar todos los clientes y el vendedor que trabaja para ellos. Devuelve el nombre del cliente y el nombre del vendedor.
  2. A partir de la siguiente tabla, escribe una consulta SQL para encontrar todos los correos electrónicos duplicados (sin mayúsculas) de los empleados. Devuelve email_id.

Nombre tabla: empleados

Empleados_id

Nombre_empleados

e-mail_id

100

Giuseppe Verdi

giu.verdi@abc.com

101

Paolo Limiti

limiti@abc.com

102

Davide Guidi

guidi@abc.com

103

Antonio Clerici

clerici@abc.com

104

Simone Vespa

vespa@abc.com

 

  1. A partir de las siguientes tablas, escribe una consulta SQL para encontrar a aquellos estudiantes que hayan obtenido el 100% de las calificaciones en todas las materias durante todo el año. Devuelve el ID de la materia, el nombre de la materia y los estudiantes durante todo el año.

Nombre tabla: test_examen

Examen_id

Materia_id

Año_examen

Num_estudiantes

71

201

2017

5146

71

201

2018

3545

71

202

2018

5945

71

202

2019

2500

71

203

2017

2500

72

201

2018

3500

72

202

2017

3651

73

201

2018

2647

Muchas operaciones se pueden realizar utilizando el lenguaje SQL, es posible cruzar datos de diferentes formas, partiendo de simples tablas, realizando operaciones de cálculo sobre los datos contenidos, cuando sea posible, o creando nuevas vistas en base a la información que tenemos disponible. Es un requisito fundamental para la carrera de un programador, especialmente para un desarrollador web. Es uno de los lenguajes donde más importa la práctica, porque solo viendo los resultados de una consulta realmente entiendes cómo modelar datos y cómo los diversos operadores lógicos (y no lógicos) los tratan en SQL. Veamos las soluciones juntos:

  1. La consulta a escribir en este ejercicio es muy básica. Para empezar, te ayuda a entender cómo funcionan las distintas palabras clave del lenguaje SQL (SELECT, FROM, etc…)

SELECT *
FROM vendedor a
CROSS JOIN cliente b
WHERE a.ciudad IS NOT NULL;
  1. Ordenar tablas a menudo ayuda mucho a comprender cómo estructurar la consulta. En este ejercicio puede aprender la funcionalidad del operador de agrupación ORDER BY.

SELECT nombre,ciudad,categoria
FROM cliente
ORDER BY cliente_id;
  1. En el párrafo anterior, hablamos de "datos cruzados". Este ejercicio te muestra cómo hacerlo, escribiendo una consulta muy simple entre dos tablas con alguna información en común.

SELECT cliente.nombre_cliente, nombre_vendedor
FROM cliente,vendedor
WHERE vendedor.vendedor_id = cliente.vendedor_id;
  1. Este ejercicio un poco más articulado reúne todos los conceptos vistos hasta ahora, además nos ayuda a entender cómo crear una nueva vista (tabla) cruzando los datos de las existentes.

CREATE TABLE IF NOT EXISTS empleados (empleados_id int, nombre_empleado varchar(255), email_id varchar(255));
TRUNCATE TABLE empleados;
INSERT INTO empleados (empleados_id, nombre_empleados, email_id) VALUES ('100','Giuseppe Verdi', ' giu.verdi@abc.com ');
INSERT INTO empleados (empleados_id, nombre_empleados, email_id) VALUES ('101','Paolo Limiti', 'limiti@abc.com');
INSERT INTO empleados (empleados_id, nombre_empleados, email_id) VALUES ('102','Davide Guidi', 'guidi@abc.com');
INSERT INTO empleados (empleados_id, nombre_empleados, email_id) VALUES ('103','Antonio Clerici', 'clerici@abc.com');
INSERT INTO empleados (empleados_id, nombre_empleados, email_id) VALUES ('104','Simone Vespa', 'vespa@abc.com');
SELECT * FROM empleados;

SELECT email_id FROM
(
SELECT email_id, COUNT(email_id) AS nuOfAppearence
FROM empleados
GROUP BY email_id
) AS countEmail
WHERE nuOfAppearence> 1;
  1. Para finalizar, otro ejercicio más completo: en este caso tendrás que trabajar mucho los datos individuales, yendo a utilizar más operadores, cálculo, inserción y manejo de tablas.

CREATE TABLE test_examen (examen_id int NOT NULL, materia_id int NOT NULL, año_examen int NOT NULL, num_estudiantes int,
PRIMARY KEY (examen_id, materia_id, año_examen));
INSERT INTO test_examen VALUES (71,201,2017,5146);
INSERT INTO test_examen VALUES (72,202,2017,3651);
INSERT INTO test_examen VALUES (73,202,2018,4501);
INSERT INTO test_examen VALUES (71,202,2018,5945);
INSERT INTO test_examen VALUES (73,201,2018,2647);
INSERT INTO test_examen VALUES (71,201,2018,3545);
INSERT INTO test_examen VALUES (73,201,2019,2647);

CREATE TABLE test_materia (materia_id int NOT NULL unique, nombre_materia varchar(255));
INSERT INTO test_materia VALUES (201,Matemáticas);
INSERT INTO test_materia VALUES (202,Física);
INSERT INTO test_materia VALUES (203,química);

SELECT s.materia_id, p.nome_materia,
SUM(s.num_estudiante) 'Estudiantes para todo el año'
FROM test_examen s
JOIN test_materia p
ON s. materia_id = p. materia_id
GROUP BY s. materia_id;

SELECT s1.materia_id, p.nombre_materia,s1.año_examen as primer_año, s1.num_estudiantes
FROM test_esame s1
JOIN test_materia p on s1.materia_id = p.materia_id
JOIN (SELECT materia_id, min(año_examen) min_año
FROM test_examen GROUP BY materia_id) s2
ON s1.materia_id = s2.materia_id
AND s1.año_examen = s2.min_año;

Realizar ejercicios de codificación online para familiarizarte con las bases de datos, sus tablas y los operadores del lenguaje SQL es un paso necesario para poder gestionar datos sin tener que ralentizar tu camino de aprendizaje.

Curso de programación Aulab Hackademy

Conviértete en Desarrollador weben 6 meses

Descubre el bootcamp de programación Hackademy

Programa Completo

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad