0% encontró este documento útil (0 votos)
16 vistas7 páginas

Consultas SQL para Gestión de Productos

Cargado por

casoxdeveloper2
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
16 vistas7 páginas

Consultas SQL para Gestión de Productos

Cargado por

casoxdeveloper2
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

Nota: Las tablas pueden unirse si se relacionan 2 campos de tablas diferentes, pero

de tipos iguales y longitudes iguales, y ambos son indices.

<=====CONSULTAS CON FILTROS======>

SELECT * FROM PRODUCTOS WHERE PAÍS DE ORIGEN='España'";


SELECT * FROM PRODUCTOS WHERE `NOMBRE ARTÍCULO` LIKE '%Caballero'";
SELECT * FROM PRODUCTOS WHERE `NOMBRE ARTÍCULO` LIKE 'Balón%'";
SELECT * FROM PRODUCTOS WHERE `NOMBRE ARTÍCULO` LIKE 'Ceni_ero'";

<=======IMPORTAR VOLUMEN DE DATOS A TRAVÉS DE INSTRUCCIÓN SQL==============>


CREATE TABLE PRODUCTOS2(CODIGOARTÍCULO VARCHAR(4),SECCIÓN VARCHAR(11),
NOMBREARTÍCULO VARCHAR(30));
INSERT INTO PRODUCTOS2
(CODIGOARTÍCULO,SECCIÓN,NOMBREARTÍCULO)
VALUES("AR01","DEPORTES","RAQUETA");

<============================CLAUSULA WHERE===============================>

SELECT p.Prod_Id,p.Prod_Descripcion,p.Prod_Precio,p.Prod_ProvId
FROM productos p
WHERE p.Prod_Precio>50 and (p.Prod_ProvId>10 AND p.Prod_ProvId<50)

<==Busqueda por fecha===>


SELECT *
FROM ventas v
WHERE v.Ventas_Fecha > '2018-01-02' AND v.Ventas_Fecha<'2018-01-04'

SELECT *
FROM ventas v
WHERE year(v.Ventas_Fecha)=2018

SELECT *
FROM ventas v
WHERE year(v.Ventas_Fecha)>2018

SELECT *
FROM ventas v
WHERE v.Ventas_Fecha BETWEEN '2018-01-01' AND '2018-01-03'

SELECT *
FROM ventas_detalle vd
WHERE vd.VD_ProdId=1128

<======================UNION DE TABLAS==============================>

SELECT v.Ventas_NroFactura, v.Ventas_CliId, c.Cli_RazonSocial, v.Ventas_Fecha


FROM ventas v, clientes c
WHERE v.Ventas_CliId=c.Cli_Id

SELECT
v.Ventas_NroFactura, v.Ventas_CliId, v.Ventas_Fecha,v.Ventas_Id,
c.Cli_RazonSocial,c.Cli_Id,vd.VD_VentasId,
p.Prod_Id,
pr.Prov_Id
FROM ventas v, clientes c, ventas_detalle vd, productos p, proveedores pr
WHERE v.Ventas_CliId=c.Cli_Id
AND v.Ventas_CliId>1
AND v.Ventas_Id=vd.VD_VentasId
AND p.Prod_Id=pr.Prov_Id

<======================CLUSULA ORDER BY==============================>

SELECT
v.Ventas_NroFactura, v.Ventas_CliId, v.Ventas_Fecha,v.Ventas_Id,
c.Cli_RazonSocial,c.Cli_Id,
p.Prod_Descripcion,
pr.Prov_Id

FROM ventas v, clientes c, ventas_detalle vd, productos p, proveedores pr


WHERE v.Ventas_CliId=c.Cli_Id
AND v.Ventas_CliId>1
AND v.Ventas_Id=vd.VD_VentasId
AND p.Prod_Id=pr.Prov_Id

ORDER BY v.Ventas_Fecha,p.Prod_Descripcion

<======================FUNCIONES SUM, COUNT, MAX, AVG,


MIN==============================>

• SELECT COUNT(*) AS(alias) registros FROM ventas v WHERE v.Ventas_Fecha='2018-01-


