SQL(Structured Query Languge) |
에러확인> |
- 에러번호의 내용을 확인 할 수 있다. |
EXPERT> !oerr ora 에러번호 |
|
|
GRANT> |
- 권한 부여에 관련된 명령어 |
1. System 권한 상속 |
- 권한 부여 시 with admin option을 준 경우, 권한을 받은 user은 자신이 받은 권한에 한에서 다른 user에게 권한을 부여할 수 있다. |
- 자신이 받은 권한을 revoke 당한 경우에도 자신이 줬던 권한을 받은 다른 user는 그 권한을 사용할 수 있다. |
2. Object(객체) 권한 상속 |
- 권한 부여 시 with grant option을 준 경우, 권한을 받은 user는 자신이 받은 권한에 한에서 다른 user에게 권한을 부여할 수 있다. |
- 자신이 받은 권한을 revoke 당한 경우 자신이 줬던 권한을 받은 다른 user의 권한도 revoke되어 사용할 수 없다. |
|
|
ALTER> |
1. column 삭제 |
- 물리적 삭제 : drop column을 사용하면 물리적으로 삭제 된다. |
- 논리적 삭제 : set unused를 사용하면 놀리적으로 삭제 된다. |
※ 물리적/논리적 삭제가 필요한 이유 |
-> 물리적 삭제의 경우 삭제를 하면 해당 행에 대해 rock이 걸려 업무 시 방해가 많이 된다. |
-> 따라서 기본적으로 왠만하면 업무중에 column을 삭제를 하지 않고 삭제를 할 경우 논리적 삭제를 먼저 한 뒤 업무 종료 후 물리적삭제를 사용하는 것이 좋다 |
|
제약조건 추가> |
- 제약조건 추가 시 add를 사용하지만 not null은 modify를 사용한다. |
- 제약조건은 추가 및 삭제만 가능하다. |
|
1. 형식 |
alter table <table_name> |
add [constraint <constraint_name>] |
type (<column_name); |
|
|
제약조건 검사방법> |
- 일반적으로 제약조건은 자료가 입력될 때 바로 검사한다. |
- 제약조건을 지연검사로 변경한 경우 자료 입력 시 모두 입력받고 commit 후 모든 column을 한번에 검사한다 |
- 만약 하나라도 위반을 발견한 경우 모두 callback 시킨다. |
|
|
함수기반 인덱스> |
- 인덱스 생성 시 함수를 삽입하여 생성할 수 있다. |
- 단, 인덱스 생성 시 삽입했던 함수로만 인덱스를 검색해야 한다. |
- 만약 다른 함수로 인덱스를 검색하는 경우 full-scan으로 검색한다. |
|
1. 형식 |
create index upper_dept_name_idx |
on dept2(upper(department_name)); |
|
|
External tables> |
- file의 내용을 table 처럼 select 할 수 있음. |
- File의 내용을 Table에 Load/Unload할 수 있음. |
-> Load : 파일 내용을 table로 불러옴 |
-> Unload : table로 불러온 내용을 file로 보냄. |
|
1. 특징 |
- 읽기 전용 |
- DML 사용 못함 |
- Index 생성 못함 |
- 쿼리는 사용 가능 |
|
|
Top-N 구문> |
- 컬럼의 값 중 n개의 가장 큰 값 또는 작은 값을 질의한다. |
- from 절 안의 서브 쿼리로 작성한다. |
|
1. 사용방법 |
- 데이터를 정렬하는 질의를 서브쿼리나 inline 뷰로 생성. |
|
2. 필수요소 |
- rownum(Row 순서를 나타내는 가상컬럼) |
- From절 상의 서브쿼리(Inline View) |
- Sub query 내에 order by절 |
- 사용가능한 비교연산자 : <, <= |
|
|
명시적 Default 기준> |
- Table 생성 시 default 값을 설정한 경우 insert할 때 값을 넣지 않으면 default 값이 입력 됨. |
|
|
MERGE> |
- 조건에 따라 insert와 Update를 실행한다. |
|
|
Flashback versions query> |
- 특정 시점을 비교하여 객체 및 행 data의 이력(aging)을 확인하는 방법 |
- Or transaction의 이력(aging) 확인. |
|
|
GROUP BY> |
1. 각 Operator를 삽입하면 해당 개수의 column이 조회된다. |
- Rollup : n + 1 |
- Cube : 2의 n승 |
※ n은 컬럼수 |
|
2. groupping set |
- 여러 개의 group by를 하나로 묶어서 작성 |
|
|
계층화 쿼리> |
1. Operator |
- Level : 계층적 질의문에서 검색된 결과에 대한 계층별로 레벨 표시 |
- Start with : 계층적인 출력 형식을 표현하기 위한 최상위 행 |
-> 조건 삽입 시 서브 쿼리도 가능함 |
- Connect By prior : 계층 관계의 데이터를 지정하는 컬럼 |
|
2. 형식 |
column org_chart format a15; |
|
select lpad(' ', 3*level-3) || ename as org_chart, |
level, empno, mgr, deptno |
from emp |
start with mgr is null |
connect by prior empno = mgr; |
|
3. 특징 |
- Oracle 전용 Query |