Está en la página 1de 25

Cuadernillo de

sentencias DDL

Zapaterías LEÓN.

Espinoza González Luis Angel


García Ramírez Alex Eduardo
Ney Villegas Angel Emilio
EVN-204
Caso de estudio:
Venta de calzado
Zapateria

2
ZAPATERÍA
3
ZAPATERÍA
Tabla: Calzado
Tabla: Marca
Clave
Código de marca
Nombre
Nombre
Descripción
Tipo o Categoría
Talla
idMarca
Color
Genero
Stock disponible
Temporada de
lanzamiento:
Otoño/Invierno

Subcategoría

Instrucciones:
4
ZAPATERÍA
1.-Crea las tablas correspondientes y su relación.

2.-Considcera a todos los datos como requeridos para definir las restricciones de columna excepto
que el ingreso de la Temporada de lanzamiento que puede ser opcional (estar vacía/NULL).
Los datos de tipo alfanuméricos pueden ser VARCHAR(25), excepto la descripción que podrá ser
de VARCHAR(50). Las claves primarias deben ser autoincrementables. El Stock puede ser entero y
la talla de tipo flotante.

5
ZAPATERÍA
3.-Agrega el precio de lista en la tabla de calzado de tipo float.

4.-Agrega también el precio de mayoreo en la tabla de calzado de tipo float.

6
ZAPATERÍA
5.-Agrega la columna altura del tacon en la tabla de calzado de tipo float.

6.-Agrega fabricante y país de fabricante en la tabla marca VARCHAR(25)

7
ZAPATERÍA
7.-Elimina altura del tacon y Subcategoria en la tabla Fabricante

8.-Muestra las tablas y la estructura de cada tabla

8
ZAPATERÍA
9.-Obten el modelo relacional

10. Crea el diagrama ER correspondiente.

9
ZAPATERÍA
Proyecto
SEGUNDA PARTE.
Para concluir tu proyecto realiza lo siguiente:
I. Crea las siguientes tablas utilizando su mejor criterio para decidir el tipo de dato de cada
columna.
I.I Crea la tabla Cliente
ClaveCliente PK, Autoincremental, not NULL
Nombre not NULL
ApellidoPaterno not NULL
ApellidoMaterno not NULL
Telefono NULL
RFC not NULL
Correo NULL
TipoCliente not NULL
CategoriaCliente not NULL
Restricciones de dominio:
TipoCliente: Persona Moral, Persona fisica.
CategoriaCliente: Individual/minorista/mayorista

10
ZAPATERÍA
I.2.-Crea la tabla Empleado.
IdEmpleadoMostrado PK, Autoincremental, not NULL
r
Nombre not NULL
ApellidoPaterno not NULL
ApellidoMaterno not NULL
FechaContratacion Not NULL
CURP not NULL
Correo NULL
Turno NULL
Puesto not NULL
Restricciones de dominio
Turno: Matutino, Despertino, Sabatino.
Puesto: Vendedor de mostrador, Promotor, Encargado, Jefe de Marca.

11
ZAPATERÍA
I.3.-Crea la tabla Venta
FolioVenta Llave primaria (PK), Autoincremental, not NULL
Fecha not NULL
Hora de la venta
ClaveCliente FK, not NULL
TipoPago not NULL
IdEmpleadoMostrador FK, not NULL
TipoVenta
Restricciones de Integridad Referencial:
Recuerda, siempre, siempre y siempre que solo puedes registrar como ClaveCliente una clave que haya
sido agregada a la tabla Cliente. No puedes ingresar una ClaveCliente que no exista en la tabla Cliente.
Restricciones de Integridad Referencial:
Recuerda, siempre, siempre y siempreque solo puedes registrar como IdEmpleadoMostrador una clave que
haya sido agregada a la tabla Empleado. No puedes ingresar un IdEmpleadoMostrador que no exista en la
tabla Empleado.
Restricciones de dominio:
TipoPago: Tarjeta/Efectivo/Transferencia Bancaria/cheque al portador
TipoVenta: Individual/minorista/mayorista

