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)