0% encontró este documento útil (0 votos)
6 vistas6 páginas

Comandos SQL Esenciales en PDF

El documento proporciona una serie de comandos SQL que incluyen operaciones de selección, agregación, inserción, actualización y eliminación en bases de datos. También se abordan temas como la creación de funciones, procedimientos almacenados y triggers, así como la manipulación de fechas y la unión de tablas. Se incluyen ejemplos prácticos para ilustrar cada uno de estos conceptos en el contexto de una base de datos de productos y clientes.

Cargado por

liadorrota.mam
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas6 páginas

Comandos SQL Esenciales en PDF

El documento proporciona una serie de comandos SQL que incluyen operaciones de selección, agregación, inserción, actualización y eliminación en bases de datos. También se abordan temas como la creación de funciones, procedimientos almacenados y triggers, así como la manipulación de fechas y la unión de tablas. Se incluyen ejemplos prácticos para ilustrar cada uno de estos conceptos en el contexto de una base de datos de productos y clientes.

Cargado por

liadorrota.mam
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 DOCX, PDF, TXT o lee en línea desde Scribd

COMANDOS SQL

MEDIA
select SECCIÓN,avg(precio) AS MEDIA from PRODUCTOS
GROUP BY SECCIÓN HAVING SECCIÓN='DEPORTES' OR SECCIÓN='CERÁMICA'

MAXIMO
select SECCIÓN,max(precio)as maximo from PRODUCTOS
where SECCIÓN='confección'
group by SECCIÓN

FECHA DE HOY
select fecha,getdate()from PRODUCTOS

DIFERENCIA FECHAS
select NOMBREARTÍCULO,fecha,getdate() AS FECHA_ACTUAL,
DATEDIFF("YYYY",FECHA ,GETDATE()) AS DIFERENCIA
from PRODUCTOS

CONVERTIR FORMATO FECHA


select NOMBREARTÍCULO,CONVERT(NVARCHAR(20),fecha,103) AS
FECHA,CONVERT(NVARCHAR(20),getdate(),109) AS FECHA_ACTUAL,
DATEDIFF("YYYY",FECHA ,GETDATE()) AS DIFERENCIA
from PRODUCTOS

OPERACIONES Y REDONDEO
SELECT NOMBREARTÍCULO,PRECIO,ROUND((PRECIO*0.21),2) AS
IVA,ROUND((PRECIO*1.21),3) AS PRECIO_CON_IVA FROM PRODUCTOS

BUSCAR RELACIONANDO TABLAS


SELECT EMPRESA,UNIDADES,NOMBREARTÍCULO FROM PRODUCTOS
INNER JOIN [PRODUCTOS- PEDIDOS]
ON PRODUCTOS.CÓDIGOARTÍCULO=[PRODUCTOS- PEDIDOS].[CÓDIGO
ARTÍCULO]
INNER JOIN PEDIDOS
ON [PRODUCTOS- PEDIDOS].[NÚMERO DE PEDIDO]=PEDIDOS.[NÚMERO DE
PEDIDO]
INNER JOIN CLIENTES
ON PEDIDOS.[CÓDIGO CLIENTE]=CLIENTES.CÓDIGOCLIENTE
WHERE RESPONSABLE='ANGEL MARTÍNEZ' AND PEDIDOS.[NÚMERO DE PEDIDO]=1

Unir dos tablas


select * from PRODUCTOS where SECCIÓN='deportes'

unión

select * from productosNuevos where sección='deportes

de riesgo'

HOJA DE EJERCICIOS SQL

select dirección,teléfono,población as residencia from CLIENTES


order by POBLACIÓN desc

select población from CLIENTES


group by POBLACIÓN

select sección,avg(precio) as suma_seccion from PRODUCTOS


group by SECCIÓN

select sección,avg(precio) as media_seccion from PRODUCTOS


group by SECCIÓN having not SECCIÓN='juguetería'

select SECCIÓN, COUNT(SECCIÓN) AS CUENTA FROM PRODUCTOS


GROUP BY SECCIÓN HAVING SECCIÓN='DEPORTES'

PROPIEDAD DISTNCT(NO REPITE)

SELECT DISTINCT RESPONSABLE,EMPRESA FROM CLIENTES


INNER JOIN PEDIDOS
ON CLIENTES.CÓDIGOCLIENTE=PEDIDOS.[CÓDIGO CLIENTE]
WHERE POBLACIÓN='MADRID'

CREAR LINEA
INSERT INTO CLIENTES
(CÓDIGOCLIENTE,EMPRESA,POBLACIÓN,RESPONSABLE,HISTORIAL)
VALUES('CT90','NORAY','CADIZ','MAGICO GONZALEZ',NULL)