II. Inserta los siguientes datos:

12
ZAPATERÍA
a) Inserta 10 zapatos: 5 de dama y 5 de caballero (Asegura por favor que sea de diferentes
tipos: tenis, botas, zapatillas, zapato formal, tenis depotivo, etc). Usa datos reales de
calzado.
b) Inserta 5 marcas diferentes (usa marcas reales).
c) Inserta 10 clientes: 2 minoristas, 5 individuales y 5 mayoristas. Asegura que los mayoristas
sean del TipoCliente Persona Moral.
d) Inserta 6 empleados: 3 Vendedores de mostrador, 1 Promotor, 1 Encargado de área, 1 Jefe
de Marca.

III.-Ahora, crea la tabla DetalleVenta

FolioVenta FK, not NULL (como es llave foráneas no debes configurar la


restricción de autoincremental)
ClaveZapato FK, not NULL (como es llave foráneas no debes configurar la
restricción de autoincremental)
Cantidad not NULL
PrecioUnitario not NULL
Color NULL
Talla NULL

13
ZAPATERÍA
IV.- Registra 5 ventas. De cada venta asegura por lo menos en detalle de Venta agregar 3 tipos
de zapatos en diferentes cantidades.

Ejemplo del registro de una venta:


Valores
FolioVenta Recuerda que no necesitas registrar al Folio de Venta
porque Autoincrementa.
Fecha 2023/04/11
Hora de la venta 11:25
ClaveCliente 1
TipoPago Transferencia Bancaria
IdEmpleadoMostrador 1
TipoVenta Mayorista

INSERT INTO Venta (Fecha, HoraVenta, ClaveCliente, TipoPago, IdEmpleadoMostrador,


TipoVenta)
VALUES
('2023-04-11', '11:25:00', 1, 'Transferencia Bancaria', 1, 'Mayorista'),
('2023-04-11', '12:30:00', 2, 'Efectivo', 2, 'Individual'),
('2023-04-11', '13:45:00', 3, 'Tarjeta', 3, 'Minorista'),
('2023-04-11', '14:15:00', 4, 'Cheque al portador', 4, 'Minorista'),
('2023-04-11', '15:00:00', 5, 'Efectivo', 5, 'Individual');

14
ZAPATERÍA
Restricciones de Integridad Referencial:
Recuerda, siempre, siempre y siempre; que solo puedes registrar como ClaveCliente una clave
que haya sido agregada previamente a la tabla Cliente. No puedes ingresar una ClaveCliente que
no exista en la tabla Cliente ya que esto te generará un error.
Restricciones de Integridad Referencial:
Recuerda, siempre, siempre y siempre que solo puedes registrar como IdEmpleadoMostrador
una clave que haya sido agregada previamente a la tabla Empleado. No puedes ingresar un
IdEmpleadoMostrador que no exista en la tabla Empleado ya que esto te generará un error.

Ejemplo del registro del Detalle de Venta para la Venta anterior:


Talla PrecioUnitario
FolioVent
Clave Zapato Cantidad Color
a
1 1  10 Negro 24 958
1 2  25 Azul 22 368
1 3  89 Blanco 26 494

INSERT INTO Detalle_venta (Cantidad, precioUnitario, talla, clavecalzado, claveventa)


VALUES
(2, 1299.99, 6.5, 1, 1),
(1, 2499.99, 10, 2, 2),
(3, 1599.99, 7, 3, 3),
(1, 1899.99, 9.5, 4, 4),
(2, 1399.99, 8, 5, 5);

