mysql2011. 8. 29. 02:21

--  튜플 추가하는 프로시저
create proc dbo.addmemo1
(                  
@name varchar(30),
@email varchar(30),
@title varchar(30),
@postip varchar(30)
)
as
insert table1(name,email,title,postdate,postip)     
values(@name,@email,@title,getdate(),@postip)   

go

execute addmemo1 '노종현이죠','babuemf.naver.com' ,'난 최고죠' ,'123.213.123'
go


--[출력]
select * from table1
go

--num 값으로 값을 삭제하는 프로시저만들기

create proc dbo.delete1
(
@num int

)
as
delete table1 where num=@num
go

exec delete1 4
go
------------------------------------------
--num 값을이용해 원하는 튜플을 검색

create proc dbo.getmemo111
(
@num int
)
as                  

select num, name, title,postdate from table1 where num = @num
go

execute getmemo111 5
go  
----------------------------------------
--num값을 이용해서 튜플값 name과 email 값 수정
create proc dbo.editmemo1
(
@name varchar(20),
@email varchar(50),
@num int
)
as
begin tran

update dbo.table1
set name=@name,  email=@email         
where num=@num
commit tran
go

exec editmemo1 '보고싶다', '은수야', 2
go

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

 -- select 로 함수로 이름검색하는 쿼리문을 
 -- 저장 프로시저로 변환  
select * from zzzz where name Like '%슥%'
go
   
------------------------------
--> 저장프로시저로 변형
create proc dbo.findmemos23
@searchfield varchar(50),
@searchquery varchar(50)         --이름으로 찾는거 

as  --name '+name+'

declare @strsql varchar (255)   --변수 정의
set @strsql='
select * from table1
where ' +@searchfield+' like ''%'+@searchquery+'%''
'
-- 왜 searchquery 에서 작은 따옴표를 두번써야하는가
exec (@strsql)
go

exec findmemos2 'name', '노'
go
--sql injection 발생 예제

exec findmemos1 '1=1;delete memos;--','홍길동'  -- sql 인젝션 

Posted by babuzzzy