11/23/2023

Programación POO

Guía en PDF 






/* CREACION TABLAS DEL SISTEMA */
create database sistemaventas;

use sistemaventas;

create table permisos(
idPermiso int auto_increment primary key,
permiso varchar(50) not null
);

create table estados(
idEstado int auto_increment primary key,
estado boolean not null,
descripcion varchar(10) not null
);

create table proveedores(
idProveedor int auto_increment primary key,
nomProveedor varchar(100) not null,
numContacto double not null,
direccion varchar(200) not null,
email varchar(80) not null
);

create table usuarios(
idUsuario int auto_increment primary key,
nomUsuario varchar(200) not null,
usuario varchar(50) not null,
contrasena varchar(10) not null,
idPermiso int not null,
idEstado int not null
);

create table productos(
idProducto varchar(100) primary key,
nomProducto varchar(200) not null,
stock int,
precio double not null,
descripcion text,
idProveedor int not null
);

create table ventas(
idVenta varchar(20) primary key,
fechaVenta datetime,
idUsuario int,
idProductos mediumtext,
total double
);

/* LLAVES FORANEAS */

alter table productos add constraint fk_producto_proveedor foreign key (idProveedor) references proveedores(idProveedor);
alter table usuarios add constraint fk__usuario_permiso foreign key (idPermiso) references permisos(idPermiso);
alter table usuarios add constraint fk__usuario_estado foreign key (idEstado) references estados(idEstado);
alter table ventas add constraint fk__venta_usuario foreign key (idUsuario) references usuarios(idUsuario);

/* INSERT INICIALES */

insert into permisos values ('1', "Administrador");
insert into permisos values ('2', "Almacenista");
insert into permisos values ('3', "Vendedor");

insert into estados values ('1', '0', "Inactivo");
insert into estados values ('2', '1', "Activo");