15
ZAPATERÍA
Restricciones de Integridad Referencial:
Recuerda, siempre, siempre y siempre; que solo puedes registrar como FolioVenta un folio que
haya sido agregado previamente a la tabla Venta. No puedes ingresar un FolioVenta que no exista
en la tabla Venta ya que esto te generará un error.
Restricciones de Integridad Referencial:
Recuerda, siempre, siempre y siempre que solo puedes registrar como ClaveZapato una Clave
que haya sido agregada previamente a la tabla Calzado. No puedes ingresar una ClaveZapato
que no exista en la tabla Calzado ya que esto te generará un error.
V.-Continua el proceso de inserción de para que tengan al menos registradas 8 ventas y sus
correspondientes Detalles de Ventas.

INSERT INTO Venta (Fecha, HoraVenta, ClaveCliente, TipoPago, IdEmpleadoMostrador,


TipoVenta)
VALUES
('2023-05-12', '12:25:00', 1, 'Efectivo', 1, 'Minorista'),
('2023-06-05', '14:35:00', 2, 'Efectivo', 2, 'Individual'),
('2023-07-01', '16:00:00', 3, 'Tarjeta', 3, 'Minorista');

INSERT INTO Detalle_venta (Cantidad, precioUnitario, talla, clavecalzado, claveventa)


VALUES
(3, 1588.50, 6, 6, 6),
(3, 2500.00, 9, 7, 7),
(2, 1947.95, 5, 8, 8);

16
ZAPATERÍA
TERCERA PARTE. Ahora por favor realiza lo
siguiente:.
Consultas, actualizaciones y eliminaciones a la tabla Calzado.
1) Consulta el catalogo de zapatos ordenados alfabeticamenta a-z por nombre (es requerido
que se vean todas las columnas).
SELECT * FROM calzado order by Tipo_de_Categoria DESC;

2) Consulta el catalogo de zapatos ordenados alfabeticamenta z-a por nombre (es requerido
que se vean todas las columnas).
SELECT * FROM calzado order by Tipo_de_Categoria ASC;

17
ZAPATERÍA
3) Cuenta los registros de zapatos agrupados por tipo, es requrido que se muestre en el
resultado de la consulta la columna tipo y el conteo.
SELECT Tipo_de_Categoria, COUNT(*) as total FROM calzado GROUP BY Tipo_de_Categoria;

4) Cuenta los registros de zapatos agrupados por genero, es requrido que se muestre en el
resultado de la consulta la columna genero y conteo.
SELECT Genero, COUNT(*) as total FROM calzado GROUP BY Genero;

5) Cuenta los registros de zapatos agrupados por marca, es requrido que se muestre en el
resultado de la consulta la columna marca y conteo.
SELECT nombre, COUNT(*) as total FROM Marca GROUP BY nombre;

18
ZAPATERÍA
6) Añade al Stock del zapato con clave 3 en 100 unidades a la cantidad existente (Stock
disponible= Stock disponible +100)
UPDATE calzado
SET Stock =Stock+100 WHERE Folio_Venta= 3;

7) Actualiza el Stock del zapato con clave 10 en 50 unidades menos a la cantidad existente
(Stock disponible= Stock disponible -50)
UPDATE calzado
SET Stock =Stock-50 WHERE Folio_Venta= 10;

8) Elimina de la tabla al zapato con clave 15


SELECT * FROM calzado;
DELETE FROM calzado WHERE Folio_Venta= 15;
19
ZAPATERÍA
Consultas, actualizaciones a las tablas Empleado, Cliente y Detalle de
Venta.
9) Consulta el catalogo de clientes cuyo nombre empiece con A ( requerido que se vean todas
las columnas).
SELECT * FROM cliente WHERE Nombre LIKE 'A%';

10) Muestra solo los clientes que sen del TipoCliente: Persona Moral.
SELECT * FROM cliente WHERE TipoCliente LIKE 'Persona Moral%';

11)Cuenta los cliente por CategoriaCliente: Individual / minorista / mayorista


SELECT CategoriaCliente, COUNT(*) as total FROM cliente GROUP BY CategoriaCliente;

