Instituto Superior Del Milagro N° 8207 Materia: Base de Datos
TRABAJO PRÁCTICO
SQL DDL
Resolver los siguientes puntos en MySQL
1. Crear la base de datos: Ventas
2. Crear las siguientes tablas dentro de la base de datos Ventas:
a. clientes{cli_id, cli_apellido, cli_nombre}
b. ventas{ven_id, cli_id FK(clientes), ven_importe}
c. productos{pro_id, pro_nombre, pro_precio_unitario}
d. detventas{ven_id FK(ventas), pro_id FK(productos), dv_cantidad}
3. Agregar a la tabla clientes la columna cli_domicilio.
4. Agregar a la tabla detventas la columna dv_precio_unitario.
5. Eliminar de la tabla ventas la columna ven_importe.
6. Crear un índice para la tabla productos según la columna pro_nombre.
7. Crear un índice para la tabla clientes según las columnas cli_apellido y cli_nombre.
8. Crear una tabla marcas{mar_id, mar_nombre}
9. Investigar la resolución de este punto. Existiendo la tabla productos, establecer la clave foránea
relacionándola con la tabla marcas a través de la columna mar_id.
10. Modificar el tipo de datos de la columna mar_nombre de la tabla marcas (por ejemplo dándole
mayor tamaño máximo).
SQL DML
Utilizando las tablas creadas previamente en el práctico anterior, resuelve los siguientes puntos para
practicar las operaciones de inserción, actualización, eliminación y consulta de datos.
1. INSERTAR DATOS:
- Inserta tres registros en la tabla `clientes`, especificando el `cli_id`, `cli_apellido`, `cli_nombre`, y
`cli_domicilio`.
- Inserta tres productos en la tabla `productos` con `pro_id`, `pro_nombre`, y `pro_precio_unitario`.
- Registra dos ventas en la tabla `ventas` indicando `ven_id` y `cli_id`.
- Añade detalles de ventas en la tabla `detventas`, incluyendo `ven_id`, `pro_id`, y `dv_cantidad`.
Ejemplo:
INSERT INTO clientes (cli_id, cli_apellido, cli_nombre, cli_domicilio)
VALUES (1, 'Pérez', 'Juan', 'Av. Siempre Viva 742'),
(2, 'García', 'María', 'Calle Falsa 123'),
(3, 'Rodríguez', 'Pedro', 'Av. Principal 456');
INSERT INTO productos (pro_id, pro_nombre, pro_precio_unitario)
VALUES (1, 'Laptop', 1500.00),
(2, 'Mouse', 25.00),
(3, 'Teclado', 45.00);
INSERT INTO ventas (ven_id, cli_id)
VALUES (1, 1),
(2, 2);
INSERT INTO detventas (ven_id, pro_id, dv_cantidad)
VALUES (1, 1, 2),
(1, 2, 1),
(2, 3, 4);
2. ACTUALIZAR DATOS:
- Actualiza la dirección del cliente con `cli_id = 2` a "Calle Nueva 456".
- Cambia el precio del producto con `pro_id = 2` a 30.00.
- Modifica la cantidad de productos en la venta con `ven_id = 1` y `pro_id = 1` a 3 unidades.
Ejemplo:
UPDATE clientes
SET cli_domicilio = 'Calle Nueva 456'
WHERE cli_id = 2;
UPDATE productos
SET pro_precio_unitario = 30.00
WHERE pro_id = 2;
UPDATE detventas
SET dv_cantidad = 3
WHERE ven_id = 1 AND pro_id = 1;
3. ELIMINAR DATOS:
- Elimina el cliente con `cli_id = 3`.
- Borra el producto con `pro_id = 3` de la tabla `productos`.
- Elimina el detalle de venta donde `ven_id = 1` y `pro_id = 2`.
Ejemplo:
DELETE FROM clientes
WHERE cli_id = 3;
DELETE FROM productos
WHERE pro_id = 3;
DELETE FROM detventas
WHERE ven_id = 1 AND pro_id = 2;
4. CONSULTAR DATOS:
- Consulta todos los registros de la tabla `clientes`.
- Selecciona el nombre y precio de todos los productos.
- Muestra las ventas realizadas junto con el nombre del cliente.
- Consulta los detalles de ventas (producto, cantidad) para la venta con `ven_id = 1`.
Ejemplo:
SELECT * FROM clientes;
SELECT pro_nombre, pro_precio_unitario FROM productos;
SELECT v.ven_id, c.cli_nombre
FROM ventas v
JOIN clientes c ON v.cli_id = c.cli_id;
SELECT p.pro_nombre, dv.dv_cantidad
FROM detventas dv
JOIN productos p ON dv.pro_id = p.pro_id
WHERE dv.ven_id = 1;
RESOLUCION SQL DDL
1- CREATE DATABASE VENTAS;
2-
a) Create table Clientes
(cli_id int primary key,
Cli_apellido varchar(50),
Cli_nombre varchar(50));
b)Create Table Ventas
(ven_id int primary key,
Cli_id int,
Ven_importe double);
c)Create table productos
(pro_id int primary key,
pro_nombre varchar(50),
pro_precio_unitario double);
d) create table detventas(
ven_id int,
prod_id int,
primary key(ven_id,prod_id),
dv_cantidad int,
foreign key(ven_id) references Ventas(ven_id),
foreign key(prod_id) references productos(pro_id));
3- Alter table clientes add column cli_domicilio varchar(50);