insert into usuarios values ('1', "admin", "admin","admin", '1', '1');
insert into usuarios values ('2', "almacen", "almacen", "almacen", '2', '1');
insert into usuarios values ('3', "ventas", "ventas", "ventas", '3', '1');
insert into usuarios values ('4', "Laura Lopez Martinez, "lauralm", "lauralm", '3', '1');
insert into usuarios values ('5', "Luis Alvarez Morales, "luisam", "luisam", '3', '2');

insert into proveedores values ('', "Refrescos Garcia", '432424242', "Calle: Juan Num:1 Col: Centro", "ventas1@refrescosgarcia.com");
insert into proveedores values ('', "Sabritas", '4234456', "Calle: Ana Num:100 Col: Centro", "ventas5@sabritas.com");
insert into proveedores values ('', "Surtidor Farmacia", 'Surtidor Farmacia', "Calle: Obrera Num. 40 Col. Obrera", "surfarmaciaventas@surfarmacia.com");
insert into proveedores values ('', "Proveedor Dulces", '43254365467567', "Calle: Juan Gutierrez Num:10 Col. Sur", "dulceria@dulceria.com");

insert into productos values('75007614', "Refresco de Limon", '50', '10.50', "Refresco 600ml sabor limon",'1');
insert into productos values('7501557140308', "ketorolaco", '1', '80', "ketorolaco 10mg 10 tabletas",'3');

INSERT INTO ventas values (`idVenta`, `fechaVenta`, `idUsuario`, `idProductos`, `total`) VALUES
('2021-11-13 18:51:47', '2021-11-13 18:51:47', 3, '1-75007614', 15),
('2021-11-14 18:51:47', '2021-11-14 18:51:47', 3, '1-75007614', 15),
('2021-11-15 18:51:47', '2021-11-15 18:51:47', 1, '3-75007614', 45),
('2021-11-17 15:32:44', '2021-11-17 15:32:44', 4, '2-7501557140308,1-75007614', 175),
('2021-11-19 10:45:46', '2021-11-19 10:45:46', 1, '4-75007614,5-7501557140308', 460);

/* PROCEDIMIENTOS ALMACENADOS */

/* ESTADOS */
DELIMITER $$
CREATE PROCEDURE ObtenerEstados()
BEGIN
SELECT * 
FROM estados;
END $$


/* PERMISOS */
DELIMITER $$
CREATE PROCEDURE ObtenerPermisos()
BEGIN
SELECT *
FROM permisos;
END $$

/* USUARIOS */
DELIMITER $$
CREATE PROCEDURE ObtenerUsuarios()
BEGIN
SELECT *
FROM usuarios;
END

DELIMITER $$
CREATE PROCEDURE BuscarUsuario(IN usuario varchar(200))
BEGIN
SELECT *
FROM usuarios
WHERE nomUsuario LIKE CONCAT(usuario,'%');
END

DELIMITER $$
CREATE PROCEDURE InsertarUsuario(IN nomUsuario varchar(200), usuario varchar(50), contrasena varchar(10), idPermiso int, idEstado int)
BEGIN
INSERT INTO usuarios (nomUsuario, usuario, contrasena, idPermiso, idEstado)
VALUES (nomUsuario, usuario, contrasena, idPermiso, idEstado);
END

DELIMITER $$
CREATE PROCEDURE ActualizarUsuario(IN id int, nomUsuario varchar(200), usuario varchar(50), contrasena varchar(10), idPermiso int, idEstado int)
BEGIN
UPDATE usuarios 
SET nomUsuario=nomUsuario, usuario=usuario, contrasena=contrasena, idPermiso=idPermiso, idEstado=idEstado
WHERE idUsuario=id;
END

/* PROVEEDORES */
DELIMITER $$
CREATE PROCEDURE ObtenerProveedores()
BEGIN
SELECT *
FROM proveedores;
END

DELIMITER $$
CREATE PROCEDURE BuscarProveedor(IN proveedor varchar(100))
BEGIN
SELECT *
FROM proveedores
WHERE nomProveedor LIKE CONCAT(proveedor,'%');
END

DELIMITER $$
CREATE PROCEDURE InsertarProveedor(IN nomProveedor varchar(100), numContacto double, direccion varchar(200), email varchar(80))
BEGIN
INSERT INTO proveedores (nomProveedor, numContacto, direccion, email)
VALUES (nomProveedor, numContacto, direccion, email);
END

DELIMITER $$
CREATE PROCEDURE ActualizarProveedor(IN id int, nomProveedor varchar(100), numContacto double, direccion varchar(200), email varchar(80))
BEGIN
UPDATE proveedores 
SET nomProveedor=nomProveedor, numContacto=numContacto, direccion=direccion, email=email
WHERE idProveedor=id;
END

/* PRODUCTOS */
DELIMITER $$
CREATE PROCEDURE ObtenerProductos()
BEGIN
SELECT prod.*, prov.nomProveedor
FROM productos prod
INNER JOIN proveedores prov ON prod.idProveedor=prov.idProveedor;
END

DELIMITER $$
CREATE PROCEDURE InsertarProducto(IN idProducto int, nomProducto varchar(200), stock int, precio double, descripcion text, idProveedor int)
BEGIN
INSERT INTO productos (idProducto, nomProducto, stock, precio, descripcion, idProveedor)
VALUES (idProducto, nomProducto, stock, precio, descripcion, idProveedor);
END

DELIMITER $$
CREATE PROCEDURE ActualizarProducto(IN id int, nomProducto varchar(200), stock int, precio double, descripcion text, idProveedor int)
BEGIN
UPDATE productos 
SET nomProducto=nomProducto, stock=stock, precio=precio, descripcion=descripcion, idProveedor=idProveedor
WHERE idProducto=id;
END

DELIMITER $$
CREATE PROCEDURE BuscarProducto(IN producto varchar(200))
BEGIN
SELECT prod.*, prov.nomProveedor
FROM productos prod
INNER JOIN proveedores prov ON prod.idProveedor=prov.idProveedor
WHERE idProducto LIKE CONCAT(producto,'%') OR nomProducto LIKE CONCAT(producto, '%');
END

DELIMITER $$
CREATE PROCEDURE BuscarProductoVenta(IN codigo varchar(200))
BEGIN
SELECT idProducto, nomProducto, stock, precio, descripcion
FROM productos
WHERE idProducto LIKE CONCAT(codigo,'%');
END

DELIMITER $$
CREATE PROCEDURE ObtenerNombreProducto(IN codigo varchar(200))
BEGIN
SELECT idProducto, nomProducto, descripcion
FROM productos
WHERE idProducto LIKE CONCAT(codigo,'%');
END

/* VENTAS */
DELIMITER $$
CREATE PROCEDURE InsertarVenta(IN idVenta varchar(20), fechaVenta datetime, idUsuario int, idProductos mediumtext, total double)
BEGIN
INSERT INTO ventas(idVenta, fechaVenta, idUsuario, idProductos, total)
VALUES (idVenta, fechaVenta, idUsuario, idProductos, total);
END

DELIMITER $$
CREATE PROCEDURE ActualizarStock(IN codigo varchar(100), cantidad int)
BEGIN
UPDATE productos
SET stock=stock-cantidad
WHERE idProducto=codigo;
END

/* REPORTES */
DELIMITER $$
CREATE PROCEDURE ObtenerVentas(IN fechaInicial varchar(20), fechaFinal varchar(20))
BEGIN
SELECT ventas.*, usuarios.nomUsuario 
FROM ventas 
INNER JOIN usuarios ON ventas.idUsuario=usuarios.idUsuario
WHERE idVenta BETWEEN (fechaInicial) AND (fechaFinal);
END



/* PROCEDIMIENTO ALMACENADO LOGIN */
DELIMITER $$
CREATE PROCEDURE LoginUsuario(IN user varchar(50), pass varchar(10))
BEGIN
SELECT *
FROM usuarios
WHERE usuarios.usuario=user AND usuarios.contrasena=pass;
END










Los nombre de los Complementos u objetos utilizados











https://www.youtube.com/watch?v=m_ZB6CMYL_g&list=PLGbc7KJL6WyJQsow8WHFL3E64DFBHeGyd

11/15/2023

Comandos básicos de SQL




Indice del Articulo

 Al momento de crear y administrar Bases de Datos con código SQL necesitamos hacer uso de comandos para acceder y manipular datos, por lo tanto, es necesario conocer y estudiar dichas instrucciones, ya que serán la base para que aprendamos código SQL y por consiguiente aprendamos la implementación de las operaciones básicas de Sql es decir: crearactualizareliminar manipular las bases de datos en Sql Server o MySQL.


SQL (Structured Query Language) es un lenguaje de programación utilizado para gestionar y manipular bases de datos relacionales.


Lista de comandos SQL para Sql Server y MySQL

A continuación veremos los principales comandos SQL utilizados durante la administración de las Bases de Datos y conocerás para qué sirven:

  • SELECT: Se utiliza para recuperar datos de una tabla vista.
  • INSERT: Permite agregar nuevos registros a una tabla.
  • UPDATE: Utilizado para modificar registros existentes en una tabla.
  • DELETE: Sirve para eliminar registros de una tabla que cumplan ciertas condiciones.
  • CREATE TABLE: Crea una nueva tabla en la base de datos, especificando las columnas y sus tipos de datos.
  • ALTER TABLE: Modifica una tabla existente, permitiendo agregar, modificar o eliminar columnas.
  • DROP TABLE: Elimina una tabla y todos sus datos de la base de datos de forma permanente.
  • CREATE DATABASE: Crea una nueva base de datos en el servidor de bases de datos.
  • USE DATABASE: Selecciona una base de datos específica para trabajar en ella.
  • ORDER BY: Se utiliza para ordenar los resultados de una consulta en función de una o más columnas.
  • GROUP BY: Agrupa filas basadas en los valores de una columna y se utiliza comúnmente con funciones de agregación como COUNT, SUM, AVG, etc.
  • JOIN: Combina filas de dos o más tablas basadas en una columna común.
  • WHERE: Se utiliza para aplicar condiciones a las filas que se seleccionarán en una consulta.
  • AND, OR: Operadores lógicos utilizados en combinación con la cláusula WHERE para crear condiciones más complejas.
  • ORDER BY: Se utiliza para ordenar los resultados de una consulta en función de una o más columnas, ya sea de manera ascendente o descendente.
  • LIMIT: Limita el número de filas recuperadas en una consulta.
  • DISTINCT: Se utiliza para eliminar duplicados de los resultados de una consulta.
  • HAVING: Funciona como una extensión de GROUP BY y se utiliza para filtrar grupos basados en condiciones de agregación.
  • UNION: Combina los resultados de dos o más consultas en un solo conjunto de resultados.
  • CREATE INDEX: Crea un índice en una o más columnas de una tabla para mejorar la velocidad de las consultas.
  • DROP INDEX: Elimina un índice de una tabla.
  • GRANT: Concede privilegios o permisos a usuarios en la base de datos.
  • REVOKE: Revoca privilegios previamente concedidos a usuarios en la base de datos.
  • TRANSACTION: Inicia, confirma o deshace una transacción en la base de datos.
  • COMMIT: Confirma una transacción, guardando los cambios en la base de datos.
  • ROLLBACK: Deshace una transacción, revirtiendo los cambios no confirmados.

Comandos sql para manipular Datos

SELECT es utilizado para recuperar datos de una o más tablas, en otras palabras, nos permite hacer consultas de los registros de las tablas.

INSERT es utilizado añadir o insertar registros a una tabla creada previamente, su complemento es Insert into.

UPDATE es utilizado para modificar los datos de un conjunto de registros existentes en una tabla

DELETE es utilizado para eliminar o borrar todo o una parte de los datos de la tabla indicada por el argumento especificado después de la palabra clave FROM.

TRUNCATE es utilizado para borrar todos los registros de una tabla, pero no la tabla, es decir que quedaría una tabla vacía.

Clausulas básicas

Las cláusulas son condiciones y las utilizamos para especificar los datos que deseamos seleccionar o manipular.

FROM se utiliza para especificar la tabla de la cual se van a consultar los registros

GROUP BY se utiliza para separar en grupos específicos los registros consultados.

ORDER BY  se utiliza para ordenar los registros seleccionados tomando en cuenta los parámetros que le indiquemos.

WHERE Se utilizar para determinar los registros seleccionados con la cláusula FROM

HAVING es parecida a WHERE, ya que determina qué registros se seleccionan. Cuando los registros se han agrupado utilizando GROUP BY, la cláusula HAVING determina cuáles de ellos se van a mostrar.

Comandos para la cláusula Select

AVG Se utiliza para determinar el promedio de los registros de un campo determinado, en una tabla especifica.

COUNT Se utiliza para devolver el número de registros que se muestran en una consulta realizada.

SUM Se utiliza para devolver la suma de todos los registros de un campo especifico, dentro de una tabla.

MAX Se utiliza para devolver el registro mayor o cantidad mayor de un campo especifico, dentro de una tabla.

MIN Se utiliza para devolver el registro menor o cantidad menor de un campo especifico, dentro de una tabla.

Todos las instrucciones sql vistas anteriormente son los mas usados, sin embargo es importante tener claro que deben ser complementados con ciertas palabras reservadas, por lo tanto es importante conocer la sintaxis para cada una de las acciones que deseamos realizar en nuestra Base de Datos. Te invito a que continúes aprendiendo en las diferentes categorías de este sitio web


Investiga  

Índice para evaluación 


Definiciones de base de datos
Que es un Registro en Base de Datos
Que es un campo en Base de Datos
Que es una llave primaria en Base de Datos
Que es un atributo en Base de Datos
Que es una entidad en Base de Datos
Relaciones en Base de Datos
Modelo relacional en Base de Datos
Modelo entidad relación en Base de Datos
Que es una consulta en Base de Datos
Que es un dato en base de datos
Qué es una llave foránea en base de datos
Tipos de datos en base de datos
Que es un formulario en base de datos
Que es un informe en base de datos
Que es una transacción en base de datos

https://www.ajpdsoft.com/modules.php?name=News&file=print&sid=629

Glosario de Windows

Computadora:  Es un aparato electrónico, capaz de procesar cualquier tipo de información, de forma rápida y eficiente. La cual es presenta...