20
ZAPATERÍA
12)Consulta en la tabla Empleado los que son del turno matutino.
SELECT * FROM empleado WHERE Turno LIKE 'Matutino%';

13)Actualiza el puesto del Encargado de área, por Jefe de Marca.


UPDATE empleado
SET Puesto= 'Jefe de Marca'
WHERE IdEmpleadoMostrador = '5';

14) Agrega la columna subtotal de tipo Float a la tabla Detalle de Venta


ALTER TABLE detalle_venta
ADD COLUMN subtotal FLOAT;

21
ZAPATERÍA
15) Calcula el subtotal en todos los registros de la tabla Detalle de Venta multiplicando el
precioProd*cantidad
UPDATE pedido_producto SET subTotal = precioProd*cantidad;
SELECT precioUnitario, Cantidad, (precioUnitario * Cantidad) AS subtotal
FROM detalle_venta;

Nota importante: para que la actualización se ejecute correctamente deshabilita la siguiente


restricción en WorkBech.

Consultas con inner Join.


16) Muestra la información del calzado con sus respectivas marcas.
SELECT calzado.Folio_Venta, calzado.nombre, marca.nombre
FROM calzado
INNER JOIN Marca ON calzado.Folio_Venta=marca.cod_marca;

22
ZAPATERÍA
17) Muestra la información de las ventas con sus respectivos clientes.
SELECT
venta.FolioVenta,venta.Fecha,venta.HoraVenta,venta.ClaveCliente,venta.TipoPago,venta.IdEmplea
doMostrador,venta.TipoVenta, cliente.Nombre
FROM venta
INNER JOIN cliente ON venta.FolioVenta= cliente.ClaveCliente;

18) Muestra la informacion de las ventas con sus respectivos detalles de venta.
SELECT venta.FolioVenta, venta.Fecha, venta.HoraVenta, venta.TipoPago, venta.TipoPago,
detalle_venta.PrecioUnitario, detalle_venta.talla
FROM Venta
INNER JOIN detalle_venta ON venta.FolioVenta = detalle_venta.claveventa;

23
ZAPATERÍA
19) Muestra la informacion de las ventas, detalles de venta y sus respectivos zapatos
SELECT v.FolioVenta, v.Fecha, v.HoraVenta, d.claveventa, d.precioUnitario, d.talla,
d.clavecalzado,d.Cantidad, c.Folio_Venta, c.nombre,c.Precio, c.Codigo_fabricante, c.Descripcion,
c.Tipo_de_Categoria,
c.Talla, c.Color, c.Genero, c.Stock, c.Temporada_Lanzamiento,c.Precio_L, c.Mayoreo
FROM Venta v
INNER JOIN detalle_venta d ON v.FolioVenta = d.claveventa
INNER JOIN Calzado c ON d.claveventa = c.Folio_Venta;

20) Consulta la informacion de una venta concreta con su detalle de venta y sus respectivos
datos de los zapatos cuando el FolioVenta sea 1.
SELECT v.FolioVenta, v.Fecha, v.HoraVenta, d.claveventa, d.precioUnitario, d.talla,
d.clavecalzado,d.Cantidad, c.Folio_Venta, c.nombre,c.Precio, c.Codigo_fabricante, c.Descripcion,
c.Tipo_de_Categoria,
c.Talla, c.Color, c.Genero, c.Stock, c.Temporada_Lanzamiento,c.Precio_L, c.Mayoreo
FROM Venta v
INNER JOIN detalle_venta d ON v.FolioVenta = d.claveventa
INNER JOIN Calzado c ON d.claveventa = c.Folio_Venta
WHERE v.FolioVenta = 1;

24
ZAPATERÍA
Obten el modelo Relacional en su versión final e incluyelo en la hoja 4.

TE DESEO ÉXITO EN
ESTE PROYECTO FINAL

25
ZAPATERÍA

También podría gustarte