Ejercicios Taller de SQL

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Taller de Desarrollo y Realización de Consultas SQL

1. Tienda de informática
1.1. Modelo entidad/relación

1.2. Base de datos en SQL Server


/* CREAR BASE DE DATOS*/ /* ACTIVAR BASE DE DATOS*/
CREATE DATABASE TIENDAS USE TIENDAS;
GO GO

/* CREAR TABLA DE DATOS*/ CREATE TABLE PRODUCTOS (


CREATE TABLE FABRICANTES ( codigo INT IDENTITY (1,1) PRIMARY KEY,
codigo INT IDENTITY (1,1) PRIMARY nombre VARCHAR (100) NOT NULL,
KEY, precio DECIMAL NOT NULL,
nombre VARCHAR (100) NOT NULL codigo_fabricante INT NOT NULL,
); FOREIGN KEY (codigo_fabricante) REFERENCES
FABRICANTES(codigo)
);
/* MOSTRAR LA ESTRUCTURA DE LA TABLA */
SELECT * FROM FABRICANTES

SELECT * FROM PRODUCTOS

/* INSERTA REGISTROS A LAS TABLAS */


INSERT INTO FABRICANTES VALUES('Asus');
INSERT INTO FABRICANTES VALUES('Lenovo');
INSERT INTO FABRICANTES VALUES('Hewlett-Packard');
INSERT INTO FABRICANTES VALUES('Samsung');
INSERT INTO FABRICANTES VALUES('Seagate');
INSERT INTO FABRICANTES VALUES('Crucial');
INSERT INTO FABRICANTES VALUES('Gigabyte');
INSERT INTO FABRICANTES VALUES('Huawei');
INSERT INTO FABRICANTES VALUES('Xiaomi');

INSERT INTO PRODUCTOS VALUES ('Disco duro SATA3 1TB', 86.99, 5);
INSERT INTO PRODUCTOS VALUES ('Memoria RAM DDR4 8GB', 120, 6);
INSERT INTO PRODUCTOS VALUES ('Disco SSD 1 TB', 150.99, 4);
INSERT INTO PRODUCTOS VALUES ('GeForce GTX 1050Ti', 185, 7);
INSERT INTO PRODUCTOS VALUES ('GeForce GTX 1080 Xtreme', 755, 6);
INSERT INTO PRODUCTOS VALUES ('Monitor 24 LED Full HD', 202, 1);
INSERT INTO PRODUCTOS VALUES ('Monitor 27 LED Full HD', 245.99, 1);
INSERT INTO PRODUCTOS VALUES ('Portátil Yoga 520', 559, 2);
INSERT INTO PRODUCTOS VALUES ('Portátil Ideapd 320', 444, 2);
INSERT INTO PRODUCTOS VALUES ('Impresora HP Deskjet 3720', 59.99, 3);
INSERT INTO PRODUCTOS VALUES ('Impresora HP Laserjet Pro M26nw', 180, 3);