02'
• SELECT SUM(v.Ventas_Total) AS Vtaminima FROM ventas v WHERE
YEAR(v.Ventas_Fecha)=2018 AND MONTH (v.Ventas_Fecha)=01
• SELECT MIN(v.Ventas_Total) AS Vtaminima FROM ventas v WHERE
YEAR(v.Ventas_Fecha)=2018 AND MONTH (v.Ventas_Fecha)=01
• SELECT MAX(v.Ventas_Total) AS Vtaminima FROM ventas v WHERE
YEAR(v.Ventas_Fecha)=2018 AND MONTH (v.Ventas_Fecha)=01

<=========================CLAUSULA GROUP BY=============================>


Vamos a agrupar las ventas por el código de producto y de cada producto obtener la
cantidad de veces que ha sido vendido ese producto.

SELECT vd.VD_ProdId, p.Prod_Descripcion, count(*) AS ventas FROM ventas_detalle vd,


productos p
WHERE p.Prod_Id=vd.VD_ProdId
GROUP BY vd.VD_ProdId

SELECT YEAR(v.Ventas_Fecha) AS año,MONTH(v.Ventas_Fecha) AS mes,


sum(v.Ventas_Total)
AS Total FROM ventas v
GROUP BY año,mes

<=========================HAVING=============================>

SELECT YEAR(v.Ventas_Fecha) AS año,MONTH(v.Ventas_Fecha) AS mes,


sum(v.Ventas_Total)
AS Total FROM ventas v
GROUP BY año,mes
HAVING total>1000000
SELECT vd.VD_ProdId, p.Prod_Descripcion, count(*) AS ventas FROM ventas_detalle vd,
productos p
WHERE p.Prod_Id=vd.VD_ProdId
GROUP BY vd.VD_ProdId
HAVING ventas>100
ORDER BY ventas DESC

<=========================Clausula IN/NOT IN=============================>

SELECT * FROM productos p WHERE p.Prod_Id IN(4,8,10,16)

SELECT * FROM productos p WHERE p.Prod_Id NOT IN(4,8,10,16)

SELECT * FROM productos p WHERE p.Prod_Id NOT IN(SELECT DISTINCTROW


(vd.VD_ProdId)AS producto FROM ventas_detalle vd )

SELECT * FROM clientes c WHERE c.cli_id NOT IN (SELECT DISTINCTROW(v.Ventas_CliId)


FROM ventas v)

SELECT * FROM clientes c WHERE c.cli_id IN (SELECT DISTINCTROW(v.Ventas_CliId) FROM


ventas v WHERE v.Ventas_Total>1000)

<========================Clausula Like=======================================>

SELECT p.prod_id, p.prod_descripcion,p.prod_Color,p.prod_precio FROM productos p


WHERE CONCAT( p.Prod_Descripcion,p.Prod_Color) LIKE "%TARUGO%" OR p.prod_color
LIKE "%NEGRO%"

<========================Clausula Join=======================================>

SELECT * FROM productos p


JOIN ventas_detalle vd ON vd.VD_ProdId = p.Prod_Id

SELECT * FROM productos p


JOIN ventas_detalle vd ON vd.VD_ProdId = p.Prod_Id
JOIN proveedores pr ON pr.Prov_Id=p.Prod_ProvId
JOIN ventas v vd.VD_VentasId=v.Ventas_Id

SELECT * FROM productos p


JOIN ventas_detalle vd ON vd.VD_ProdId = p.Prod_Id AND vd.VD_Costo>1000
JOIN proveedores pr ON pr.Prov_Id=p.Prod_ProvId AND pr.Prov_Status=1
JOIN ventas v ON vd.VD_VentasId=v.Ventas_Id AND v.Ventas_Fecha > '2018-01-22'

SELECT * FROM productos p


JOIN ventas_detalle vd ON vd.VD_ProdId = p.Prod_Id AND vd.VD_Costo>1000
JOIN proveedores pr ON pr.Prov_Id=p.Prod_ProvId AND pr.Prov_Status=1
JOIN ventas v ON vd.VD_VentasId=v.Ventas_Id AND v.Ventas_Fecha BETWEEN '2018-
01-22' AND '2018-01-24'

SELECT v.Ventas_NroFactura, c.Cli_Id, c.Cli_RazonSocial, p.Prod_Id,


