Example: barber

Ejercicios de Bases de Datos - SuperAlumnos.net

Ejercicios Resueltos de SQL. Borja Sotomayor 1 de junio de 2002. c Borja Sotomayor, 2002. Este documento ha sido compuesto ntegramente en LATEX. Para producir el documento se ha utilizado de la distribuci on MiKTEX. Se han utilizado los paquetes amssymb, babel, color, fancybox, fancyvrb, graphicx, hyperref, ifthen, inputenc, marvosym, scrbook y scrpage (KOMA Script), titlesec, titletoc, pdfcrypt, y url. Los diagramas han sido elaboradas con Microsoftr Visior 2002. Indice general 1. La Tienda de Inform . atica 1. 2. Empleados 7. 3. Los Almacenes 13. 4. Pel culas y Salas 17. 5. Los Directores 19. 6. Piezas y Proveedores 23. 7. Los Cient ficos 27. 8. Los Grandes Almacenes 29. 9. Los Investigadores 33. 3. 1. La Tienda de Inform.

INSERT INTO ARTICULOS( Nombre , Precio , Fabricante) VALUES ( ’Altavoces’ , 70 , 2 ) 1.18. Cambiar el nombre del producto 8 a ’Impresora Laser’ UPDATE ARTICULOS SET Nombre = ’Impresora Laser’ WHERE Codigo = 8 1.19. Aplicar un descuento del 10% (multiplicar el precio por 0’9) a todos los productos. UPDATE ARTICULOS SET Precio ...

Tags:

  Nombre, Productos, Nombre del producto

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Ejercicios de Bases de Datos - SuperAlumnos.net

1 Ejercicios Resueltos de SQL. Borja Sotomayor 1 de junio de 2002. c Borja Sotomayor, 2002. Este documento ha sido compuesto ntegramente en LATEX. Para producir el documento se ha utilizado de la distribuci on MiKTEX. Se han utilizado los paquetes amssymb, babel, color, fancybox, fancyvrb, graphicx, hyperref, ifthen, inputenc, marvosym, scrbook y scrpage (KOMA Script), titlesec, titletoc, pdfcrypt, y url. Los diagramas han sido elaboradas con Microsoftr Visior 2002. Indice general 1. La Tienda de Inform . atica 1. 2. Empleados 7. 3. Los Almacenes 13. 4. Pel culas y Salas 17. 5. Los Directores 19. 6. Piezas y Proveedores 23. 7. Los Cient ficos 27. 8. Los Grandes Almacenes 29. 9. Los Investigadores 33. 3. 1. La Tienda de Inform.

2 Atica ARTICULOS. FABRICANTES. PK Codigo int identity PK Codigo int identity nombre nvarchar(100). nombre nvarchar(100) Precio int FK1 Fabricante int Obtener los nombres de los productos de la tienda. SELECT nombre FROM ARTICULOS. Obtener los nombres y los precios de los productos de la tienda. SELECT nombre , Precio FROM ARTICULOS. Obtener el nombre de los productos cuyo precio sea menor o igual a 200 . SELECT nombre FROM ARTICULOS WHERE Precio > 200. Obtener todos los Datos de los art culos cuyo precio est e entre los 60 y los 120 . (ambas cantidades incluidas). /* Con AND */. SELECT * FROM ARTICULOS. WHERE Precio >= 60 AND Precio <= 120. /* Con BETWEEN */. SELECT * FROM ARTICULOS. WHERE Precio BETWEEN 60 AND 120.

