Práctica III Inserciones, borrados y actualizaciones

Vamos a continuar practicando el lenguaje SQL con tres nuevos tipos de consulta. inserciones, borrados y actualizaciones, para ello usaremos la base de datos clientes (click para descargar). Antes de empezar hagamos un poco de memoría:

Sabemos:

  1. Crear (CREATE table, database, view).
  2. Borrar (DROP table, database, view)
  3. Consultar (Select….from…..where….order by……groupby……having…..)
  4. Usar Join para haer consutas sonbre varías tablas.
  5. Usar funciones de grupo (SUM, MAX, MIN, COUNT, AVG….)

Como os comentaba al principio, ahora vamos a aprender a hacer inserciones, borrados y actualizaciones, sobre la base de datos clientes, pero a diferencia de cuando trabajamos con la base de datos world, la base de datos clientes esta muy mal hecha y por eso antes de empezar tenemos que arreglarla el modelo debería quedar como mínimo como se muestra en la figura:

No olvides estos consejos

  • Las cadenas de caracteres tienen que ser de un tipo apropiado para el idioma
  • Para hacer relaciones con clave foranea las tablas tienen que estar en InnoDB
  • La base de datos también tiene que ser del tipo apropiado para el idioma.
  • Algunas tablas no tienen ningún campo apropiado para usarse como clave, por tanto tendrás que crearlo
  • Para evitar problemas en un principio es recomendable usar RESTRICT tanto en borrados como en inserciones.
  • Quizas sobre alguna tabla…
  • Seguramente se podrán hacer otras mejoras al modelo…

Insert

INSERT INTO table (a,b,c) VALUES (1,2,3)
INSERT INTO EMPLEADOS (`EMP_NO`, `NOMBRE`, `APELLIDO`, `OFICIO`, `DIR`, `FECHA_ALT`, `SALARIO`, `COMISION`, `TIENDA`)
VALUES (NULL, 'Pedro', 'Rodriguez', 'Vendedor', 'Calle mira al rio 13', '2011-01-16', '1300', '10', '4444-A');

Update

UPDATE ARTICULOS SET ARTICULO = ‘Macarrones finos’ WHERE `ARTICULOS`.`ID_articulo` =1;

Delete

Delete from articulos where id_articulo=1;

Ejercicios

  1. Inserta 5 empleados
  2. Inserta 10 pedidos
  3. Sube el sueldo un 10 % a todos los empleados.
  4. Inserta un articulo nuevo, haz un pedido de este articulo y actualiza su stock.
  5. Pon a cero el stock de los macarrones y pide 600 más.
  6. Borra todos los proveedores con menos de un pedido (Cuidado, tenemos muchos proveedores sin pedidos nos quedaremos sin proveedores)
  7. Llega un regalo de otra compañia y todos los stock suben en 100 unidades.
  8. Una toRmenta arrasa el almacen y todos los stocks bajan un 70 %.
  9. A cambiado el IVA, el anterior era del 16% y ahora tenemos que aplicar un 18%.
  10. Sube 100 euros el sueldo del empleado que más pedidos tenga hechos

Método para sacar el empleado que más pedidos hace

Lo más aconsejable es utilizar una vista de esta forma:

CREATE VIEW EMPLEADO_CUENTA AS
SELECT EMPLEADO, COUNT(ID_PEDIDO) AS CUENTA FROM PEDIDOS
GROUP BY EMPLEADO;
SELECT EMPLEADO FROM EMPLEADO_CUENTA
WHERE CUENTA=(SELECT MAX(CUENTA) FROM EMPLEADO_CUENTA)
Para los que buscais una solución con una única consulta os dejo esto:
SELECT EMPLEADO FROM PEDIDOS
GROUP BY EMPLEADO
HAVING COUNT(ID_PEDIDO)=(SELECT MAX(CUENTA) FROM
(SELECT COUNT(ID_PEDIDO) AS CUENTA FROM PEDIDOS GROUP BY EMPLEADO)AUX);

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.