/* 
-- II-csoport - szerda - 15-45 - 17-20

--  -- 1. het - E/K modell tablan
--  -- 2. het - Az E/K modell szerkesztese SyBase PowerDesigner segitsegevel
--  -- 3. het - Az elso SQL-es labi-talalkozas-az adatbazisszerver nem mukodott
--	--	--		-- mukodott-bemutato eloadas volt csupan


--  -- 4. het -- 2015-10-21
-- Elso LABI - elso gepes talalkozas  
-- -- create database, use, create table utasitas, not null, unique,
-- -- default, check,
-- -- kulcs(primaris) es kulso kulcsok, osszetett kulcsok, alter table
 */

create database Arurendeles1
go

use Arurendeles1
go

create table vevo
(vevo_kod tinyint primary key,
vevo_nev varchar(30),
ir_szam numeric(5),
helyseg varchar(20),
utca_hsz varchar(20))
go

create table Rendeles
(rendeles_szam tinyint primary key,
vevo_kod tinyint not null references vevo(vevo_kod),
kelt date)
go

sp_help rendeles
go

create table aru_arlista
(aru_kod tinyint,
mertekegyseg char(10) not null,
aru_megnevezes varchar(20),
egysegar numeric(15,2),
primary key(aru_kod,mertekegyseg))
go

create table Rendeles_tetel
(aru_kod tinyint,
mertekegyseg char(10),
rendeles_sz tinyint,
rendelt_menny numeric(12,2),
primary key(aru_kod,mertekegyseg,rendeles_sz),
constraint uc_rend_tet_kk foreign key(aru_kod,mertekegyseg)
 references aru_arlista(aru_kod,mertekegyseg))
go

alter table vevo
	alter column vevo_nev varchar(30) not null
go

alter table vevo
	alter column ir_szam numeric(5) not null
	go

alter table vevo
	add emelet_lakasszam varchar(20)
	go
	

/*iranyitoszam 20000 es 30000 koze eshet*/

alter table vevo
	add constraint uc_ppt_korlat check(ir_szam between 20000 and 30000)
	go

alter table vevo
	drop column emelet_lakasszam
	go

alter table vevo
	drop uc_ppt_korlat
	go

/*

--  -- 5. het -- 2015-10-28
--  -- Masodik labi  
-- -- use, alter table, sp_help, insert, delete, update
-- -- select

*/

use Arurendeles1
go


alter table vevo
	alter column ir_szam numeric(5) not null default 24000;
	go
-- nem lehet defaultra javitani a mezo tulajdonsagot

alter table vevo
	add constraint irszamdefault
	default(24000) for ir_szam;
	go
	
sp_help vevo;
go

alter table vevo
	add telefon char(12) not null default '+38124555666'
		check(str(telefon,1,6)='+38124')
go

sp_help rendeles;
go

alter table rendeles
	drop constraint FK__Rendeles__vevo_k__0519C6AF;
go

alter table rendeles
	add constraint kk_vevo foreign key(vevo_kod)
		references vevo(vevo_kod)
		on delete no action
		on update cascade;
go

sp_help vevo;
go
alter table vevo
	drop constraint CK__vevo__telefon__117F9D94;
go

alter table vevo
	add constraint uc_check_telefon 
	check(substring(telefon,1,6)='+38124');
	go


insert vevo
 values(1,'Vevo1',21000,'Ujvidek','Vase Stajica 25','+38124625625');
go

select * from vevo;
go

insert vevo
 values(2,'Vevo2',21000,'Szabadka','Vase Stajica 12','+38124255255');
go

insert vevo
 values(3,'Vevo3',21000,'Szabadka','Vase Stajica 13','+38124255255');
go

sp_help rendeles;
go

insert Rendeles
	values(1,1,'2015.10.28');
go

select * from Rendeles;
go

insert vevo(utca_hsz,vevo_kod,helyseg,vevo_nev)
 values('Vase Stajica 10',4,'Szabadka','Vevo4');
go

insert Rendeles
	values(2,1,'2015.10.27');
go
insert Rendeles
	values(3,4,'2015.10.26');
go
insert Rendeles
	values(4,4,'2015.10.25');
go

delete vevo
	where vevo_kod=2;
	go

update vevo
	set vevo_kod=44
	where vevo_kod=4;
	go
	
select * from vevo
go

select * from Rendeles
go

/*

--  -- 6. het -- 2015-11-04
--  -- Harmadik labi  
-- -- use, alter table-unique, sp_help, insert, delete, update
-- -- select

alter table vevo
add unique(telefon);
go

vagy neven nevezve a megszoritast:

alter table vevo
add constraint uc_egyedi_telfon unique(telefon);
go

alter table vevo
nocheck constraint uc_egyedi_telfon;
go

alter table vevo
check constraint uc_egyedi_telfon;
go

alter table vevo
drop constraint uc_egyedi_telfon;
go

alter table rendeles
 add constraint uc_rendeleskelte_korlat
 check(kelt<=getdate());
 go

alter table rendeles
add constraint uc_rendeleskelte_default
default getdate() for kelt;
go

insert into rendeles
	values(7,44, getdate());
	go

update rendeles 
set kelt = GETDATE()
where rendeles_szam=3;
go

truncate table hallgato;
go

create view targynezet as
	(select targynev, kredit, oraszam, targykod
		from targy);
go


*/
use Arurendeles1;
go

select * from Rendeles;
go

alter table vevo
add unique(telefon);
go

alter table vevo
drop constraint UQ__vevo__237247E2164452B1;
go

alter table vevo
add constraint uc_egyedi_telefon unique(telefon);
go

alter table rendeles
 add constraint uc_rendeleskelte_korlat
 check(kelt<=getdate());
 go

select * from Rendeles;
go

insert into rendeles
	values(10,44, '2015-11-11');
	go

alter table rendeles
nocheck constraint uc_rendeleskelte_korlat;
go

alter table rendeles
check constraint uc_rendeleskelte_korlat;
go	
update rendeles 
set kelt = GETDATE()
where rendeles_szam=2;
go

truncate table hallgato;
go

create view vevonezet as
	(select vevo_nev, vevo_kod, ir_szam, helyseg, telefon
		from dbo.vevo);
	
select * from vevonezet;
go

insert vevo
 values(2,'Vevo2',24000,'Zabadka','Vase Stajica 13','+38124625626');
go