Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL: ejercicio de instrucción SELECT
Si desea poner a prueba sus habilidades con las sentencias SQL SELECT, pruebe algunos de nuestros ejercicios.
Estos ejercicios le permiten probar sus habilidades usando la instrucción SELECT. Recibirá preguntas que necesitan ser resueltas. Después de cada ejercicio, proporcionamos soluciones para que puedas comprobar tus respuestas.
¡Empecemos!
Ejercicio 1:
De acuerdo con la tabla de empleados a continuación, seleccione todos los campos de la tabla de empleados con un salario menor o igual a $ 52,500 (no se requiere clasificación):
CREATE TABLE employees ( employee_number int NOT NULL, last_name char(50) NOT NULL, first_name char(50) NOT NULL, salary int, dept_id int, CONSTRAINT employees_pk PRIMARY KEY (employee_number) ); INSERT INTO employees (employee_number, last_name, first_name, salary, dept_id) VALUES (1001, 'Smith', 'John', 62000, 500); INSERT INTO employees (employee_number, last_name, first_name, salary, dept_id) VALUES (1002, 'Anderson', 'Jane', 57500, 500); INSERT INTO employees (employee_number, last_name, first_name, salary, dept_id) VALUES (1003, 'Everest', 'Brad', 71000, 501); INSERT INTO employees (employee_number, last_name, first_name, salary, dept_id) VALUES (1004, 'Horvath', 'Jack', 42000, 501);
Solución al Ejercicio #1:
La siguiente instrucción SQL SELECT seleccionará estos registros de la tabla de empleados:
SELECT * FROM employees WHERE salary <= 52500;
Estos son los resultados que deberías ver:
ID de empleado | apellido | nombre | salario | dept_id |
---|---|---|---|---|
1004 | Horvath | Jack | 42000 | 501 |
Ejercicio de práctica #2:
De la siguiente tabla de proveedores, seleccione un valor de ciudad único ubicado en California y ordene los resultados por ciudad en orden descendente:
CREATE TABLE suppliers ( supplier_id int NOT NULL, supplier_name char(50) NOT NULL, city char(50), state char(25), CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id) ); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (100, 'Microsoft', 'Redmond', 'Washington'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (200, 'Google', 'Mountain View', 'California'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (300, 'Oracle', 'Redwood City', 'California'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (400, 'Kimberly-Clark', 'Irving', 'Texas'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (500, 'Tyson Foods', 'Springdale', 'Arkansas'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (600, 'SC Johnson', 'Racine', 'Wisconsin'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (700, 'Dole Food Company', 'Westlake Village', 'California'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (800, 'Flowers Foods', 'Thomasville', 'Georgia'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (900, 'Electronic Arts', 'Redwood City', 'California');
Solución al ejercicio #2:
La siguiente instrucción SELECT seleccionará estos registros de la tabla de proveedores:
SELECT DISTINCT city FROM suppliers WHERE state="California" ORDER BY city DESC;
Estos son los resultados que deberías ver:
Ciudad |
---|
pueblo del lago oeste |
ciudad de secoya |
paisaje de la cima de la montaña |
Ejercicio de práctica #3:
De la tabla de clientes y la tabla de pedidos a continuación, seleccione customer_id y last_name de la tabla de clientes y order_date de la tabla de pedidos, donde tanto los clientes como la tabla de pedidos tienen valores de customer_id coincidentes. Ordene los resultados en orden descendente por customer_id.
CREATE TABLE customers ( customer_id int NOT NULL, last_name char(50) NOT NULL, first_name char(50) NOT NULL, favorite_website char(50), CONSTRAINT customers_pk PRIMARY KEY (customer_id) ); CREATE TABLE orders ( order_id int NOT NULL, customer_id int, order_date date, CONSTRAINT orders_pk PRIMARY KEY (order_id) ); INSERT INTO customers (customer_id, last_name, first_name, favorite_website) VALUES (4000, 'Jackson', 'Joe', 'prograrmaplus.com'); INSERT INTO customers (customer_id, last_name, first_name, favorite_website) VALUES (5000, 'Smith', 'Jane', 'digminecraft.com'); INSERT INTO customers (customer_id, last_name, first_name, favorite_website) VALUES (6000, 'Ferguson', 'Samantha', 'bigactivities.com'); INSERT INTO customers (customer_id, last_name, first_name, favorite_website) VALUES (7000, 'Reynolds', 'Allen', 'checkyourmath.com'); INSERT INTO customers (customer_id, last_name, first_name, favorite_website) VALUES (8000, 'Anderson', 'Paige', NULL); INSERT INTO customers (customer_id, last_name, first_name, favorite_website) VALUES (9000, 'Johnson', 'Derek', 'prograrmaplus.com'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (1,7000,'2016/04/18'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (2,5000,'2016/04/18'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (3,8000,'2016/04/19'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (4,4000,'2016/04/20'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (5,null,'2016/05/01');
Solución al Ejercicio #3:
La siguiente instrucción SQL SELECT seleccionará estos registros de las tablas Cliente y Pedidos (usando INNER JOIN):
SELECT customers.customer_id, customers.last_name, orders.order_date FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id ORDER BY customers.customer_id DESC;
Estos son los resultados que deberías ver:
Identificación del cliente | apellido | fecha de orden |
---|---|---|
8000 | anderson | 2016/04/19 |
5000 | Herrero | 2016/04/18 |
7000 | Reynolds | 2016/04/18 |
4000 | jackson | 2016/04/20 |
Ejercicio de práctica #4:
Con base en la tabla Clientes y Pedidos del ejercicio n.º 3, seleccione id_cliente y apellido de la tabla Clientes, donde hay un registro en la tabla Pedidos para ese id_cliente. Ordene los resultados en orden ascendente por last_name, luego en orden descendente por customer_id.
CREATE TABLE customers ( customer_id int NOT NULL, last_name char(50) NOT NULL, first_name char(50) NOT NULL, favorite_website char(50), CONSTRAINT customers_pk PRIMARY KEY (customer_id) ); CREATE TABLE orders ( order_id int NOT NULL, customer_id int, order_date date, CONSTRAINT orders_pk PRIMARY KEY (order_id) );
Solución al Ejercicio #4:
La siguiente instrucción SQL SELECT seleccionará registros de las tablas Cliente y Pedidos (usando la cláusula SQL EXISTS):
SELECT customer_id, last_name FROM customers WHERE EXISTS ( SELECT orders.customer_id FROM orders WHERE orders.customer_id = customers.customer_id ) ORDER BY last_name ASC, customer_id DESC;
Como alternativa, puede excluir la palabra clave ASC para nombre_cliente en la cláusula ORDER BY. Ambas declaraciones SELECT producen el mismo resultado:
SELECT customer_id, last_name FROM customers WHERE EXISTS ( SELECT orders.customer_id FROM orders WHERE orders.customer_id = customers.customer_id ) ORDER BY last_name, customer_id DESC;
Estos son los resultados que deberías ver:
Identificación del cliente | apellido |
---|---|
8000 | anderson |
4000 | jackson |
7000 | Reynolds |
5000 | Herrero |