create database VENTAS2 on primary
(
name = VENTAS2_data,
filename = 'c:\VENTAS2.mdf',
size =5mb,
maxsize =10mb,
filegrowth=1mb
)
LOG ON
(
name = VENTAS2_log,
filename = 'c:\VENTAS2.ldf',
size = 5mb,
maxsize =10mb,
filegrowth=1mb
)
//ELIMINAR UNA BASE DE DATOS
drop database VENTAS2
//CREAR UNA TABLA EN LA BASE DE DATOS SQL
//para crear la tabla cliente debemos seleccionar la base de datos ventas y no asi la master
create table login
(
id_login int identity(1,1)not null,
id_persona int not null,
id_rol int not null,
fechareg date not null,
usuario nvarchar(50) not null,
password nvarchar(50) not null
PRIMARY KEY(id_login)
foreign key(id_rol) references rol (id_rol)
)
//ELIMINAR LA TABLA CLIENTE
drop table CLIENTE
//INSERTAR EN LAS TABLAS
INSERT INTO CLIENTE
VALUES(1,'Diego','dieguito_alcoba@hotmail.com','6137432',300)
INSERT INTO CLIENTE
VALUES(2,'Mauricio','oscarmaoal@hotmail.com','6137432',500)
INSERT INTO CLIENTE
VALUES(3,'Andrea','andrea_alcoba@hotmail.com','6137432',300)
INSERT INTO CLIENTE
VALUES(4,'Jaime','jaime_alcoba@hotmail.com','6137432',300)
INSERT INTO CLIENTE
VALUES(5,'Lilian','lilian_alcoba@hotmail.com','6137432',300)
//MOSTRAR LA TABLA
SELECT * FROM CLIENTE
//ACTUALIZAR CAMPOS DE LA TABLA
UPDATE CLIENTE SET CI='4444'
WHERE NUMCLI=3
//ELIMINAR DATOS DE UNA TABLA
DELETE CLIENTE WHERE NUMCLI=5
//ELIMINAR TODOS LOS DATOS DE LA TABLA
DELETE CLIENTE
//AÑADIR UNA COLUMNA TELEFONO
ALTER TABLE CLIENTE ADD TELF NVARCHAR(50) NULL
//ELIMINAR UNA COLUMNA
ALTER TABLE CLIENTE DROP COLUMN E_MAIL
//OTRAS SENTENCIAS SQL
select * from CLIENTE
WHERE NOMCLI LIKE 'DIEGO%'
select * from CLIENTE
WHERE NOMCLI LIKE '%DIEGO%'
//ORDENAR CLIENTES
SELECT * FROM CLIENTE
ORDER BY NOMCLI DESC
//SOUNDEX.- PARA NOMBRES QUE SUENAN DE CIERTA MANERA PERO NO SABEMOS COMO SE ESCRIBEN
SELECT * FROM CLIENTE
WHERE SOUNDEX(NOMCLI)=SOUNDEX('JAME')
// CAMPOS VACIOS
SELECT * FROM CLIENTE
WHERE E_MAIL IS NULL
//CONTAR CLIENTES EN UNA TABLA
SELECT COUNT(NUMCLI) FROM CLIENTE
//SALDO MAYOR A 200
SELECT * FROM CLIENTE
WHERE SALDO > 200
CREATE TRIGGER BCKP
ON NOTAS
AFTER UPDATE
AS
INSERT BCKNOTAS
(NRO_NOTAS,NOTA_FINAL)(SELECT NRO_NOTAS,NOTA_FINAL FROM DELETE)
SELECT E.CI,E.PATERNO,E.NOMBRE, I.OBSERVACIONES,I.FECHA
FROM ESTUDIANTE E INNER JOIN INSCRIPCION I
ON E.NRO_ESTUDIANTE = I.NRO_ESTUDIANTE
CREATE TRIGGER BCK2
ON PROCESO_VENTAS
AFTER UPDATE
AS
INSERT BCKVENTAS
(NRO_ARTICULO,CANTIDAD_ARTICULO)(SELECT NRO_ARTICULO,
(SELECT A.CANTIDAD_ARTICULO - V.CANTIDAD_VENTA AS TOTAL
FROM ARTICULOS A INNER JOIN PROCESO_VENTAS V
ON A.NRO_ARTICULO = V.NRO_ARTICULO WHERE A.NRO_ARTICULO = (SELECT NRO_ARTICULO FROM deleted))
FROM PROCESO_VENTAS)
------------------------PROCEDIMIENTOS ALACENADOS-----------------------------------------
create procedure listado
as select * from NOTAS
exec listado
create procedure guardarnota
@NroNota int,@NroInscripcion int,@Nota1 int,@Nota2 int,@NotaFinal int,
@Observaciones nvarchar (50)
as
insert into NOTAS (NRO_NOTAS,NRO_INSCRIPCION,NOTA_1,NOTA_2,NOTA_FINAL,OBSERVACIONES)
values (@NroNota ,@NroInscripcion ,@Nota1 ,@Nota2 ,@NotaFinal,
@Observaciones)
exec guardarnota 7,3,85,60,75,'Aprobado'
create procedure Actualizar_Estado
@NroNota int,@Observaciones nvarchar (50)
as
update NOTAS
set OBSERVACIONES = (@Observaciones)
where NRO_NOTAS = @NroNota
exec Actualizar_Estado 1,'Aprobado'
-----------------------------------------------TRANSACCIONES SQL------------------------------------------
BEGIN TRANSACTION
BEGIN TRY
exec Actualizar_Estado 1,'Aprobado'
exec Actualizar_Estado 3,'Reprobado'
exec Actualizar_Estado 4,'Aprobado'
exec Actualizar_Estado 2,'Aprobado'
exec guardarnota 7,3,85,60,75,'Aprobado'
commit transaction
end try
begin catch
rollback transaction
end catch
----------------------------------------------------------CURSORES------------------------------------------------
declare cursorP cursor
for select codigo,producto,precio from productos
open cursorP
declare @cod int,@pro varchar(50),@pre money
fetch next from cursorP into @cod,@pro,@pre
while @@FETCH_STATUS=0
begin
update productos set producto_precio = @pro + ' ' + cast (@pre as varchar (10)) where codigo = @cod
--print 'codigo: ' + cast (@cod as varchar(10))
--print 'producto: ' + @pro
--print 'precio: ' + cast(@pre as varchar(10))
fetch next from cursorP into @cod,@pro,@pre
end
close cursorP
deallocate cursorP
No hay comentarios.:
Publicar un comentario