Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Estructura de bases de datos para un sistema de ventas, Ejercicios de Programación de Bases de Datos

La estructura de bases de datos para un sistema de ventas, incluyendo tablas como cliente, compra, cuenta2, lista_compras, personas, productos, proveedor y vendedor. Se detallan las columnas de cada tabla, las restricciones y los disparadores que se utilizan para actualizar la información de las tablas. Además, se muestra cómo se relacionan las tablas entre sí.

Tipo: Ejercicios

2021/2022

Subido el 26/02/2024

erika-mariana-carvajal-soriano
erika-mariana-carvajal-soriano 🇲🇽

2 documentos

1 / 9

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
-- Volcado SQL de phpMyAdmin
-- versión 5.1.1
-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1:3306
-- Tiempo de generación: 25-01-2023 a las 17:02:36
-- Versión del servidor: 5.7.36
-- Versión de PHP: 7.4.26
ESTABLECER SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
INICIAR TRANSACCIÓN;
ESTABLECER zona_horaria = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS
*/;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 ESTABLECER NOMBRES utf8mb4 */;
--
-- Base de datos: `tienda`
--
-------------------------------------------------- --------
--
-- Estructura de tabla para la tabla `cliente`
--
DROP TABLE SI EXISTE `cliente`;
CREAR TABLA SI NO EXISTE `cliente` (
`id_persona` int(11) NO NULO,
CLAVE PRIMARIA (`id_persona`)
) MOTOR = InnoDB JUEGO DE CARACTERES PREDETERMINADO = latin1;
--
-- Volcado de datos para la tabla `cliente`
--
INSERTAR EN VALORES `cliente` (`id_persona`)
(1);
-------------------------------------------------- --------
--
-- Estructura de tabla para la tabla `compra`
--
pf3
pf4
pf5
pf8
pf9

Vista previa parcial del texto

¡Descarga Estructura de bases de datos para un sistema de ventas y más Ejercicios en PDF de Programación de Bases de Datos solo en Docsity!

-- Volcado SQL de phpMyAdmin -- versión 5.1. -- https://www.phpmyadmin.net/ -- -- Servidor: 127.0.0.1: -- Tiempo de generación: 25-01-2023 a las 17:02: -- Versión del servidor: 5.7. -- Versión de PHP: 7.4. ESTABLECER SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; INICIAR TRANSACCIÓN; ESTABLECER zona_horaria = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /; /!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS /; /!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION /; /!40101 ESTABLECER NOMBRES utf8mb4 */; -- -- Base de datos: tienda --


-- -- Estructura de tabla para la tabla cliente -- DROP TABLE SI EXISTE cliente; CREAR TABLA SI NO EXISTE cliente ( id_persona int(11) NO NULO, CLAVE PRIMARIA (id_persona) ) MOTOR = InnoDB JUEGO DE CARACTERES PREDETERMINADO = latin1; -- -- Volcado de datos para la tabla cliente -- INSERTAR EN VALORES cliente (id_persona) (1);


-- -- Estructura de tabla para la tabla compra --

DROP TABLE SI EXISTE compra; CREAR TABLA SI NO EXISTE compra ( no_compra int(11) NO NULO, id_cliente int(11) POR DEFECTO NULO, fecha fecha DEFAULT NULL, total_compra flotante DEFAULT NULL, CLAVE PRIMARIA (no_compra), CLAVE id_cliente (id_cliente) ) MOTOR = InnoDB JUEGO DE CARACTERES PREDETERMINADO = latin1; -- -- Volcado de datos para la tabla compra -- INSERTAR EN compra (no_compra, id_cliente, fecha, total_compra) VALORES (1, 1, '2022-02-02', 0), (2, 1, '2021-09-08', 0), (3, 1, '2003-09-09', 0), (4, 1, '2002-01-05', 0), (5, 1, '2012-01-05', 24.9); -- -- Disparadores compra -- SOLTAR GATILLO SI EXISTE inicio_compra; DELIMITADOR $$ CREAR DISPARADOR inicio_compra ANTES DE INSERTAR EN compra PARA CADA FILA COMIENZO Establecer new.total_compra=0; Fin $$ DELIMITADOR ;


