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;
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;
No hay comentarios.:
Publicar un comentario