TI América L. Sabalú S.
9
Instructora
1.3. Consultas sobre una Tabla
1. Lista el nombre de todos los productos que hay en la tabla PRODUCTO.
2. Lista los nombres y los precios de todos los productos de la tabla PRODUCTO.
3. Lista todas las columnas de la tabla PRODUCTO.
4. Lista el nombre de los productos, el precio en euros y el precio en dólares estadounidenses (USD).
5. Lista el nombre de los productos, el precio en euros y el precio en dólares estadounidenses (USD). Utiliza los
siguientes alias para las columnas: nombre de producto, euros, dólares.
6. Lista los nombres y los precios de todos los productos de la tabla producto, convirtiendo los nombres a
mayúscula.
7. Lista los nombres y los precios de todos los productos de la tabla producto, convirtiendo los nombres a
minúscula.
8. Lista el nombre de todos los fabricantes en una columna, y en otra columna obtenga en mayúsculas los dos
primeros caracteres del nombre del fabricante.
9. Lista los nombres y los precios de todos los productos de la tabla producto, redondeando el valor del precio.
10. Lista los nombres y los precios de todos los productos de la tabla producto, truncando el valor del precio para
mostrarlo sin ninguna cifra decimal.
11. Lista el código de los fabricantes que tienen productos en la tabla PRODUCTO.
12. Lista el código de los fabricantes que tienen productos en la tabla producto, eliminando los códigos que
aparecen repetidos.
13. Lista los nombres de los fabricantes ordenados de forma ascendente.
14. Lista los nombres de los fabricantes ordenados de forma descendente.
15. Lista los nombres de los productos ordenados en primer lugar por el nombre de forma ascendente y en
segundo lugar por el precio de forma descendente.
16. Devuelve una lista con las 5 primeras filas de la tabla FABRICANTE.
17. Devuelve una lista con 2 filas a partir de la cuarta fila de la tabla fabricante. La cuarta fila también se debe
incluir en la respuesta.
18. Lista el nombre y el precio del producto más barato. (Utilice solamente las cláusulas ORDER BY y LIMIT)
19. Lista el nombre y el precio del producto más caro. (Utilice solamente las cláusulas ORDER BY y LIMIT)
20. Lista el nombre de todos los productos del fabricante cuyo código de fabricante es igual a 2.
21. Lista el nombre de los productos que tienen un precio menor o igual a 120€.
22. Lista el nombre de los productos que tienen un precio mayor o igual a 400€.
23. Lista el nombre de los productos que no tienen un precio mayor o igual a 400€.
24. Lista todos los productos que tengan un precio entre 80€ y 300€. Sin utilizar el operador BETWEEN.
25. Lista todos los productos que tengan un precio entre 60€ y 200€. Utilizando el operador BETWEEN.
26. Lista todos los productos que tengan un precio mayor que 200€ y que el código de fabricante sea igual a 6.
27. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Sin utilizar el operador IN.
28. Lista todos los productos donde el código de fabricante sea 1, 3 o 5. Utilizando el operador IN.
29. Lista el nombre y el precio de los productos en céntimos (Habrá que multiplicar por 100 el valor del precio).
Cree un alias para la columna que contiene el precio que se llame céntimos.
30. Lista los nombres de los fabricantes cuyo nombre empiece por la letra S.
31. Lista los nombres de los fabricantes cuyo nombre termine por la vocal e.
32. Lista los nombres de los fabricantes cuyo nombre contenga el carácter w.
33. Lista los nombres de los fabricantes cuyo nombre sea de 4 caracteres.
34. Devuelve una lista con el nombre de todos los productos que contienen la cadena Portátil en el nombre.
35. Devuelve una lista con el nombre de todos los productos que contienen la cadena Monitor en el nombre y
tienen un precio inferior a 215 €.
36. Lista el nombre y el precio de todos los productos que tengan un precio mayor o igual a 180€. Ordene el
resultado en primer lugar por el precio (en orden descendente) y en segundo lugar por el nombre (en orden
ascendente).
TI América L. Sabalú S.
10
Instructora
2. Gestión de Ventas
2.1 Modelo entidad/relación

2.2 Base de datos para SQL Server


/* CREAR BASE DE DATOS*/
CREATE DATABASE ventas COLLATE Latin1_General_100_CS_AS_SC;
GO

/* ACTIVAR LA BASE DE DATOS*/


USE ventas;
GO

/* CREAR TABLAS EN BASE DE DATOS*/ CREATE TABLE COMERCIAL (


CREATE TABLE CLIENTE ( id INT identity PRIMARY KEY,
id INT identity PRIMARY KEY, nombre VARCHAR (100) NOT NULL,
nombre VARCHAR (100) NOT NULL, apellido1 VARCHAR (100) NOT NULL,
apellido1 VARCHAR (100) NOT NULL, apellido2 VARCHAR (100),
apellido2 VARCHAR (100), comisión FLOAT
ciudad VARCHAR (100), );
categoría INT);

CREATE TABLE PEDIDO (


id INT identity PRIMARY KEY,
total Decimal NOT NULL,
fecha DATE,
id_cliente INT NOT NULL,
id_comercial INT NOT NULL,
FOREIGN KEY (id_cliente) REFERENCES cliente(id),
FOREIGN KEY (id_comercial) REFERENCES comercial(id));

/* MOSTRAR LA ESTRUCTURA DE LA TABLA */


SELECT * FROM CLIENTE;
SELECT * FROM PEDIDO;
SELECT * FROM COMERCIAL;

/* INSERTAR REGISTROS A LAS TABLAS */


INSERT INTO CLIENTE VALUES ('Aarón', 'Rivero', 'Gómez', 'Almería', 100);
INSERT INTO CLIENTE VALUES ('Adela', 'Salas', 'Díaz', 'Granada', 200);
INSERT INTO CLIENTE VALUES ('Adolfo', 'Rubio', 'Flores', 'Sevilla', NULL);
INSERT INTO CLIENTE VALUES ('Adrián', 'Suárez', NULL, 'Jaén', 300);
INSERT INTO CLIENTE VALUES ('Marcos', 'Loyola', 'Méndez', 'Almería', 200);
INSERT INTO CLIENTE VALUES ('María', 'Santana', 'Moreno', 'Cádiz', 100);
INSERT INTO CLIENTE VALUES ('Pilar', 'Ruiz', NULL, 'Sevilla', 300);
TI América L. Sabalú S.
11
Instructora
INSERT INTO CLIENTE VALUES ('Pepe', 'Ruiz', 'Santana', 'Huelva', 200);
INSERT INTO CLIENTE VALUES ('Guillermo', 'López', 'Gómez', 'Granada', 225);
INSERT INTO CLIENTE VALUES ('Daniel', 'Santana', 'Loyola', 'Sevilla', 125);