-- -- Estructura de tabla para la tabla cuenta -- DROP TABLE SI EXISTE cuenta; CREAR TABLA SI NO EXISTE cuenta ( id int(11) NO NULO, correo varchar(50) POR DEFECTO NULO, mancha contraseña, CLAVE PRIMARIA (id) ) MOTOR = MyISAM JUEGO DE CARACTERES PREDETERMINADO = latin1;

SOLTAR TABLA SI EXISTE lista_compras; CREAR TABLA SI NO EXISTE lista_compras ( no_compra int(11) NO NULO, id_producto int(11) NO NULO, cantidad int(11) DEFAULT NULL, total flotante DEFAULT NULL, CLAVE PRIMARIA (no_compra,id_producto), CLAVE id_producto (id_producto) ) MOTOR = InnoDB JUEGO DE CARACTERES PREDETERMINADO = latin1; -- -- Volcado de datos para la tabla lista_compras -- INSERTAR EN lista_compras (no_compra, id_producto, cantidad, total) VALORES (1, 1, 10, 124,5), (2, 1, 2, 24.9), (3, 1, 2, 24.9), (4, 1, 2, 24.9), (5, 1, 2, 24.9); -- -- Disparadores lista_compras -- SOLTAR GATILLO SI EXISTE actualiza_compra1; DELIMITADOR $$ CREAR DISPARADOR actualiza_compra1 DESPUÉS DE INSERTAR EN lista_compras PARA CADA FILA COMIENZO DECLARAR flotación total; seleccione total en ntotal de lista_compras donde no_compra=new.no_compra; actualizar compra set total_compra=ntotal donde no_compra=new.no_compra; Fin $$ DELIMITADOR ; SOLTAR GATILLO SI EXISTE actualiza_compra2; DELIMITADOR $$ CREAR DISPARADOR actualiza_compra2 DESPUÉS DE ACTUALIZAR EN lista_compras PARA CADA FILA COMIENZO DECLARAR nprecio flotante; SELECT precio_venta en nprecio de productos donde id=new.id_producto; UPDATE compra SET total_compra=new.cantidad*nprecio donde compra.no_compra=new.no_compra; Fin $$ DELIMITADOR ; SOLTAR GATILLO SI EXISTE actualiza_monto;

DELIMITADOR $$

CREAR DISPARADOR actualiza_monto ANTES DE ACTUALIZAR EN lista_compras PARA CADA FILA COMIENZAR DECLARAR monto flotante; DECLARAR total_compra float; DECLARAR cant_productos int; SELECCIONE precio_venta EN monto de productos donde id=new.id_producto; ACTUALIZAR lista_compras set total=new.cantidadmonto donde id=new.id_producto; FIN $$ DELIMITADOR ; SOLTAR GATILLO SI EXISTE actualiza_stock; DELIMITADOR $$ CREAR DISPARADOR actualiza_stock ANTES DE ACTUALIZAR EN lista_compras PARA CADA FILA COMIENZAR ACTUALIZAR productos SET stock=stock- new.cantidad donde productos.id=new.id_producto; FIN $$ DELIMITADOR ; SOLTAR GATILLO SI EXISTE agregar_stock; DELIMITADOR $$ CREAR DISPARADOR agregar_stock ANTES DE INSERTAR EN lista_compras PARA CADA FILA COMIENZAR DECLARAR cant_productos int; SELECCIONE stock en cant_productos de productos donde id=new.id_producto; ACTUALIZAR productos set stock=cant_productos-new.cantidad donde id=new.id_producto; FIN $$ DELIMITADOR ; SOLTAR GATILLO SI EXISTE inicia_lista_compra; DELIMITADOR $$ CREAR DISPARADOR inicia_lista_compra ANTES DE INSERTAR EN lista_compras PARA CADA FILA Comenzar DECLARAR precio_producto float; select precio_venta into precio_producto from productos donde id=new.id_producto; set new.total=new.cantidadprecio_producto; FIN $$ DELIMITADOR ;