LINEA NUEVA CON DATOS DE OTRA LINEA


INSERT INTO CLIENTES
SELECT'CT57',EMPRESA,DIRECCIÓN,POBLACIÓN,TELÉFONO,'RAMON',HISTORIAL
FROM CLIENTES
WHERE CÓDIGOCLIENTE='CT21'

MODIFICAR ALGUN CAMPO


UPDATE CLIENTES
SET RESPONSABLE='PACO'
WHERE CÓDIGOCLIENTE='CT57'

SUBCONSULTAS
select SECCIÓN,NOMBREARTÍCULO FROM PRODUCTOS
WHERE PRECIO > (SELECT AVG(PRECIO) FROM PRODUCTOS)

SELECT * FROM PRODUCTOS


WHERE PRECIO > (SELECT MAX(PRECIO) FROM PRODUCTOS
WHERE SECCIÓN='CERÁMICA')

SELECT * FROM PRODUCTOS


WHERE PRECIO >ALL (SELECT PRECIO FROM PRODUCTOS
WHERE SECCIÓN='CERÁMICA')

SELECT * FROM PRODUCTOS


INNER JOIN [PRODUCTOS- PEDIDOS]
ON PRODUCTOS.CÓDIGOARTÍCULO=[PRODUCTOS- PEDIDOS].[CÓDIGO ARTÍCULO]
WHERE UNIDADES >20

SELECT NOMBREARTÍCULO FROM PRODUCTOS


WHERE CÓDIGOARTÍCULO IN (SELECT [CÓDIGO ARTÍCULO] FROM [PRODUCTOS-
PEDIDOS]
WHERE UNIDADES >20)

FUNCION ACTUALIZAR
update PRODUCTOS set PRECIO=precio+10
WHERE SECCIÓN='DEPORTES'

update PRODUCTOS set SECCIÓN='DEPORTIVOS'


WHERE SECCIÓN='DEPORTES'

FUNCION CREAR
SELECT * INTO [CLIENTES MADRID] FROM CLIENTES
WHERE POBLACIÓN='MADRID'

PROGRAMACION
declare @fecha nchar(25)
SET @fecha= CONVERT(NVARCHAR(20),GETDATE(),111)
PRINT 'HOY ES '+ @fecha

PROGRAMACION IF
DECLARE @EDAD INT
DECLARE @NOMBRE NVARCHAR(8)
SET @EDAD=25
SET @NOMBRE='MARCOS'
IF(@EDAD<18)
BEGIN
PRINT @NOMBRE+' ERES MAYOR DE EDAD'
END
ELSE
BEGIN
SELECT @NOMBRE+' ERES MENOR DE EDAD' AS RESULTADO
END

FUNCIONES CREARLA
CREATE FUNCTION MANOLI(@I NVARCHAR(10))
RETURNS NVARCHAR(10)
AS
BEGIN
RETURN 'HOLA ' + @I
END

LLAMARLA
PRINT [Link]('JUAN')

FUNCIONES RESULTADO TABLA


CREATE FUNCTION PAGO(@I NVARCHAR(50))
RETURNS TABLE
AS
RETURN (SELECT [FORMA DE PAGO],[NÚMERO DE PEDIDO] FROM PEDIDOS
INNER JOIN CLIENTES
ON CLIENTES.CÓDIGOCLIENTE=PEDIDOS.[CÓDIGO CLIENTE]
WHERE EMPRESA=@I)

SELECT * from [Link]('BELTRÁN E HIJOS')

function [dbo].[articulo](@i nvarchar(20))


returns table
as
return(select NOMBREARTÍCULO,CÓDIGOCLIENTE,[FORMA DE PAGO],PEDIDOS.[NÚMERO
DE PEDIDO] FROM PRODUCTOS
INNER JOIN [PRODUCTOS- PEDIDOS]
ON PRODUCTOS.CÓDIGOARTÍCULO=[PRODUCTOS- PEDIDOS].[CÓDIGO ARTÍCULO]
INNER JOIN PEDIDOS
ON [PRODUCTOS- PEDIDOS].[NÚMERO DE PEDIDO]=PEDIDOS.[NÚMERO DE PEDIDO]
INNER JOIN CLIENTES
ON PEDIDOS.[CÓDIGO CLIENTE]=CLIENTES.CÓDIGOCLIENTE
WHERE EMPRESA=@I)

SELECT * FROM ARTICULO('BELTRÁN E HIJOS')