INSERT INTO COMERCIAL VALUES ('Daniel', 'Sáez', 'Vega', 0.15);


INSERT INTO COMERCIAL VALUES ('Juan', 'Gómez', 'López', 0.13);
INSERT INTO COMERCIAL VALUES ('Diego','Flores', 'Salas', 0.11);
INSERT INTO COMERCIAL VALUES ('Marta','Herrera', 'Gil', 0.14);
INSERT INTO COMERCIAL VALUES ('Antonio','Carretero', 'Ortega', 0.12);
INSERT INTO COMERCIAL VALUES ('Manuel','Domínguez', 'Hernández', 0.13);
INSERT INTO COMERCIAL VALUES ('Antonio','Vega', 'Hernández', 0.11);
INSERT INTO COMERCIAL VALUES ('Alfredo','Ruiz', 'Flores', 0.05);

INSERT INTO PEDIDO VALUES (150.5, '2017-10-05', 5, 2);


INSERT INTO PEDIDO VALUES (270.65, '2016-09-10', 1, 5);
INSERT INTO PEDIDO VALUES (65.26, '2017-10-05', 2, 1);
INSERT INTO PEDIDO VALUES (110.5, '2016-08-17', 8, 3);
INSERT INTO PEDIDO VALUES (948.5, '2017-09-10', 5, 2);
INSERT INTO PEDIDO VALUES (2400.6, '2016-07-27', 7, 1);
INSERT INTO PEDIDO VALUES (5760, '2015-09-10', 2, 1);
INSERT INTO PEDIDO VALUES (1983.43, '2017-10-10', 4, 6);
INSERT INTO PEDIDO VALUES (2480.4, '2016-10-10', 8, 3);
INSERT INTO PEDIDO VALUES (250.45, '2015-06-27', 8, 2);
INSERT INTO PEDIDO VALUES (75.29, '2016-08-17', 3, 7);
INSERT INTO PEDIDO VALUES (3045.6, '2017-04-25', 2, 1);
INSERT INTO PEDIDO VALUES (545.75, '2019-01-25', 6, 1);
INSERT INTO PEDIDO VALUES (145.82, '2017-02-02', 6, 1);
INSERT INTO PEDIDO VALUES (370.85, '2019-03-11', 1, 5);
INSERT INTO PEDIDO VALUES (2389.23, '2019-03-11', 1, 5);

/* MOSTRAR EL CONTENIDO DE LAS TABLA */


SELECT * FROM PEDIDO
SELECT * FROM CLIENTE
SELECT * FROM COMERCIAL
2.3 Consultas sobre una Tabla
1. Devuelve un listado con todos los PEDIDOS que se han realizado. Los pedidos deben estar ordenados por la
fecha de realización, mostrando en primer lugar los pedidos más recientes.
2. Devuelve todos los datos de los dos pedidos de mayor valor.
3. Devuelve un listado con los identificadores de los CLIENTES que han realizado algún pedido. Tenga en cuenta
que no debe mostrar identificadores que estén repetidos.
4. Devuelve un listado de todos los pedidos que se realizaron durante el año 2017, cuya cantidad total sea
superior a 500€.
5. Devuelve un listado con el nombre y los apellidos de los COMERCIALES que tienen una comisión entre 0.05 y
0.11.
6. Devuelve el valor de la comisión de mayor valor que existe en la Tabla Comercial.
7. Devuelve el identificador, nombre y primer apellido de aquellos CLIENTES cuyo segundo apellido no es NULL.
El listado deberá estar ordenado alfabéticamente por apellidos y nombre.
8. Devuelve un listado de los nombres de los CLIENTES que empiezan por A y terminan por n y también los
nombres que empiezan por P. El listado deberá estar ordenado alfabéticamente.
9. Devuelve un listado de los nombres de los CLIENTES que no empiezan por A. El listado deberá estar ordenado
alfabéticamente.
10. Devuelve un listado con los nombres de los COMERCIALES que terminan por el o o. Tenga en cuenta que se
deberán eliminar los nombres repetidos.
TI América L. Sabalú S.
12
Instructora

También podría gustarte