Skip to content

Instantly share code, notes, and snippets.

@lechugalf
Last active October 29, 2020 00:12
Show Gist options
  • Save lechugalf/b0ae7bfdac694c1970127c2c87b872bf to your computer and use it in GitHub Desktop.
Save lechugalf/b0ae7bfdac694c1970127c2c87b872bf to your computer and use it in GitHub Desktop.
Sesión 1: Fundamentos de SQL
# SESIÓN 1
## RETO 1 - ESTRUCTURA DE UNA TABLA
USE tienda;
SHOW tables;
DESCRIBE articulo;
DESCRIBE puesto;
DESCRIBE venta;
# tipo | descripcion
#---------------|-----------------------------
# varchar(n) | Cadena variable de texto
# double | Numero con punto flotante
# int | Numero entero
# timestamp | Fecha y hora
## RETO 2 - ESTRUCTURA BÁSICA DE UNA CONSULTA
USE tienda;
# ¿Cuál es el nombre de los empleados con el puesto 4?
SELECT nombre FROM empleado WHERE id_puesto = 4;
# ¿Qué puestos tienen un salario mayor a $10,000?
SELECT nombre FROM puesto WHERE salario > 10000;
# ¿Qué articulos tienen un precio mayor a $1,000 y un iva mayor a 100?
SELECT * FROM articulo WHERE precio > 1000 AND iva > 100;
# ¿Qué ventas incluyen los artículo 135 o 963 y fueron hechas por los empleados 835 o 369?
SELECT * FROM venta WHERE id_articulo IN(135,963) AND id_empleado IN(835, 369);
## RETO 3 - ORDENAMIENTOS Y LÍMITES
USE tienda;
# Escribe una consulta que permita obtener el top 5 de puestos por salarios.
SELECT * FROM puesto ORDER BY salario DESC LIMIT 5;
## Ejercicios Sesión 1
# 1. Dentro del mismo servidor de bases de datos, conéctate al esquema classicmodels
USE classicmodels;
# 2. Dentro de la tabla employees, obtén el apellido de todos los empleados
SELECT lastName FROM employees;
# 3. Dentro de la tabla employees, obtén el apellido, nombre y puesto de todos los empleados.
SELECT lastName, firstName, jobTitle FROM employees;
# 4. Dentro de la tabla employees, obtén todos los datos de cada empleado.
SELECT * FROM employees;
# 5. Dentro de la tabla employees, obtén el apellido, nombre y puesto de todos los empleados
# que tengan el puesto Sales Rep.
SELECT lastName, firstName, jobTitle FROM employees WHERE jobTitle = 'Sales Rep';
# 6. Dentro de la tabla employees, obtén el apellido, nombre, puesto y código de oficina de
# todos los empleados que tengan el puesto Sales Rep y código de oficina 1.
SELECT lastName, firstName, jobTitle, officeCode FROM employees WHERE jobTitle = 'Sales Rep' AND officeCode = '1';
# 7. Dentro de la tabla employees, obtén el apellido, nombre, puesto y código de oficina de
# todos los empleados que tengan el puesto Sales Rep o código de oficina 1.
SELECT lastName, firstName, jobTitle, officeCode FROM employees WHERE jobTitle = 'Sales Rep' OR officeCode = '1';
# 8. Dentro de la tabla employees, obtén el apellido, nombre y código de oficina de todos
# los empleados que tenga código de oficina 1, 2 o 3.
SELECT lastName, firstName, officeCode FROM employees WHERE officeCode IN('1', '2', '3');
# 9. Dentro de la tabla employees, obten el apellido, nombre y puesto de todos los empleados
# que tengan un puesto distinto a Sales Rep.
SELECT lastName, firstName, jobTitle FROM employees WHERE jobTitle != 'Sales Rep';
# 10. Dentro de la tabla employees, obtén el apellido, nombre y código de oficina de todos
# los empleados cuyo código de oficina sea mayor a 5.
SELECT lastName, firstName, officeCode FROM employees WHERE officeCode > 5;
# 11. Dentro de la tabla employees, obtén el apellido, nombre y código de oficina de todos
# los empleados cuyo cdigo de oficina sea menor o igual 4.
SELECT lastName, firstName, officeCode FROM employees WHERE officeCode <= 4;
# 12. Dentro de la tabla customers, obtén el nombre, país y estado de todos los clientes cuyo país sea USA y cuyo estado sea CA.
SELECT customerName, country, state FROM customers WHERE country = 'USA' AND state = 'CA';
# 13. Dentro de la tabla customers, obtén el nombre, país, estado y límite de crédito de todos los clientes cuyo país sea, USA,
# cuyo estado sea CA y cuyo límite de crédito sea mayor a 100000.
SELECT customerName, country, state, creditLimit FROM customers WHERE country = 'USA' AND state = 'CA' AND creditLimit > 100000;
# 14. Dentro de la tabla customers, obtén el nombre y país de todos los clientes cuyo país sea USA o France.
SELECT customerName, country FROM customers WHERE country IN('USA', 'France');
SELECT customerName, country FROM customers WHERE country = 'USA' OR country = 'France';
# 15. Dentro de la tabla customers, obtén el nombre, pas y límite de crédito de todos los clientes cuyo país sea USA o France y
# cuyo límite de crédito sea mayor a 100000. Para este ejercicio ten cuidado con los paréntesis.
SELECT customerName, creditLimit FROM customers WHERE (country = 'USA' OR country = 'France') AND creditLimit > 100000;
SELECT customerName, creditLimit FROM customers WHERE country IN('USA', 'France') AND creditLimit > 100000;
# 16. Dentro de la tabla offices, obtén el código de la oficina, ciudad, teléfono y país de
# aquellas oficinas que se encuentren en USA o France
SELECT officeCode, city, phone, country FROM offices WHERE country IN('USA', 'France');
# 17. Dentro de la tabla offices, obtén el código de la oficina, ciudad, teléfono y país de aquellas oficinas que no se encuentren
# en USA o France.
SELECT officeCode, city, phone, country FROM offices WHERE country != 'France' AND country != 'USA';
# 18. Dentro de la tabla orders, obtén el número de orden, número de cliente, estado y fecha de envío de todas las órdenes con el
# número 10165, 10287 o 10310.
SELECT orderNumber, customerNumber, status, shippedDate FROM orders WHERE orderNumber IN(10165, 10287, 10310);
# 19. Dentro de la tabla customers, obtén el apellido y nombre de cada cliente y ordena los resultados por apellido de forma ascendente.
SELECT contactLastName, customerName FROM customers ORDER BY contactLastName;
# 20. Dentro de la tabla customers, obtén el apellido y nombre de cada cliente y ordena los resultados por apellido de forma descendente.
SELECT contactLastName, customerName FROM customers ORDER BY contactLastName DESC;
# 21. Dentro de la tabla customers, obtén el apellido y nombre de cada cliente y ordena los resultados por apellido de forma descendente
# y luego por nombre de forma ascendente.
SELECT contactLastName, customerName FROM customers ORDER BY contactLastName DESC, customerName ASC;
# 22. Dentro de la tabla customers, obtén el número de cliente, nombre de cliente y el límite de crédito de los cinco clientes con el
# límite de crédito más alto (top 5).
SELECT customerNumber, customerName, creditLimit FROM customers ORDER BY creditLimit DESC LIMIT 5;
# 23. Dentro de la tabla customers, obtén el número de cliente, nombre de cliente y el límite de crédito de los cinco clientes con el límite
# de crédito más bajo.
SELECT customerNumber, customerName, creditLimit FROM customers ORDER BY creditLimit ASC LIMIT 5;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment