본문 바로가기

Database24

[오라클] 뷰 생성, 수정하기 뷰(View)란, 테이블의 값들을 원하는대로 가져와 테이블 형태로 보여주는 객체이다. 따라서 보여지는 형태는 테이블과 같다. 여러 테이블에서 원하는 컬럼들을 가져와 하나에 뷰에 나타낼 수 있는데, 이 과정에서 민감한 정보를 숨기고 보여주고 싶은 정보만 보여주는 것이 뷰의 가장 큰 사용 목적이다. 뷰는 여러 테이블들의 컬럼을 모아서 단순히 보여주는 것에 불과하기 때문에, 원본 테이블의 값이 수정되면 뷰의 해당 값 또한 수정되어 나타난다. 1. View 생성하기 View 를 생성하기 위해서는 먼저 해당 사용자에게 View생성권한을 부여해야 한다. myuser 에게 View생성 권한을 부여하기 위해 sys계정에서 아래 코드를 실행한다. grant create view to myuser; 권한을 부여받은 myu.. 2021. 3. 11.
[오라클] 사용자에게 테이블 권한 부여 및 회수하기 1. 권한 부여하기 테이블 조회 권한 부여하기 myuser2 사용자에게 coffee 테이블을 조회할 권한 부여하기. 권한 부여에는 sys계정을 이용한다. grant 를 이용해 권한을 부여한 후에는 반드시 commit을 해주어야 권한 부여 내용이 저장된다. grant select on coffee to myuser2; commit; grant 권한을 부여한다 select 조회하기 on coffee coffee 테이블에 대한 to myuser2; myuser2 사용자에게 commit; 권한 부여 내용을 최종저장 테이블에 대한 데이터 삽입 권한 부여하기 grant insert on coffee to myuser2; commit; grant 권한을 부여한다 select 데이터 추가하기 on coffee coff.. 2021. 3. 11.
[오라클] 되돌리기 1. 특정 시점으로 되돌리기 - ROLLBACK * ROLLBACK {이름} 을 통해 특정 시점으로 데이터베이스의 상태를 되돌릴 수 있다. 이 때 되돌릴 목표 시점은 SAVEPOINT {이름} 을 통해 설정할 수 있다. insert into usertransaction values (1, 'test1', 'pass01'); insert into usertransaction values (2, 'test2', 'pass02'); insert into usertransaction values (3, 'test3', 'pass03'); insert into usertransaction values (4, 'test4', 'pass04'); savepoint sp1; -- 임시저장 위치 설정 insert int.. 2021. 3. 11.
[오라클] 부모 자식 테이블 및 제약조건 부모 자식 테이블 관계 두 테이블간 특정 컬럼을 부모-자식관계로 연동시킬 수 있다. 이 경우 부모 테이블의 해당 컬럼에는 자식 컬럼에 있는 값만이 입력될 수 있다. 테이블 값이 제거될 때 자식 테이블의 데이터가 삭제될 때, 연동된 부모 테이블 값을 어떻게 처리할 지를 정의해주어야 한다. 부모 테이블을 생성할 때 이를 설정할 수 있다. 부모 테이블의 값은 삭제하는데 제한이 없다. 1. ON DELETE SET NULL create table shop_buy( buy_no number primary key, user_id varchar2(20) REFERENCES shop_member (user_id) on delete set null, -- shop_member 제거시 null로 설정 product var.. 2021. 3. 10.
[SQL] 테이블 합치기 MERGE MERGE의 기본 틀 merge into t1 using t2 on(t1.id = t2.id) when matched then -- 동일할 경우 update set t1.name = t2.name when not matched then -- 동일하지 않을 경우 insert values(t2.id, t2.name); merge into t1 using t2 t2를 가져다 t1테이블에 합친다. on (t1.id = t2.id) t1테이블의 id값과 t2테이블의 id값을 비교해서 when matched then 비교한 값이 동일하면 update set t1.name = t2.name t1테이블의 name컬럼값을 t2테이블의 name컬럼값으로 대치한다. when not matched then 비교한 값이 다르면.. 2021. 3. 10.