반응형

MySQL JOIN 걸어서 UPDATE 하는 방법


테이블 2개에 JOIN을 걸어서 UPDATE를 해야 할 경우가 생깁니다. 

JOIN문을 아래 형식처럼 select 구문과 비교 작성해 보았습니다. 


[select]

select [X.컬럼A]

from [테이블1] X

inner join [테이블2] Y on X.[조인된컬럼] = Y.[조인된컬럼]

where 절 


[update]

update [테이블명1] X 

inner join [테이블명2] Y on X.[조인된컬럼] = Y.[조인된컬럼]

set X.[컬럼A] = 변경할값

( WHERE 절 )


조건이 필요한 경우는 WHERE 절을 작성하면 됩니다. 



EX) 예시 입니다. 

1. [국가별 코드]와 사용되는 [인사말]를 가지고 있는 [테이블X] 가 있습니다.

2. [국가별 코드]와 사용되는 [언어 코드]를 가지고 있는 [테이블Y] 가 있습니다. 

3, 국가는 다르지만 사용되는 언어는 같을수 있습니다. 

4. 같은 언어로 된 메세지를 조인 조회해서 수정해야 할 경우를 예로 들어 보겠습니다.

5. 언어코드는 영어코드 'EN'을 사용 하는 메제지를 수정합니다.  



[select]

select [X.인사말]

from [테이블X] X

inner join [테이블Y] Y on X.[국가코드] = Y.[국가코드]

where Y.[언어코드] = 'EN'



[update]

update [테이블X] X

inner join [테이블Y] Y on X.[국가코드] = Y.[국가코드]

set [X.인사말] = '변경할 인사말'

where Y.[언어코드] = 'EN'


반응형
반응형

오라클 테이블 권한 주기(oracle table grant)


1. 테이블 조회 권한 주기 [SELECT]


GRANT SELECT ON 권한 줄 테이블명 TO 권한 받을 사용자계정;


2. 테이블 입력이나 수정 삭제의 권한을 부여 [INSERT, UPDATE, DELETE]


GRANT INSERT, UPDATE, DELETE ON 권한줄 테이블명 TO 권한받을 사용자 계정;


3. FUNCTION 실행 권한 주기 [execute]


GRANT EXECUTE ON 권한 줄 함수명 TO 권한 받을 사용자계정


* SYNONM 생성


내 계정에서 다른 계정의 특정 테이브을 내 계정에서 볼때 Alias(별칭)을 정해서

그 테이블을 참조할때 사용한다.

(타 계정 테이블을 참조 또는 변경하기 위해서 권한이 부여 되면 자신의 계정에서 

 SYNONM을 생성하면 된다. )


CREATE SYNONM 시노임 명 FOR 계정명.테이블명;


[예제] 


본인계정 : MY_USER

타 계정 : OTHER_USER

테이블명 : OTHER_TABLE


SELECT * FROM OTHER_USER.OTHER_TABLE;


CREATE SYNONM OTHER FOR OTHER_USER.OTHER_TABLE;


SELECT * FROM OTHER;


결과는 같은 값이 나온다. 





반응형

+ Recent posts