3 1. 1 La Tienda de Inform atica Obtener el nombre y el precio en pesetas (es decir, el precio en euros multiplicado por 166'386). /* Sin AS */. SELECT nombre , Precio * FROM ARTICULOS. /* Con AS */. SELECT nombre , Precio * AS PrecioPtas FROM ARTICULOS. Seleccionar el precio medio de todos los productos . SELECT AVG(Precio) FROM ARTICULOS. Obtener el precio medio de los art culos cuyo c odigo de fabricante sea 2. SELECT AVG(Precio) FROM ARTICULOS WHERE Fabricante=2. Obtener el numero de art culos cuyo precio sea mayor o igual a 180 . SELECT COUNT(*) FROM ARTICULOS WHERE Precio >= 180. Obtener el nombre y precio de los art culos cuyo precio sea mayor o igual a 180 . y ordenarlos descendentemente por precio, y luego ascendentemente por nombre .

4 SELECT nombre , Precio FROM ARTICULOS. WHERE Precio >= 180. ORDER BY Precio DESC, nombre Obtener un listado completo de art culos, incluyendo por cada articulo los Datos del articulo y de su fabricante. /* Sin INNER JOIN */. SELECT * FROM ARTICULOS, FABRICANTES. WHERE = /* Con INNER JOIN */. SELECT *. FROM ARTICULOS INNER JOIN FABRICANTES. ON = Obtener un listado de art culos, incluyendo el nombre del art culo, su precio, y el nombre de su fabricante. 2 Ejercicios de Bases de Datos 1 La Tienda de Inform atica /* Sin INNER JOIN */. SELECT , Precio, FROM ARTICULOS, FABRICANTES. WHERE = /* Con INNER JOIN */. SELECT , Precio, FROM ARTICULOS INNER JOIN FABRICANTES. ON = Obtener el precio medio de los productos de cada fabricante, mostrando solo los c odigos de fabricante.

5 SELECT AVG(Precio), Fabricante FROM ARTICULOS. GROUP BY Fabricante Obtener el precio medio de los productos de cada fabricante, mostrando el nombre del fabricante. /* Sin INNER JOIN */. SELECT AVG(Precio), FROM ARTICULOS, FABRICANTES. WHERE = GROUP BY /* Con INNER JOIN */. SELECT AVG(Precio), FROM ARTICULOS INNER JOIN FABRICANTES. ON = GROUP BY Obtener los nombres de los fabricantes que ofrezcan productos cuyo precio medio sea mayor o igual a 150 . /* Sin INNER JOIN */. SELECT AVG(Precio), FROM ARTICULOS, FABRICANTES. WHERE = GROUP BY HAVING AVG(Precio) >= 150. /* Con INNER JOIN */. SELECT AVG(Precio), FROM ARTICULOS INNER JOIN FABRICANTES. ON = GROUP BY HAVING AVG(Precio) >= 150. Ejercicios de Bases de Datos 3. 1 La Tienda de Inform atica Obtener el nombre y precio del art culo m as barato.

6 SELECT nombre , Precio FROM ARTICULOS. WHERE Precio = (SELECT MIN(Precio) FROM ARTICULOS). Obtener una lista con el nombre y precio de los art culos m as caros de cada pro- veedor (incluyendo el nombre del proveedor). /* Sin INNER JOIN */. SELECT , , FROM ARTICULOS A, FABRICANTES F. WHERE = AND =. (. SELECT MAX( ). FROM ARTICULOS A. WHERE = ). /* Con INNER JOIN */. SELECT , , FROM ARTICULOS A INNER JOIN FABRICANTES F. ON = AND =. (. SELECT MAX( ). FROM ARTICULOS A. WHERE = ). nadir un nuevo producto: Altavoces de 70 (del fabricante 2). A . INSERT INTO ARTICULOS( nombre , Precio , Fabricante). VALUES ( 'Altavoces' , 70 , 2 ). Cambiar el nombre del producto 8 a 'Impresora Laser'. UPDATE ARTICULOS. SET nombre = 'Impresora Laser'.

7 WHERE Codigo = 8. Aplicar un descuento del 10 % (multiplicar el precio por 0'9) a todos los productos . UPDATE ARTICULOS. SET Precio = Precio * 4 Ejercicios de Bases de Datos 1 La Tienda de Inform atica Aplicar un descuento de 10 a todos los productos cuyo precio sea mayor o igual a 120 . UPDATE ARTICULOS. SET Precio = Precio - 10. WHERE Precio >= 120. Ejercicios de Bases de Datos 5. 2. Empleados EMPLEADOS DEPARTAMENTOS. PK DNI varchar(8) PK Codigo int nombre nvarchar(100) nombre nvarchar(100). Apellidos nvarchar(255) Presupuesto int FK1 Departamento int Obtener los apellidos de los empleados. SELECT Apellidos FROM EMPLEADOS. Obtener los apellidos de los empleados sin repeticiones. SELECT DISTINCT Apellidos FROM EMPLEADOS.

8 Obtener todos los Datos de los empleados que se apellidan 'L opez'. SELECT * FROM EMPLEADOS WHERE Apellidos = 'L . opez'. Obtener todos los Datos de los empleados que se apellidan 'L opez' y los que se apellidan 'P erez'. 7. 2 Empleados /* Con OR */. SELECT * FROM EMPLEADOS. WHERE Apellidos = 'L . opez' OR Apellidos = 'P . erez'. /* Con IN */. SELECT * FROM EMPLEADOS. WHERE Apellidos IN ('L . opez' , 'P . erez'). Obtener todos los Datos de los empleados que trabajan para el departamento 14. SELECT * FROM EMPLEADOS WHERE Departamento = 14. Obtener todos los Datos de los empleados que trabajan para el departamento 37 y para el departamento 77. /* Con OR */. SELECT * FROM EMPLEADOS. WHERE Departamento = 37 OR Departamento = 77.

9 /* Con IN */. SELECT * FROM EMPLEADOS. WHERE Departamento IN (37,77). Obtener todos los Datos de los empleados cuyo apellido comience por 'P'. SELECT * FROM EMPLEADOS. WHERE Apellidos LIKE 'P%'. Obtener el presupuesto total de todos los departamentos. SELECT SUM(Presupuesto) FROM DEPARTAMENTOS. Obtener el numero de empleados en cada departamento. SELECT Departamento, COUNT(*). FROM EMPLEADOS. GROUP BY Departamento Obtener un listado completo de empleados, incluyendo por cada empleado los Datos del empleado y de su departamento. SELECT *. FROM EMPLEADOS INNER JOIN DEPARTAMENTOS. ON = 8 Ejercicios de Bases de Datos 2 Empleados Obtener un listado completo de empleados, incluyendo el nombre y apellidos del empleado junto al nombre y presupuesto de su departamento.

10 /* Sin etiquetas */. SELECT , Apellidos, , Presupuesto FROM EMPLEADOS INNER JOIN DEPARTAMENTOS. ON = /* Con etiquetas */. SELECT , Apellidos, , Presupuesto FROM EMPLEADOS E INNER JOIN DEPARTAMENTOS D. ON = Obtener los nombres y apellidos de los empleados que trabajen en departamentos cuyo presupuesto sea mayor de . /* Sin subconsulta */. SELECT , Apellidos FROM EMPLEADOS INNER JOIN DEPARTAMENTOS. ON = AND > 60000. /* Con subconsulta */. SELECT nombre , Apellidos FROM EMPLEADOS. WHERE Departamento IN. (SELECT Codigo FROM DEPARTAMENTOS WHERE Presupuesto > 60000). Obtener los Datos de los departamentos cuyo presupuesto es superior al presupues- to medio de todos los departamentos. SELECT *. FROM DEPARTAMENTOS. WHERE Presupuesto >.


Related search queries