p.Prod_Descripcion FROM productos p
JOIN ventas_detalle vd ON vd.VD_ProdId = p.Prod_Id AND vd.VD_Costo>1000
JOIN proveedores pr ON pr.Prov_Id=p.Prod_ProvId AND pr.Prov_Status=1
JOIN ventas v ON vd.VD_VentasId=v.Ventas_Id AND v.Ventas_Fecha BETWEEN '2018-
01-22' AND '2018-01-24'
JOIN clientes c ON v.Ventas_CliId=c.Cli_Id
<========================Clausula Left and Right
Join=======================================>

SELECT p.Prod_Id, p.Prod_Descripcion, SUM(vd.VD_Cantidad) AS 'Unidades Vendidas'


FROM productos p
JOIN ventas_detalle vd ON p.Prod_Id=vd.VD_ProdId
GROUP BY p.Prod_Id

SELECT p.Prod_Id, p.Prod_Descripcion, SUM(vd.VD_Cantidad) AS 'Unidades Vendidas'


FROM productos p
JOIN ventas_detalle vd ON p.Prod_Id=vd.VD_ProdId
GROUP BY p.Prod_Id
ORDER BY p.Prod_Id

SELECT p.Prod_Id, p.Prod_Descripcion, SUM(vd.VD_Cantidad) AS 'Unidades Vendidas',


vd.VD_ProdId
FROM productos p
RIGHT JOIN ventas_detalle vd ON p.Prod_Id=vd.VD_ProdId
GROUP BY p.Prod_Id
ORDER BY p.Prod_Id

<========================FUNCIONES=======================================>

SELECT p.Prod_Id,p.Prod_Descripcion, IF(Prod_Status=1,'Habilitado',


'Deshabilitado') AS Estado
FROM productos p

SELECT p.Prod_Id,p.Prod_Descripcion, CASE WHEN Prod_Status=1 THEN 'Habilitado' ELSE


'Deshabilitado'
END AS Estado
FROM productos p

SELECT p.Prod_Id,p.Prod_Descripcion, CASE p.Prod_Status


WHEN 0 THEN 'DesHabilitado'
WHEN 1 THEN 'Habilitado'
WHEN 2 THEN 'Otro Estado'
END AS Estado
FROM productos p

SELECT p.Prod_Id,p.Prod_Descripcion, CASE p.Prod_Status


WHEN 0 THEN 'DesHabilitado'
WHEN 1 THEN (SELECT SUM(vd.VD_Cantidad) FROM ventas_detalle vd WHERE
vd.VD_ProdId=p.Prod_Id)
WHEN 2 THEN 'Otro Estado'
END AS Estado
FROM productos p

SELECT p.Prod_Id,p.Prod_Descripcion, CASE p.Prod_Status


WHEN 0 THEN 'DesHabilitado'
WHEN 1 THEN IFNULL((SELECT SUM(vd.VD_Cantidad) FROM ventas_detalle vd WHERE
vd.VD_ProdId=p.Prod_Id),0)
WHEN 2 THEN 'Otro Estado'
END AS Estado
FROM productos p

SELECT p.Prod_Id,p.Prod_Descripcion, CASE SUBSTR(p.Prod_Descripcion,1,1)


WHEN 'A' THEN 'LETRA A'
WHEN 'B' THEN 'LETRA B'
END AS ejercicio
FROM productos p

SELECT CURRENT_DATE;
SELECT CURRENT_TIME;
SELECT CURRENT_TIMESTAMP;
SELECT DATABASE();
SELECT CURRENT_USER;
SELECT DATEDIFF('2023-06-25','2023-01-25');
SELECT DATEDIFF(CURRENT_DATE,v.Ventas_Fecha)AS 'Antiguedad en
días',v.Ventas_NroFactura
FROM ventas v;

SELECT DAYOFWEEK(CURRENT_DATE) AS 'Día de la semana'

SELECT ADDDATE(CURRENT_DATE(),10);
SELECT CURRENT_TIMESTAMP(), ADDTIME(CURRENT_TIMESTAMP(), '[Link]');
SELECT CAST('2023-06-25' AS DATE);
SELECT CAST(12345 AS CHAR);
SELECT ADDDATE(CAST('2023-06-25' AS DATE),10);
SELECT p.Prod_Id,p.Prod_Descripcion, CHAR_LENGTH(p.Prod_Descripcion) AS largo FROM
productos p;

