쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git에 올려두었습니다.
* self join
- 테이블 하나를 조인하는 것
- 검색 용도와 조건 용도를 식별해서 사용해야 한다.
-- from에 있는 테이블명과 조인할 테이블명이 같아야 한다.
-- from에 있는 테이블명은 검색용도, 조인할 테이블명은 조건용도로 나뉜다.
-- 검색용도는 조인하여 사용자에게 데이터를 보여줄 목적의 테이블이다,
-- 조건용도는 조인조건과 검색조건을 사용할 목적의 테이블이다.
-- 즉, select에서의 테이블명의 alias를 사용하고
-- where 조인조건과 검색 조건에서는 조인할 테이블명의 alias를 사용한다.
select 테이블명 alias.컬럼명
from 테이블명 alias, 조인할 테이블명 alias
where 조인조건 and 검색조건
백업
- 모든 계정은 계정이 생산한 객체 백업을 수행할 수 있다.
( table, sequence, index, view, synonym, function, procedure, package )
- exp.exe 툴을 사용한다.
- dos 창에서 수행
- 생성된 파일은 안전한 장소에 보관
* 백업 도움말
exp -help
* 테이블 백업
exp userid=계정명/비밀번호 tables=테이블명1,테이블명2,... file=백업파일의 경로
* 모든 객체 백업
exp userid=계정명/비밀번호 full=y file=백업파일의 경로
복원
- 모든 계정은 계정이 생산한 객체를 복원할 수 있다.
( table, sequence, index, view, synonym, function, procedure, package )
- imp.exe 툴을 사용한다.
- dos 창에서 수행
* 복원 도움말
imp -help
* 테이블 복원
imp userid=계정명/비밀번호 tables=테이블명1,테이블명2,... file=백업한 파일의 경로
* 모든 객체 복원
imp userid=계정명/비밀번호 full=y file=백업한 파일의 경로
계정 생성
- 관리자, 관리자 권한을 가진 계정이 생성할 수 있다.
- 생성된 계정은 DB에 접근과 사용을 할 수 없다.
- Oracle 12c부터는 cloud계정으로 계정명 앞 c##이 붙은 형태의 계정만 생성 가능 ( c##계정명 )
- c##이 붙지 않은 계정을 생성할 때에는 ORACLE_SCRIPT을 활성화 해야 한다.
- 계정 검색은 dba_users DD에서 가능
* 순서
1. ORACLE_SCRIPT 활성화( alter )
alter session set "_ORACLE_SCRIPT"=true;
2. 계정 생성( create )
create user 계정명 identified by 비밀번호;
3. 권한 부여( 접속, DB 사용 권한 )( grant )( DCL )
-- connect( 접속 권한 ), resource( DB 사용 권한 ), dba( dba 권한 )
grant 권한,...,... to 계정명;
4. tablespace 사용 권한 변경( alter )
alter user 계정명 default tablespace users quota unlimited on users;
5. 권한 회수( DCL )
-- alter session set "_ORACLE_SCRIPT"=true;가 안되어 있으면 회수 불가
revoke 권한,... from 계정명;
6. 계정 삭제( DDL )
-- 객체(table, index, ...)를 생성하지 않은 계정 삭제
drop user 계정명;
-- 객체를 생성한 계정 삭제
drop user 계정명 cascade;
synonym( 동의어 )
- 테이블을 다양한 이름으로 사용해야 할 때( alias를 사용하는 상황과 비슷함 )
- 기존의 테이블명과 synonym명을 동시에 사용할 수 있다.
- 권한( create synonym )이 부여된 계정만 만들 수 있다.
- 부여된 권한은 관리자 계정으로 접속하여 dba_sys_privs DD에서 확인 가능
- user_synonyms DD에서 생성된 synonym을 확인할 수 있다.
- public synonym을 생성하면 다른 계정에서도 사용할 수 있다.
* 권한 부여
- 시노님 생성 권한 부여( 관리자 )
grant [public] create synonym to 계정명;
* 시노님 생성
create synonym 시노님명 for 테이블명;
* 시노님 사용
select 컬럼명, ..., ...
from 시노님명;
* 시노님 삭제
drop synonym 시노님명;
* 시노님 권한 회수
revoke create [public] synonym from 계정명;
view
- 실제 테이블에서 도출되는 가상의 테이블
- 보안성 향상, 사용자 편의성 향상
- 권한이 있는 사용자만 view를 생성할 수 있다.
- view 생성 권한은 dba_sys_privs DD에서 확인
- 생성된 view는 user_views DD에서 확인
- 단순 view와 복합 view
단순 view : 테이블 하나에서 도출된 view
함수나 연산식을 사용하지 않고 생성된 view
DML 가능( select, insert, update, delete )
복합 view : 테이블 여러 개에서 도출된 view( union, join )
함수나 연산식을 사용하여 생성된 view
DML 일부분 불가능( insert 불가능, ( update, delete 상황에 따라 다름 ) )
* view 생성 권한( 관리자 계정 )
grant create view to 계정명;
* view 생성 권한 회수
revoke create view from 계정명;
* view 생성
-- ( 컬럼명, ..., ...) 생략 가능
-- (select문) subquery에서 조회된 결과가 view로 도출, 단순 view인지 복합 view인지 결정
-- option에서 with read only는 읽기 전용
-- option에서 with check option은 view에서 검색될 수 있는 레코드에 대해서 DML 가능
-- or replace는 view가 없으면 생성하고 view가 존재하면 치환
create [or replace] view 뷰명( 컬럼명, ..., ...) as (select문) option;
* view 삭제
drop view 뷰명;
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0202/Statement (0) | 2023.02.02 |
---|---|
0201/인덱스, JDBC (0) | 2023.02.01 |
0130/시퀀스, 조인, 정규화 (0) | 2023.01.30 |
0127/테이블 제약 조건 (0) | 2023.01.27 |
0126/집계함수 (0) | 2023.01.26 |