Application_developing/Java 2010/02/22 23:49
proc : 프로시저
- oracle
BEGIND 프로시저명(:name, :name2, :name3); END;
- mssql
자동으로 prepare 적용
- mysqli (since mysql 5.0)
call proc_php_test(?, @out);
select @out;
- cubrid
select 1 into a from db_root; -- output 변수 설정
call proc_php_test(?, ?, ?, a);
select a from db_root; -- output 변수 출력
[편집] select : 조회
- oracle
select * from 테이블;
- mssql
select * from 테이블;
- mysql
select * from 테이블;
set @age := 10;
select @name1 := name1, @name2 := name2 from 테이블 where age = @age;
- mysqli
select * from 테이블;
- postgres
select * from 테이블;
- cubrid
select * from 테이블;
[편집] insert : 입력
insert 구문을 DB에 따라 다르게 생성한다.
- oracle
insert into 테이블 values (:name1, :name2, :name3);
- mssql (자체 구현) - sp_executesql 을 사용하여 구현
insert into 테이블 values (@name1, @name2, @name3);
declare @sql nvarchar(1000)
declare @param nvarchar(1000)
set @sql = N'insert into 테이블 values (@name1, @name2, @name3) '
set @param = N'@name1 varchar(30), @name2 varchar(30), @name3 varchar(30)'
exec sp_executesql @sql, @param, @name1 = '안녕', @name2 = '하세요', @name3 = '호박'
declare @name1 varchar(30)
declare @name2 varchar(30)
declare @name3 varchar(30)
set @name1 = '안녕'
set @name2 = '하세요'
set @name3 = '호박'
insert into 테이블 values (@name1, @name2, @name3);
- mysql (자체 구현)
set @name1 := '안녕';
set @name2 := '하세요';
set @name3 := '호박';
insert into 테이블 values (@name1, @name2, @name3);
- mysqli (mysql은 지원하지 않음)
insert into 테이블 values (?, ?, ?);
- postgres
insert into 테이블 values ($1, $2);
- cubrid
insert into 테이블 values (?, ?);
[편집] delete
- oracle
delete from 테이블 where name = :value or name = :value2;
- mssql (자체 구현) - sp_executesql 을 사용해서 구현
delete from 테이블 where name = @name1 or name = @name2;
declare @sql nvarchar(1000)
declare @param nvarchar(1000)
set @sql = N'delete from 테이블 where name = @name1 or name = @name2; '
set @param = N'@name1 varchar(30), @name2 varchar(30)'
exec sp_executesql @sql, @param, @name1 = '안녕', @name2 = '하세요'
- mysql (자체 구현)
set @name1 := '안녕';
set @name2 := '하세요';
delete from 테이블 where name = @name1 or name = @name2;
- mysqli (mysql은 지원하지 않음)
delete from 테이블 where name = ? or name = ?;
- postgres
delete from 테이블 where name = $1 or name = $2;
- cubrid
delete from 테이블 where name = ? or name = ?;
[편집] update
- oracle
update 테이블 set name = :value where name2 = :value2 or name2 = :value3;
- mssql (자체 구현) - sp_executesql 을 사용하여 구현
update 테이블 set name = @name1 where name2 = @name2 or name2 = @name3;
declare @sql nvarchar(1000)
declare @param nvarchar(1000)
set @sql = N'update 테이블 set name = @name1 where name2 = @name2 or name2 = @name3;'
set @param = N'@name1 varchar(30), @name2 varchar(30), @name3 varchar(30)'
exec sp_executesql @sql, @param, @name1 = '안녕', @name2 = '하세요', @name3 = '메롱'
- mysql (자체 구현)
set @name1 := '안녕';
set @name2 := '하세요';
set @name3 := '메롱';
update 테이블 set name = @name1 where name2 = @name2 or name2 = @name3;
- mysqli (mysql 지원하지 않음)
update 테이블 set name = ? where name2 = ? or name2 = ?;
- postgres
update 테이블 set name = $1 where name2 = $2 or name2 = $3;
- cubrid
update 테이블 set name = ? where name2 = ? or name2 = ?;
이 글에는 트랙백을 보낼 수 없습니다
0