Sunteți pe pagina 1din 8

create table bank(

Bank_id integer not null unique identity(1,1),


Bank_em varchar(20) not null,
Bank_adre varchar(50) not null,
Bank_kont char(12) check(Bank_kont like ('355%')),
Bank_CEO varchar(50) not null,
Bnk_web varchar(50) not null,
primary key (Bank_id),
);
-----------------------------------------------------------------------------
--------------------------
--drop table bank
--select * from bank
--create sequence new start with 1 increment by 1
--insert into bank
values('Intruders','vaqarr','355688779184','Julian&Daniels','ceo.al');
--select * from bank
-----------------------------------------------------------------------------------
--------------------------------
create table dega(
Dege_id integer not null unique identity(1,1),
Dege_adre varchar(50) not null,
Dege_kont char(12) check(Dege_kont like ('355%')),
Bank_id integer,
primary key (Dege_id),
foreign key (Bank_id) references bank on delete cascade,
);
-----------------------------------------------------------------------------
---------------------------------
--insert into dega values('vaqarr','355689779184',1);
--drop table dega
-----------------------------------------------------------------------------
------------------------------
create table person(
Per_id integer not null unique identity(1,1),
Per_em varchar(20) not null,
Per_mb varchar(20) not null,
Per_adre varchar(30) not null,
Per_kont char(12) check(Per_kont like ('355%')) not null,
Per_email varchar(25) check(Per_email like '%___@___%'),
Per_Kli bit not null,
Per_Pun bit not null,
Dege_id integer,
primary key (Per_id),
foreign key (Dege_id) references dega on delete cascade,
constraint pun_kli check(Per_kli = 1 OR Per_Pun = 1),
);
delete from person
-----------------------------------------------------------------------------
--------------------------
print (person.Per_id) from person
--drop table person
--insert into person values('mfaxc','zeqgo','fushe
kruje','355489785284','gali@gmail.com',1,0,1)
insert into person values('mfaxc','zefqo','fushe
kruje','355489785284','gali@gmail.com',1,1,1)
insert into person values('mafxc','zefqo','fushe
kruje','355489785284','gali@gmail.com',1,1,1)
insert into person
values('danjel','halili','paris','355489785284','gali@gmail.com',0,1,1)
insert into person
values('july','william','diber','355489785284','gali@gmail.com',0,1,1)
insert into person
values('july','william','diber','355489785284','gali@gmail.com',1,0,1)

--select * from person

-----------------------------------------------------------------------------
--------------------------
create table klient(
Per_id integer not null unique,
Kli_tip char(1) check(Kli_tip = 'M' or Kli_tip =
'S' or Kli_tip = 'Z') not null,
primary key (Per_id),
foreign key (Per_id) references person on delete cascade,
);
delete from klient
-----------------------------------------------------------------------------
----------------------------
--select * from klient
insert into klient values (2,'M')
--insert into klient values (1234568,'S')
--insert into klient values (1234569,'Z')
insert into klient values (1234512,'Z')
-----------------------------------------------------------------------------
-------------------------------
create table kli_mitur(
Per_id integer not null unique,
Kli_date date not null,
Prind_nr_llog integer not null --llogaria mbeshtetese per moshen
nen 18 vjec
primary key (Per_id),
foreign key (Per_id) references klient on delete cascade
);
-----------------------------------------------------------------------------
-------------------------------

--insert into kli_mitur values (1234567,'2019-07-14',44444)


-----------------------------------------------------------------------------
-----------------------------------
create table student(
Per_id integer not null unique ,
stu_datelindje date
check(datediff(year,stu_datelindje,getdate()) >= 18) not null
primary key (Per_id)
foreign key (Per_id) references klient on delete cascade
);
-----------------------------------------------------------------------------
---------------------------------------
--insert into student values (1234568,'2000-08-22')

--select * from student


-----------------------------------------------------------------------------
---------------------------------------
create table kli_zakonshem(
Per_id integer not null unique,
Kli_tarife numeric(4,2) not null check(kli_tarife>0),
Kli_datelindje date
check(datediff(year,Kli_datelindje,getdate()) >= 18) not null,
primary key (Per_id),
foreign key (Per_id) references klient on delete cascade,
);
-----------------------------------------------------------------------------
------------------------------------
--drop table kli_zakonshem

--insert into kli_zakonshem values (1234569,22.33,'1988-05-11')


--delete from kli_zakonshem
-----------------------------------------------------------------------------
-----------------------
create table punetor(
Per_id integer not null unique,
Per_datelindje date
check(datediff(year,Per_datelindje,getdate()) >= 18) not null,
Pun_page numeric(9,2) check(Pun_page >0),
Pun_tip char(1) check(Pun_tip in ('P','M','K','I')),
primary key (Per_id),
foreign key (Per_id) references person on delete cascade,
);

create trigger ruaj on punetor


after delete as
begin
insert into hist_punetor (Per_id) select deleted.Per_id from deleted;
end;
create table hist_punetor(
id integer identity(1,1) unique,
Per_id integer not null,
his_date datetime not null default(getdate()),
primary key (id),
);
-----------------------------------------------------------------------------
----------------------------------
--insert into punetor values ((select next value for i),'1977-09-30',250,'P')
--insert into punetor values (1234569,'1987-09-30',500,'M')
--insert into punetor values (1234510,'1987-09-30',550,'K')
--insert into punetor values (1234511,'1987-09-30',500,'I')
--delete from punetor
--select * from punetor

-----------------------------------------------------------------------------
---------------------------------
create table polic(
Per_id integer not null unique,
Pol_grad varchar(25) not null,
Leje_arme bit not null,
primary key (Per_id),
foreign key (Per_id) references punetor on delete cascade
);
-----------------------------------------------------------------------------
-----------------------------------
--insert into polic values (1234568,'roje',1)

--select* from polic

-----------------------------------------------------------------------------
----------------------------
create table menaxher(
Per_id integer not null unique,
men_tit varchar(25) not null,
primary key (Per_id),
foreign key (Per_id) references punetor on delete cascade
);
-----------------------------------------------------------------------------
---------------------------------

--insert into menaxher values (1234569,'menaxher')

--select *from menaxher


-----------------------------------------------------------------------------
----------------------------------
create table kontabilist(
Per_id integer not null unique,
kont_cert varchar(25) not null,
primary key (Per_id),
foreign key (Per_id) references punetor on delete cascade
);
-----------------------------------------------------------------------------
----------------------------------
--insert into kontabilist values (1234510,'kontabilist')

--select *from kontabilist


-----------------------------------------------------------------------------
-------------------------------------
create table IT(
Per_id integer not null unique,
it_tit varchar(25) not null,
primary key (Per_id),
foreign key (Per_id) references punetor on delete cascade
);
-----------------------------------------------------------------------------
---------------------------------------
--insert into IT values (1234511,'it')

--select * from IT

-- drop table person


--select * from person
-- PRINT datediff(year,'1999-11-07',getdate())
-- drop table person
-----------------------------------------------------------------------------
-------------------------------------------
create table llogari(
Llog_id integer ,
Llog_user varchar(20) not null,
Llog_pass varchar(20) not null,
Llog_bal numeric(10,4) not null check(Llog_bal >= 0) default(0),
Llog_hua numeric(10,4) check(Llog_hua >=0),
Llog_iban char(28) not null unique,
Llog_num numeric(10) not null unique,
Llog_tip char(1) check (Llog_tip = 'R' OR Llog_tip = 'K' OR Llog_tip =
'P' or Llog_tip = 'G') not null,
Llog_afat date not null,
Llog_bllok bit not null,
Per_id integer not null,
Llog_date_krij datetime not null,
primary key (Llog_id),
foreign key (Per_id) references person on delete cascade,
);
drop table llogari
alter table llogari drop column Per_id
create sequence num start with 0 increment by 1;
-----------------------------------------------------------------------------
----------------------------------------------------
/*insert into llogari
values(1,'tll','yy',500,0,'123456789',12345678,'R','2031-05-01',0,3,getdate());
insert into llogari values(2,'kh','cc',500,0,'123456787',12345679,'K','2011-
06-01',0,4,getdate());
insert into llogari
values(3,'opiu','bb',500,0,'123456785',123456710,'P','2030-09-01',0,5,getdate());
insert into llogari values(4,'tt','aa',500,0,'123456786',123456715,'G','2021-
02-01',0,6,getdate());
insert into llogari values(5,'tt','aa',500,0,'123456780',123456713,'G','2021-
02-01',0,7,getdate());
delete from llogari;
select * from llogari
-----------------------------------------------------------------------------
-----
-- triggeri qe ruan llogarite e fshira
*/

create trigger saves on llogari


after delete as
begin
insert into hist_llog (Llog_id) select deleted.Llog_id from deleted;
end
-----------------------------------------------------------------------------
-----------
create table hist_llog(
id integer identity(1,1) unique,
Llog_id integer not null,
his_date datetime not null default(getdate()),
primary key (id),
);
drop table hist_llog
select *from hist_llog
select count(Llog_id),his_date from hist_llog group by his_date
-----------------------------------------------------------------------------
--------

create table llogari_rrjedhese(


Llog_id integer not null unique,
Tarife_mirmbajtje numeric(3,2) not null,
primary key (Llog_id),
foreign key (Llog_id) references llogari on delete cascade,
);
-----------------------------------------------------------------------------
------------
--insert into llogari_rrjedhese values (12345,0)
--select *from llogari_rrjedhese
-----------------------------------------------------------------------------
------------
create table llogari_kursimi(
Llog_id integer not null unique,
llog_norm_inter numeric(5,2) not null check(llog_norm_inter>0),
Llog_komision numeric(4,2) not null,
primary key (Llog_id),
foreign key (Llog_id) references llogari on delete cascade
);
-----------------------------------------------------------------------------
--------------
--select * from llogari_kursimi
--insert into llogari_kursimi values (12346,3,20)
--insert into llogari_kursimi values (12347,4,22)
--insert into llogari_kursimi values (12348,1,21)
-----------------------------------------------------------------------------
------------
create table llogari_page(
Llog_id integer not null unique,
Llog_norm_inter numeric(4,2) check(llog_norm_inter>=0) default(0.00) ,
Llog_komision numeric(5,2) not null,
primary key (Llog_id),
foreign key (Llog_id) references llogari on delete cascade,
);
-----------------------------------------------------------------------------
------------

--insert into llogari_page values (123410,3,20)


--select * from llogari_page
-----------------------------------------------------------------------------
------------
create table llogari_pensioni(---ZERO komision
Llog_id integer not null unique,
primary key (Llog_id),
foreign key (Llog_id) references llogari on delete cascade
);
--insert into llogari_pensioni values(
select * from llogari_pensioni
-----------------------------------------------------------------------------
------------
create table transaksione(
Tra_id integer not null unique identity(1,1),
tra_sasi numeric(10,4) not null check(tra_sasi >0),
tra_date datetime not null,
tra_tip char(1) check(tra_tip = 'D' or tra_tip = 'T' or
tra_tip = 'S') not null,
Llog_id integer not null,
Llog_dest integer,
primary key (Tra_id),
foreign key (Llog_id) references llogari on delete cascade,
);
drop table transaksione
delete from transaksione
insert into transaksione(tra_sasi,tra_date,tra_tip,Llog_id)
values(220,getdate(),'D',1);
insert into transaksione values(15000,getdate(),'T',2,3);
insert into transferte values(12345);
insert into transaksione values(220,getdate(),'D',4);
select *from llogari

----------------------------------------------------------------
create trigger afisho on transaksione after insert as begin
print'FUUUUUUUUUUUUUUUUUCccccccccccccck';end
-----------------------------------------------------------------------------
------------------
drop trigger rifresko_balance
alter trigger rifresko_balance on transaksione
after insert
as
declare
@id integer,
@iddest integer,
@tip char(1),
@traid integer,
@sasi integer;
select @id = inserted.Llog_id from inserted;
select @tip = inserted.tra_tip from inserted;
select @traid = inserted.tra_id from inserted;
select @sasi = inserted.tra_sasi from inserted;
select @iddest = inserted.Llog_dest from inserted;
if(@sasi < (select llogari.Llog_bal from llogari where llogari.Llog_id = @id)
)
begin
begin
if(@tip = 'D') update llogari set Llog_bal = Llog_bal + @sasi where Llog_id =
@id;
else if(@tip = 'T')
begin
update llogari set Llog_bal = Llog_bal - @sasi where
Llog_id = @id;
update llogari set Llog_bal = Llog_bal + @sasi where
Llog_id = @iddest;
end
else
update llogari set Llog_bal = Llog_bal - @sasi where Llog_id = @id;
end
end
else print 'Llogaria burim nuk ka para te mjaftueshme';

-----------------------------------------------------------------------------
------------------

drop table transaksione


alter table transaksione drop column tra_sasi
-----------------------------------------------------------------------------
------------
insert into transaksione values(1,250,getdate(),'D',12348);
insert into transaksione values(5,170,getdate(),'D',12345);
select *from llogari
select *from transaksione
-----------------------------------------------------------------------------
-----------

--Triggera
-----------------------------------------------------------------------------
------------------------------------------

-----------------------------------------------------------------------------
--------
create PROCEDURE util
AS
BEGIN
SET NOCOUNT ON;
declare @delaytime nvarchar(50)
set @delaytime = '00:00'

while 1 = 1
begin
waitfor time @delayTime
begin
execute setting;
end
end
END
-------------------------------------------------------
create procedure setting as
begin
declare @data date
select @data = Llog_afat from llogari;
if(datediff(day,@data,getdate()) <=0)
begin
update llogari set Llog_bllok = 1;
print 'Afati i nje llogarie mbaroi';
end
end
exec sp_procoption @ProcName = 'util',
@OptionName = 'startup',
@OptionValue = 'on';

-----------------------------------------------------------------------------
-------------

update llogari set Llog_bal = Llog_bal - 150;


select *from llogari
-----------------------------------------------------------------------------
---------------
create sequence sekuenci start with 1 increment by 1;
--select next value for sekuenci insert into llogari_rrjedhese values((select
next value for sekuenci),3.52);

S-ar putea să vă placă și