Práctica de Base de Datos 1

Objetivo 1: Resolver consignas en base a una hoja de cálculo.
Objetivo 2: Normalizar la base de datos.
Motor usado: Xampp
Gestor de Base de Datos utilizado: Navicat
Base de Datos: MySQL

Consignar a realizar.
1) Normalizar la tabla
2) Agregar el campo `Precio de Venta` y calcularlo según precio de costo por un 45%
3) Generar el código para saber la cantidad de productos por tipo de producto.
4) Generar el código para saber la cantidad de productos por tipo de producto y marca.
5) Generar el código para saber la cantidad de productos con un precio de venta menor a cien pesos.

https://depositfiles.org/files/xae4xopy7 https://depositfiles.org/files/6phhriiim

Código ejecutado

#antes de normalizar cambiamos los tipos de datos de la tabla
ALTER TABLE `lista de precios`
    MODIFY `lista de precios`.`PRECIO CON IVA` DECIMAL(13,2),
    MODIFY `lista de precios`.`FECHA ULTIMA ACTUALIZACIÓN` DATE,
    MODIFY `lista de precios`.UNIDAD INT(3);

#1) Normalizar la tabla, hay redundancia en el campo Marca y Categoría
#crear tablas para las marcas y las categorias
CREATE TABLE IF NOT EXISTS tmarca (
    SELECT DISTINCT Marca
        FROM `lista de precios`);
ALTER TABLE tmarca ADD COLUMN IdMarca INT PRIMARY KEY auto_increment FIRST;
CREATE TABLE IF NOT EXISTS tcategoria (
    SELECT DISTINCT CATEGORÍA
        FROM `lista de precios`);
ALTER TABLE tcategoria
     ADD COLUMN IdCategoria INT PRIMARY KEY auto_increment FIRST;
UPDATE `lista de precios` INNER JOIN tcategoria
    SET `lista de precios`.`CATEGORÍA`=tcategoria.IdCategoria
        WHERE `lista de precios`.`CATEGORÍA`=tcategoria.`CATEGORÍA`;
UPDATE `lista de precios` INNER JOIN tmarca
    SET `lista de precios`.Marca=tmarca.IdMarca
        WHERE `lista de precios`.Marca=tmarca.Marca;

#2) Agregar el campo `Precio de Venta` y calcularlo según precio de costo por un 45% (precio_de_venta=precio_de_costo*1,45)
ALTER TABLE `lista de precios`
     ADD COLUMN `Precio de Venta` DECIMAL(13,2);
UPDATE `lista de precios`
     SET `Precio de Venta`=`PRECIO CON IVA`*1.45;
#3) Generar el código para saber la cantidad de productos por tipo de producto.
SELECT COUNT(DISTINCT `CATEGORÍA`)
    FROM `lista de precios`;

#4) Generar el código para saber la cantidad de productos por tipo de producto y marca.
SELECT COUNT(DISTINCT `CATEGORÍA`)
    FROM
`lista de precios`;
SELECT COUNT(DISTINCT Marca)
     FROM `lista de precios`;

#5) Generar el código para saber la cantidad de productos con un precio de venta menor a cien pesos.
SELECT COUNT(`CÓDIGO`)
     FROM
`lista de precios`
         WHERE `Precio de Venta` BETWEEN 1 AND 100;

INDICE