-- -- Estructura de tabla para la tabla personas --

-- Volcado de datos para la tabla productos

INSERT INTO productos (id, nombre, precio_venta, stock) VALORES (1, 'galletas', 12.45, 30);


-- -- Estructura de tabla para la tabla proveedor -- DROP TABLE SI EXISTE proveedor; CREAR TABLA SI NO EXISTE proveedor ( id int(11) NO NULO, nombre varchar(50) CONJUNTO DE CARACTERES utf8 DEFAULT NULL, direccion varchar(50) CONJUNTO DE CARACTERES utf8 DEFAULT NULL, RFC varchar(50) CONJUNTO DE CARACTERES utf8 POR DEFECTO NULO, CLAVE PRIMARIA (id) ) MOTOR = InnoDB JUEGO DE CARACTERES PREDETERMINADO = latin1;


-- -- Estructura de tabla para la tabla registro_ventas -- DROP TABLE SI EXISTE registro_ventas; CREAR TABLA SI NO EXISTE registro_ventas ( id_registro int(11) NO NULO, id_vendedor int(11) POR DEFECTO NULO, no_compra int(11) POR DEFECTO NULO, CLAVE PRIMARIA (id_registro), CLAVE id_vendedor (id_vendedor), CLAVE no_compra (no_compra) ) MOTOR = InnoDB JUEGO DE CARACTERES PREDETERMINADO = latin1;


-- -- Estructura de tabla para la tabla vendedor -- DROP TABLE SI EXISTE vendedor; CREAR TABLA SI NO EXISTE vendedor ( id_persona int(11) NO NULO, fecha_contratacion fecha DEFAULT NULL,

CLAVE PRIMARIA (id_persona) ) MOTOR = InnoDB JUEGO DE CARACTERES PREDETERMINADO = latin1; -- -- Restricciones para tablas volcadas -- -- -- Filtros para la tabla cliente -- ALTER TABLA cliente AÑADIR RESTRICCIÓN cliente_ibfk_1 CLAVE EXTRANJERA (id_persona) REFERENCIAS personas (id), AÑADIR RESTRICCIÓN cliente_ibfk_2 CLAVE EXTRANJERA (id_persona) REFERENCIAS personas (id); -- -- Filtros para la tabla compra -- ALTERAR TABLA compra AGREGAR RESTRICCIÓN compra_ibfk_1 CLAVE EXTRANJERA (id_cliente) REFERENCIAS cliente (id_persona), AÑADIR RESTRICCIÓN compra_ibfk_2 CLAVE EXTRANJERA (id_cliente) REFERENCIAS cliente (id_persona); -- -- Filtros para la tabla distribuye -- ALTER TABLA distribuye AÑADIR RESTRICCIÓN distribuye_ibfk_1 CLAVE EXTRANJERA (id_proveedor) REFERENCIAS proveedor (id), AGREGAR RESTRICCIÓN distribuye_ibfk_2 CLAVE EXTRANJERA (id_producto) REFERENCIAS productos (id); -- -- Filtros para la tabla lista_compras -- ALTERAR TABLA lista_compras AÑADIR RESTRICCIÓN lista_compras_ibfk_1 CLAVE EXTRANJERA (no_compra) REFERENCIAS compra (no_compra), AGREGAR RESTRICCIÓN lista_compras_ibfk_2 CLAVE EXTRANJERA (id_producto) REFERENCIAS productos (id); -- -- Filtros para la tabla registro_ventas -- ALTERAR TABLA registro_ventas