VARIOS PARAMETROS
function [dbo].[articulo](@i nvarchar(20),@B NVARCHAR(20))
returns table
as
return(select NOMBREARTÍCULO,CÓDIGOCLIENTE,[FORMA DE PAGO],PEDIDOS.[NÚMERO
DE PEDIDO],UNIDADES FROM PRODUCTOS
INNER JOIN [PRODUCTOS- PEDIDOS]
ON PRODUCTOS.CÓDIGOARTÍCULO=[PRODUCTOS- PEDIDOS].[CÓDIGO ARTÍCULO]
INNER JOIN PEDIDOS
ON [PRODUCTOS- PEDIDOS].[NÚMERO DE PEDIDO]=PEDIDOS.[NÚMERO DE PEDIDO]
INNER JOIN CLIENTES
ON PEDIDOS.[CÓDIGO CLIENTE]=CLIENTES.CÓDIGOCLIENTE
WHERE EMPRESA=@I OR POBLACIÓN=@B)

SELECT * FROM ARTICULO('LA MODERNA','OVIEDO')

PROCEDIMIENTOS ALMACENADOS
create procedure precio(@p nvarchar(20), @pre int)
as
UPDATE PRODUCTOS
SET PRECIO='@pre'
WHERE CÓDIGOARTÍCULO='@P'

EXECUTE PRECIO AR03,300

Créate PROCEDURE [dbo].[EDAD](@NACIMIENTO DATETIME)


AS
BEGIN
DECLARE @EDAD1 NVARCHAR(25)
SET @EDAD1=DATEDIFF("D",@NACIMIENTO,GETDATE())/365;
PRINT @EDAD1
END

EXECUTE EDAD '20-11-1984'

TRIGGER
CREATE TRIGGER INSERTADO ON PRODUCTOS
FOR INSERT
AS
DECLARE @COD NVARCHAR(4)
SELECT @COD = CÓDIGOARTÍCULO FROM inserted
INSERT INTO HISTORIAL VALUES(@COD,GETDATE(),'REGISTRO
INSERTADO',SYSTEM_USER)

INSERT INTO PRODUCTOS VALUES


('AR78','FUTBOL','PIEEO','150',NULL,'TRUE','TOWN')

CREATE TRIGGER BORRADO ON PRODUCTOS


FOR DELETE
AS
DECLARE @COD NVARCHAR(4)
SELECT @COD = CÓDIGOARTÍCULO FROM deleted
INSERT INTO HISTORIAL VALUES(@COD,GETDATE(),'REGISTRO
BORRADO',SYSTEM_USER)

DELETE FROM PRODUCTOS WHERE NOMBREARTÍCULO='PAALO'

TRIGGER ACTUALIZAR ON PRODUCTOS


FOR UPDATE
AS
SET NOCOUNT ON
DECLARE @COD NVARCHAR(4)
SELECT @COD=CÓDIGOARTÍCULO FROM INSERTED
INSERT INTO HISTORIAL VALUES(@COD,GETDATE(),'ARTICULO
MODIFICADO',SYSTEM_USER)

UPDATE PRODUCTOS
SET NOMBREARTÍCULO='PALITO'
WHERE NOMBREARTÍCULO='SERRUCHO'

TRIGGER TRABAJANDO SOBRE VISTA PARA INSERTAR


EN DIFERENTES TABLAS
CREATE TRIGGER PEDIDOS ON tiendas
INSTEAD OF INSERT
AS
INSERT INTO ZARA SELECT N_ENVIO,COD_PRO,NOMBRE,CANTIDAD FROM INSERTED
WHERE DESTINO='ZARA'
INSERT INTO MAXIMO SELECT N_ENVIO,COD_PRO,NOMBRE,CANTIDAD FROM INSERTED
WHERE DESTINO='MAXIMO'
INSERT INTO SPRING SELECT N_ENVIO,COD_PRO,NOMBRE,CANTIDAD FROM INSERTED
WHERE DESTINO='SPRING'

COMPROBAR LOS TRIGGER CREADOS A UNA TABLA


SP_HELPTRIGGER PRODUCTOS

CREAR VISTA
CREATE VIEW PEPE
AS
SELECT * FROM PRODUCTOS

CREAR VISTA CON UNION PARA TABLAS


create view tiendas
as
SELECT N_ENVIO,COD_PRO,NOMBRE,CANTIDAD,'ZARA' AS DESTINO FROM ZARA
UNION ALL
SELECT N_ENVIO,COD_PRO,NOMBRE,CANTIDAD,'MAXIMO' AS DESTINO FROM MAXIMO
UNION ALL
SELECT N_ENVIO,COD_PRO,NOMBRE,CANTIDAD,'SPRING' AS DESTINO FROM SPRING

También podría gustarte