-- Crear la tabla "Acciones" CREATE TABLE Acciones ( idAction INT PRIMARY KEY, fecharegistro DATE, descripcion TEXT ); -- Crear la tabla "roles" CREATE TABLE roles ( id_rol INT PRIMARY KEY, fecharegistro DATE, descripcion TEXT, idAction INT REFERENCES Acciones(idAction), -- Clave foránea que referencia a la tabla Acciones activo BOOLEAN ); -- Crear la tabla "usuarios" CREATE TABLE usuarios ( idUser INT PRIMARY KEY, nombre VARCHAR(255), apellido VARCHAR(255), fecharegistro DATE, email VARCHAR(255), telefono VARCHAR(20), status VARCHAR(50), id_rol INT REFERENCES roles(id_rol) -- Clave foránea que referencia a la tabla roles ); -- Crear la tabla "moneda" CREATE TABLE moneda ( id_moneda INT PRIMARY KEY, descripcion VARCHAR(255), denominacion VARCHAR(50) ); -- Crear la tabla "tipo_gasto" CREATE TABLE tipo_gasto ( id_gasto INT PRIMARY KEY, descripcion VARCHAR(255) ); -- Crear la tabla "centro_tienda" CREATE TABLE centro_tienda ( id_centro INT PRIMARY KEY, fecharegistro DATE, nombre VARCHAR(255), descripcion TEXT, ruta VARCHAR(255), direccion VARCHAR(255), status VARCHAR(50), id_moneda INT REFERENCES moneda(id_moneda), id_gasto INT REFERENCES tipo_gasto(id_gasto) ); -- Crear la tabla "caja_tienda" CREATE TABLE caja_tienda ( id_caja INT PRIMARY KEY, id_centro INT REFERENCES centro_tienda(id_centro), descripcion TEXT, status VARCHAR(50), valor_apertura decimal (10,2), Id_moneda INT REFERENCES moneda(id_moneda) ); -- Crear la tabla "proveedores" CREATE TABLE proveedores ( idprov INT PRIMARY KEY, nombre VARCHAR(255), fecharegistro DATE, email VARCHAR(255), direccion VARCHAR(255), telefono VARCHAR(20), status VARCHAR(50), ruc VARCHAR(20), tipoempresa VARCHAR(50), nit VARCHAR(20) ); -- Crear la tabla "metodo_pago" CREATE TABLE metodo_pago ( idmtpago INT PRIMARY KEY, descripcion VARCHAR(255), status VARCHAR(50) ); -- Crear la tabla "medio_pago" CREATE TABLE medio_pago ( idmdpago INT PRIMARY KEY, descripcion VARCHAR(255), status VARCHAR(50) ); -- Crear la tabla "entfinanciera" CREATE TABLE entfinanciera ( ident INT PRIMARY KEY, descripcion VARCHAR(255), status VARCHAR(50) ); -- Crear la tabla "paises" CREATE TABLE paises ( idpais INT PRIMARY KEY, nombre VARCHAR(255), id_moneda INT REFERENCES moneda(id_moneda) ); -- Crear la tabla "ciudades" CREATE TABLE ciudades ( idcity INT PRIMARY KEY, idpais INT REFERENCES paises(idpais), depto VARCHAR(255) ); -- Crear la tabla "cajeros_empleados" CREATE TABLE cajeros_empleados ( idempl INT PRIMARY KEY, nombre VARCHAR(255), apellido VARCHAR(255), fecharegistro DATE, email VARCHAR(255), direccion VARCHAR(255), telefono VARCHAR(20), status VARCHAR(50), ruc VARCHAR(20) ); CREATE TABLE articulos ( idartc INT PRIMARY KEY, idgrart INT, idarc INT, descripcion VARCHAR(255), texto TEXT, status VARCHAR(50), ean VARCHAR(20), umb VARCHAR(50), precio DECIMAL(10, 2), moneda INT REFERENCES moneda(id_moneda) ); -- Crear la vista "asigCaja" CREATE VIEW asigCaja AS SELECT caja.id_caja AS caja, cajeros_empleados.nombre AS empleado FROM caja_tienda caja INNER JOIN cajeros_empleados ON caja.id_centro = cajeros_empleados.idempl; -- Crear la vista "deposito" CREATE VIEW deposito AS SELECT centro_tienda.id_centro, proveedores.idprov AS id_proveedor, entfinanciera.ident AS identfin, cajeros_empleados.nombre AS empleado, usuarios.nombre AS usuario FROM centro_tienda INNER JOIN proveedores ON centro_tienda.id_centro = proveedores.idprov INNER JOIN entfinanciera ON centro_tienda.id_centro = entfinanciera.ident INNER JOIN cajeros_empleados ON centro_tienda.id_centro = cajeros_empleados.idempl INNER JOIN usuarios ON centro_tienda.id_centro = usuarios.idUser; -- Crear la vista "solped" CREATE VIEW solped AS SELECT centro_tienda.nombre AS tienda, proveedores.nombre AS proveedor, articulos.descripcion AS articulo, moneda.id_moneda, moneda.descripcion FROM centro_tienda INNER JOIN proveedores ON centro_tienda.id_centro = proveedores.idprov INNER JOIN articulos ON centro_tienda.id_centro = articulos.idartc INNER JOIN moneda ON centro_tienda.id_moneda = moneda.id_moneda; -- Insertar 10 acciones en la tabla "Acciones" INSERT INTO Acciones (idAction, fecharegistro, descripcion) VALUES (1, '2023-08-01', 'Registro de ventas diario'), (2, '2023-08-02', 'Actualización de inventario'), (3, '2023-08-03', 'Reunión de equipo'), (4, '2023-08-04', 'Generación de reporte financiero'), (5, '2023-08-05', 'Creación de nuevo producto'), (6, '2023-08-06', 'Capacitación de personal'), (7, '2023-08-07', 'Mantenimiento de equipo'), (8, '2023-08-08', 'Solicitud de compra'), (9, '2023-08-09', 'Cierre de mes contable'), (10, '2023-08-10', 'Implementación de nuevo sistema'); -- Insertar 10 roles en la tabla "roles" INSERT INTO roles (id_rol, fecharegistro, descripcion, idAction, activo) VALUES (1, '2023-08-01', 'Rol de administrador', 1, true), (2, '2023-08-02', 'Rol de empleado', 2, true), (3, '2023-08-03', 'Rol de supervisor', 3, true), (4, '2023-08-04', 'Rol de ventas', 4, true), (5, '2023-08-05', 'Rol de inventario', 5, true), (6, '2023-08-06', 'Rol de contabilidad', 6, true), (7, '2023-08-07', 'Rol de compras', 7, true), (8, '2023-08-08', 'Rol de atención al cliente', 8, true), (9, '2023-08-09', 'Rol de marketing', 9, true), (10, '2023-08-10', 'Rol de desarrollo', 10, true); -- Insertar 10 usuarios en la tabla "usuarios" INSERT INTO usuarios (idUser, nombre, apellido, fecharegistro, email, telefono, status, id_rol) VALUES (1, 'Juan', 'Pérez', '2023-08-01', '[email protected]', '50761234567', 'Activo', 1), (2, 'María', 'González', '2023-08-02', '[email protected]', '50763456789', 'Activo', 2), (3, 'Luis', 'Martínez', '2023-08-03', '[email protected]', '50767890123', 'Inactivo', 3), (4, 'Ana', 'Rodríguez', '2023-08-04', '[email protected]', '50760123456', 'Activo', 4), (5, 'Carlos', 'López', '2023-08-05', '[email protected]', '50762345678', 'Activo', 5), (6, 'Marta', 'Hernández', '2023-08-06', '[email protected]', '50764567890', 'Inactivo', 1), (7, 'José', 'Díaz', '2023-08-07', '[email protected]', '50766789012', 'Activo', 2), (8, 'Laura', 'Torres', '2023-08-08', '[email protected]', '50768901234', 'Activo', 3), (9, 'David', 'Ramírez', '2023-08-09', '[email protected]', '50760123456', 'Activo', 4), (10, 'Isabel', 'Cruz', '2023-08-10', '[email protected]', '50762345678', 'Inactivo', 5); -- Insertar 10 registros en la tabla "caja_tienda" INSERT INTO caja_tienda (id_caja, id_centro, descripcion, status, Id_moneda) VALUES (1, 1, 'Caja principal', 'Activa', 1), (2, 1, 'Caja secundaria', 'Activa', 2), (3, 2, 'Caja principal', 'Inactiva', 1), (4, 2, 'Caja secundaria', 'Activa', 3), (5, 3, 'Caja única', 'Activa', 1), (6, 3, 'Caja adicional', 'Inactiva', 2), (7, 4, 'Caja principal', 'Activa', 1), (8, 4, 'Caja secundaria', 'Activa', 2), (9, 5, 'Caja única', 'Inactiva', 1), (10, 5, 'Caja adicional', 'Activa', 3); -- Insertar 10 registros en la tabla "centro_tienda" INSERT INTO centro_tienda (id_centro, fecharegistro, nombre, descripcion, ruta, direccion, status, id_moneda, id_gasto) VALUES (1, '2023-08-01', 'Tienda A', 'Descripción de Tienda A', 'Ruta 1', 'Dirección 1', 'Activo', 1, 1), (2, '2023-08-02', 'Tienda B', 'Descripción de Tienda B', 'Ruta 2', 'Dirección 2', 'Activo', 2, 2), (3, '2023-08-03', 'Tienda C', 'Descripción de Tienda C', 'Ruta 3', 'Dirección 3', 'Inactivo', 1, 1), (4, '2023-08-04', 'Tienda D', 'Descripción de Tienda D', 'Ruta 4', 'Dirección 4', 'Activo', 3, 3), (5, '2023-08-05', 'Tienda E', 'Descripción de Tienda E', 'Ruta 5', 'Dirección 5', 'Inactivo', 2, 2), (6, '2023-08-06', 'Tienda F', 'Descripción de Tienda F', 'Ruta 6', 'Dirección 6', 'Activo', 1, 3), (7, '2023-08-07', 'Tienda G', 'Descripción de Tienda G', 'Ruta 7', 'Dirección 7', 'Activo', 3, 1), (8, '2023-08-08', 'Tienda H', 'Descripción de Tienda H', 'Ruta 8', 'Dirección 8', 'Inactivo', 2, 2), (9, '2023-08-09', 'Tienda I', 'Descripción de Tienda I', 'Ruta 9', 'Dirección 9', 'Activo', 1, 3), (10, '2023-08-10', 'Tienda J', 'Descripción de Tienda J', 'Ruta 10', 'Dirección 10', 'Activo', 3, 1); -- Insertar 10 registros en la tabla "moneda" INSERT INTO moneda (id_moneda, descripcion, denominacion) VALUES (1, 'Dólar estadounidense', 'USD'), (2, 'Euro', 'EUR'), (3, 'Libra esterlina', 'GBP'), (4, 'Yen japonés', 'JPY'), (5, 'Dólar canadiense', 'CAD'), (6, 'Peso mexicano', 'MXN'), (7, 'Franco suizo', 'CHF'), (8, 'Dólar australiano', 'AUD'), (9, 'Yuan chino', 'CNY'), (10, 'Rublo ruso', 'RUB'); -- Insertar 10 registros en la tabla "tipo_gasto" INSERT INTO tipo_gasto (id_gasto, descripcion) VALUES (1, 'Gastos de nómina'), (2, 'Gastos de suministros'), (3, 'Gastos de publicidad'), (4, 'Gastos de mantenimiento'), (5, 'Gastos de alquiler'), (6, 'Gastos de viaje'), (7, 'Gastos de capacitación'), (8, 'Gastos financieros'), (9, 'Gastos de inventario'), (10, 'Otros gastos'); -- Insertar 10 registros en la tabla "proveedores" INSERT INTO proveedores (idprov, nombre, fecharegistro, email, direccion, telefono, status, ruc, tipoempresa, nit) VALUES (1, 'Proveedor A', '2023-08-01', '[email protected]', 'Dirección A', '111-1111', 'Activo', '1234567890', 'Empresa A', 'NIT-001'), (2, 'Proveedor B', '2023-08-02', '[email protected]', 'Dirección B', '222-2222', 'Activo', '9876543210', 'Empresa B', 'NIT-002'), (3, 'Proveedor C', '2023-08-03', '[email protected]', 'Dirección C', '333-3333', 'Inactivo', '5678901234', 'Empresa C', 'NIT-003'), (4, 'Proveedor D', '2023-08-04', '[email protected]', 'Dirección D', '444-4444', 'Activo', '4321098765', 'Empresa D', 'NIT-004'), (5, 'Proveedor E', '2023-08-05', '[email protected]', 'Dirección E', '555-5555', 'Activo', '5678901234', 'Empresa E', 'NIT-005'), (6, 'Proveedor F', '2023-08-06', '[email protected]', 'Dirección F', '666-6666', 'Inactivo', '9876543210', 'Empresa F', 'NIT-006'), (7, 'Proveedor G', '2023-08-07', '[email protected]', 'Dirección G', '777-7777', 'Activo', '1234567890', 'Empresa G', 'NIT-007'), (8, 'Proveedor H', '2023-08-08', '[email protected]', 'Dirección H', '888-8888', 'Activo', '4321098765', 'Empresa H', 'NIT-008'), (9, 'Proveedor I', '2023-08-09', '[email protected]', 'Dirección I', '999-9999', 'Activo', '5678901234', 'Empresa I', 'NIT-009'), (10, 'Proveedor J', '2023-08-10', '[email protected]', 'Dirección J', '000-0000', 'Inactivo', '9876543210', 'Empresa J', 'NIT-010'); -- Insertar 10 registros en la tabla "metodo_pago" INSERT INTO metodo_pago (idmtpago, descripcion, status) VALUES (1, 'Tarjeta de crédito', 'Activo'), (2, 'Transferencia bancaria', 'Activo'), (3, 'Pago en efectivo', 'Inactivo'), (4, 'Cheque', 'Activo'), (5, 'Pago móvil', 'Activo'), (6, 'Monedero electrónico', 'Inactivo'), (7, 'Pago con criptomoneda', 'Activo'), (8, 'Pago en línea', 'Activo'), (9, 'Pago con voucher', 'Activo'), (10, 'Financiamiento', 'Inactivo'); INSERT INTO medio_pago (idmdpago, descripcion, status) VALUES (1, 'Tarjeta de Crédito Visa', 'Activo'), (2, 'Tarjeta de Crédito Mastercard', 'Activo'), (3, 'Tarjeta de Débito Visa', 'Activo'), (4, 'Tarjeta de Débito Mastercard', 'Activo'), (5, 'PayPal', 'Activo'), (6, 'Apple Pay', 'Activo'), (7, 'Google Pay', 'Activo'), (8, 'Samsung Pay', 'Activo'), (9, 'Venmo', 'Activo'), (10, 'Zelle', 'Activo'); -- Insertar 10 registros en la tabla "entfinanciera" INSERT INTO entfinanciera (ident, descripcion, status) VALUES (1, 'Banco Nacional de Panamá', 'Activo'), (2, 'Banco General', 'Activo'), (3, 'Banistmo', 'Inactivo'), (4, 'Scotiabank', 'Activo'), (5, 'Banco Aliado', 'Activo'), (6, 'BBVA Colombia', 'Inactivo'), (7, 'Bancolombia', 'Activo'), (8, 'Davivienda', 'Activo'), (9, 'Banco de Bogotá', 'Activo'), (10, 'Banco Caja Social', 'Inactivo'); -- Insertar 10 registros en la tabla "paises" INSERT INTO paises (idpais, nombre, id_moneda) VALUES (1, 'Panamá', 1), (2, 'Colombia', 2), (3, 'Costa Rica', 1), (4, 'Ecuador', 2), (5, 'Guatemala', 1), (6, 'Honduras', 2), (7, 'Nicaragua', 1), (8, 'El Salvador', 2), (9, 'Venezuela', 1), (10, 'Perú', 2); -- Insertar 10 registros en la tabla "ciudades" con capitales de los países de la tabla "paises" INSERT INTO ciudades (idcity, idpais, depto) VALUES (1, 1, 'Ciudad de Panamá'), (2, 2, 'Bogotá'), (3, 3, 'San José'), (4, 4, 'Quito'), (5, 5, 'Ciudad de Guatemala'), (6, 6, 'Tegucigalpa'), (7, 7, 'Managua'), (8, 8, 'San Salvador'), (9, 9, 'Caracas'), (10, 10, 'Lima'); -- Insertar 10 registros en la tabla "cajeros_empleados" INSERT INTO cajeros_empleados (idempl, nombre, apellido, fecharegistro, email, direccion, telefono, status, ruc) VALUES (1, 'Carlos', 'Pérez', '2023-08-01', '[email protected]', 'Calle 1, Ciudad', '1111111', 'Activo', '1234567890'), (2, 'Ana', 'García', '2023-08-02', '[email protected]', 'Avenida 2, Ciudad', '2222222', 'Activo', '9876543210'), (3, 'Luis', 'Rodríguez', '2023-08-03', '[email protected]', 'Calle 3, Ciudad', '3333333', 'Inactivo', '5678901234'), (4, 'María', 'López', '2023-08-04', '[email protected]', 'Avenida 4, Ciudad', '4444444', 'Activo', '4321098765'), (5, 'Javier', 'Martínez', '2023-08-05', '[email protected]', 'Calle 5, Ciudad', '5555555', 'Activo', '5678901234'), (6, 'Laura', 'Hernández', '2023-08-06', '[email protected]', 'Avenida 6, Ciudad', '6666666', 'Inactivo', '9876543210'), (7, 'Daniel', 'Gómez', '2023-08-07', '[email protected]', 'Calle 7, Ciudad', '7777777', 'Activo', '1234567890'), (8, 'Sofía', 'Pérez', '2023-08-08', '[email protected]', 'Avenida 8, Ciudad', '8888888', 'Activo', '4321098765'), (9, 'Diego', 'Ramírez', '2023-08-09', '[email protected]', 'Calle 9, Ciudad', '9999999', 'Activo', '5678901234'), (10, 'Valeria', 'Chávez', '2023-08-10', '[email protected]', 'Avenida 10, Ciudad', '0000000', 'Inactivo', '9876543210'); -- Insertar 10 registros en la tabla "articulos" INSERT INTO articulos (idartc, idgrart, idarc, descripcion, texto, status, ean, umb) VALUES (1, 101, 1001, 'Camiseta de algodón', 'Camiseta de manga corta, color negro', 'Activo', '1234567890123', 'Unidad'), (2, 101, 1002, 'Pantalón vaquero', 'Pantalón de corte recto, color azul', 'Activo', '9876543210123', 'Unidad'), (3, 102, 1003, 'Zapatos deportivos', 'Zapatillas deportivas, tallas disponibles: 37-45', 'Activo', '5678901230123', 'Par'), (4, 103, 1004, 'Bolso de mano', 'Bolso de mano estilo tote, color beige', 'Inactivo', '4321098760123', 'Unidad'), (5, 102, 1005, 'Sandalias de cuero', 'Sandalias de cuero genuino, colores surtidos', 'Activo', '5678901234123', 'Par'), (6, 104, 1006, 'Reloj de pulsera', 'Reloj *****ógico con correa de acero inoxidable', 'Activo', '9876543215123', 'Unidad'), (7, 101, 1007, 'Vestido floral', 'Vestido de flores con cinturón, diseño primaveral', 'Activo', '1234567896123', 'Unidad'), (8, 103, 1008, 'Cartera de cuero', 'Cartera de cuero genuino, varios compartimentos', 'Activo', '5678901237123', 'Unidad'), (9, 102, 1009, 'Tenis casuales', 'Tenis de lona con suela de goma, color blanco', 'Inactivo', '4321098768123', 'Par'), (10, 101, 1010, 'Blusa estampada', 'Blusa de manga larga con estampado floral', 'Activo', '9876543219123', 'Unidad'); -- Info asignacion de cajeros a caja DELIMITER // CREATE PROCEDURE ObtenerInfoCajerosCajas() BEGIN SELECT cajeros_empleados.nombre AS cajero, centro_tienda.nombre AS tienda, caja_tienda.descripcion AS caja FROM cajeros_empleados JOIN caja_tienda ON cajeros_empleados.idempl = caja_tienda.id_caja JOIN centro_tienda ON caja_tienda.id_centro = centro_tienda.id_centro; END; // DELIMITER ; DELIMITER // CREATE PROCEDURE ObtenerInfoProveedoresPorTipoEmpresa(IN tipo_empresa_param VARCHAR(50)) BEGIN SELECT proveedores.idprov, proveedores.nombre, proveedores.tipoempresa, proveedores.status FROM proveedores WHERE proveedores.tipoempresa = tipo_empresa_param; END; // DELIMITER ; show tables; select *from asigCaja; select *from deposito; select *from solped; CALL ObtenerInfoCajerosCajas(); CALL ObtenerInfoProveedoresPorTipoEmpresa('Empresa A'); select * from caja_tienda;
Write, Run & Share MySQL queries online using OneCompiler's MySQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for MySQL. Getting started with the OneCompiler's MySQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose language as 'MySQL' and start writing queries to learn and test online without worrying about tedious process of installation.
MySQL is a open-source, free and very popular relational database management system which is developed, distributed and supported by Oracle corporation.
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
....);
CREATE TABLE EMPLOYEE (
empId INTEGER PRIMARY KEY,
name TEXT NOT NULL,
dept TEXT NOT NULL
);
ALTER TABLE Table_name ADD column_name datatype;
INSERT INTO EMPLOYEE VALUES (0001, 'Dave', 'Sales');
TRUNCATE table table_name;
DROP TABLE table_name;
RENAME TABLE table_name1 to new_table_name1;
--Line1;
/* Line1,
Line2 */
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
Note: Column names are optional.
INSERT INTO EMPLOYEE VALUES (0001, 'Ava', 'Sales');
SELECT column1, column2, ...
FROM table_name
[where condition];
SELECT * FROM EMPLOYEE where dept ='sales';
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
UPDATE EMPLOYEE SET dept = 'Sales' WHERE empId='0001';
DELETE FROM table_name where condition;
DELETE from EMPLOYEE where empId='0001';
CREATE INDEX index_name on table_name(column_name);
CREATE UNIQUE INDEX index_name on table_name(column_name);
DROP INDEX index_name ON table_name;
Creating a View:
CREATE VIEW View_name AS
Query;
SELECT * FROM View_name;
ALTER View View_name AS
Query;
DROP VIEW View_name;
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW [trigger_order] trigger_body
/* where
trigger_time: { BEFORE | AFTER }
trigger_event: { INSERT | UPDATE | DELETE }
trigger_order: { FOLLOWS | PRECEDES } */
DROP TRIGGER [IF EXISTS] trigger_name;
CREATE PROCEDURE sp_name(p1 datatype)
BEGIN
/*Stored procedure code*/
END;
CALL sp_name;
DROP PROCEDURE sp_name;
SELECT * FROM TABLE1 INNER JOIN TABLE2 where condition;
SELECT * FROM TABLE1 LEFT JOIN TABLE2 ON condition;
SELECT * FROM TABLE1 RIGHT JOIN TABLE2 ON condition;
SELECT select_list from TABLE1 CROSS JOIN TABLE2;