SELECT COMPRESS(p.Prod_Descripcion)AS comprimido FROM productos p;

SELECT UNCOMPRESS(COMPRESS(p.Prod_Descripcion)) AS original FROM productos p;

SELECT CONCAT("(",p.Prod_Id,") ",p.Prod_Descripcion," ",p.Prod_Color) AS


descripcion FROM productos p;

SELECT CONCAT_WS(" ",p.Prod_Id,p.Prod_Descripcion,p.Prod_Color) AS descripcion FROM


productos p;

SELECT CONV("10",10,2);
SELECT CONV("A",16,10);

SELECT DATE_ADD(CURRENT_DATE,INTERVAL 10 MONTH);

SELECT DATE_FORMAT('2024-08-23', '%w');

SELECT DATE_FORMAT('2024-08-23', '%W');

%Y: 4-digit año


%y: 2-digit año
%m: Mes (00..12)
%d: dia del mes(00..31)
%H: Hours (00..23)
%i: Minutes (00..59) %s: Seconds (00..59)
%p: AM or PM
%W: nombre del dia en Ingles (Sunday..Saturday)

SELECT DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);

<====================INSTRUCCIÓN INSERT============================>

INSERT INTO productos (prod_descripcion,prod_color) VALUES ('Mi Producto','Mi


Color')
<====================INSTRUCCIÓN UPDATE============================>

UPDATE productos p SET p.Prod_Descripcion='Descripción Modificada' WHERE


p.Prod_Id=6991

UPDATE productos p
SET p.Prod_Descripcion='Descripción Modificada',
p.Prod_Status=0,
p.Prod_CompraSuspendida=1

WHERE p.Prod_Id=6991

<====================INSTRUCCIÓN DELETE============================>

DELETE FROM productos p WHERE p.Prod_Id=6991

<====================SUBCONSULTAS============================>

SELECT p.Prod_Id,p.Prod_Descripcion,p.Prod_Color,
(SELECT SUM(vd.VD_Cantidad) FROM ventas_detalle vd WHERE vd.VD_ProdId=p.Prod_Id) AS
'Total Ventas'
FROM productos p

SELECT p.Prod_Id,p.Prod_Descripcion,p.Prod_Color,
(SELECT SUM(vd.VD_Cantidad) FROM ventas_detalle vd WHERE vd.VD_ProdId=p.Prod_Id) AS
'Total Ventas',
(SELECT SUM(vd.VD_Precio) FROM ventas_detalle vd WHERE vd.VD_ProdId=p.Prod_Id) AS
'Total Ventas Dinero'
FROM productos p

SELECT p.Prod_Id, p.Prod_Descripcion, p.Prod_Color


FROM productos p
JOIN
(SELECT VD_ProdId,SUM(VD_Cantidad) unidades FROM ventas_detalle
GROUP BY VD_ProdId) v ON p.Prod_Id=v.VD_ProdId AND [Link]>100

SELECT p.Prod_Id, p.Prod_Descripcion, p.Prod_Color,


(SELECT COUNT(VD_Cantidad) unidades FROM ventas_detalle
WHERE p.Prod_Id=VD_ProdId) 'Unidades Vendidas'
FROM productos p
JOIN
(SELECT VD_ProdId,SUM(VD_Cantidad) unidades FROM ventas_detalle
GROUP BY VD_ProdId) v ON p.Prod_Id=v.VD_ProdId AND [Link]>100

SELECT * FROM productos p


WHERE (SELECT SUM(VD_Cantidad) AS Cantidad FROM ventas_detalle
WHERE p.Prod_Id=VD_ProdId)>100

<================EJERCICIOS===================>

INSERT productos (Prod_Id,Prod_Descripcion,Prod_Color) VALUES (6991,"Pocillo de


flores","White")
UPDATE clientes c SET c.Cli_Estado=1 WHERE c.Cli_Id=10

UPDATE clientes c SET c.Cli_Estado=1 WHERE c.Cli_Id IN (6,20,54,56)

También podría gustarte