티스토리 뷰
sub Query(서브 쿼리)
: 서브쿼리는 하나의 SELECT 문장의 절 안에 포함된 또 하나의 SELECT문을 뜻한다.
서브쿼리는 메인쿼리가 실행되기 전에 한 번만 실행된다.
단일행 서브 쿼리
: 서브 쿼리를 수행한 결과가 1건만 나오고, 이 결과를 메인 쿼리로 전달해서 메인 쿼리를 수행하게 된다. 단일행 서브 쿼리는 수행 결과가 오직 하나의 row로만 변환하는 서브 쿼리를 갖는 것을 말한다.
다중행 서브 쿼리
: 다중행 서브 쿼리는 반환되는 결과가 하나 이상의 행일 때 사용하는 서브 쿼리를 말한다. 다중행 서브 쿼리는 반드시 Multiple Row Operator(다중행 연산자)와 함께 사용해야 한다.
종류 | 의미 |
IN | 메인 쿼리의 비교 조건이 서브 쿼리의 결과 중에서 하나라도 일치하면 참 |
ANY, SOME | 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 하나 이상 일치하면 참 |
ALL | 메인 쿼리의 비교 조건이 서브 쿼리의 검색 결과와 모든 값이 일치하면 참 |
EXISTS | 메인 쿼리의 비교 조건이 서브 쿼리의 결과 중에서도 하나라도 일차하면 참 |
> ALL | 최대 값 보다 큰 사람 |
< ALL | 최소 값 보다 작은 사람 |
> ANY | 최소 값 보다 큰 사람 |
< ANY | 최대 값 보다 작은 사람 모두 |
Exists
: 중복이 없다는 가정하에 COST(검색 단가)를 줄이기 위해 조건을 충족하는 값을 찾았을 때 바로 검색을 중지하는 함수
Rownum
: 서브 쿼리에서 반환되는 각 행을 1부터 시작하는 순차 값을 할당해준다.
: Rownum 함수를 order by 함수와 함께 사용하면 순번이 뒤죽박죽 된다. 그 이유는 먼저 순번을 매기고 난 후 order by 정렬을 하기 때문이다.
DDL(Data Definition Language)
: 데이터 정의어, 테이블 구조 생성, 변경 및 삭제를 담당
DDL | |
CREATE | 데이터베이스 객체를 생성 |
DROP | 데이터베이스 객체를 삭제 |
RENAME | 데이터베이스의 이름을 변경 |
ALTER | 기존에 존재하는 데이터베이스 객체를 다시 정의 |
TRUNCATE | 테이블을 최초 생성 상태로 만들며 ROLLBACK 불가능 |
식별자
- 반드시 문자로 시작해야 한다.
- 오라클에서 사용되는 예약어나 다른 객체명과 중복이 불가능하다.
- A~Z까지의 대소문자, 0~9까지의 숫자, 특수기호는(' _ ' , ' $ ', ' # ')만 포함 가능하다.
- 1~30자까지 가능하다
- 공백을 허용하지 않는다.
RowID
: RowID 데이터 형은 테이블에서 행의 위치를 지정하는 논리적인 주소 값이다. RowID는 데이터베이스 전체에서 중복되지 않는 유일한 값으로 테이블에 새로운 행이 삽입되면 테이블 내부에서 의사 컬럼 형태로 자동적으로 생성된다. RowID는 테이블의 특정 레코드에 랜덤으로 접근하기 위해 주로 사용하며, DB에 저장되어 있지 않고 DB data도 아니다.
SET UNUSED
: SET UNUSED는 사용을 논리적으로 제한할 뿐 실제로 삭제는 안한다. 이미 이전에 추가한 로우가 존재 한다면 그 로우에도 컬럼이 추가되지만 컬럼값은 NULL 값으로 입력된다.
> SET UNUSED 옵션을 사용하는 경우 : 테이블에 저장된 내용이 많을 경우 해당 테이블에서 컬럼을 삭제하려면 꽤 오랜시간이 걸리기 때문에 컬럼을 삭제하는 동안 다른 사용자가 해당 컬럼을 사용하려고 하면 테이블이 사용되고 있어, 다른 사용자가 해당 테이블을 이용할 수 없는 문제점이 발생한다. 이럴 경우 작업이 원할하게 진행되지 않고 LOCK이 발생한다. 이럴 때 SET UNUSED 옵션을 사용하여 컬럼의 사용이 논리적으로 제한될뿐, 실제로 삭제 하지 않기 떄문에 작업 시간이 오래 걸리지 않아 LOCK이 걸리지 않는다.
8월 30일 실습내용
GitHub - kkmwkk/OracleDatabase_practice: OracleDatabase_practice
OracleDatabase_practice. Contribute to kkmwkk/OracleDatabase_practice development by creating an account on GitHub.
github.com
'back > Oracle Database' 카테고리의 다른 글
Oracle Database(TCL, DCL) (0) | 2022.09.01 |
---|---|
Oracle Database(DML) (1) | 2022.08.31 |
Oracle Database(Function 4) (0) | 2022.08.27 |
Oracle Database(Function 3) (0) | 2022.08.25 |
Oracle Database(Function 2) (0) | 2022.08.24 |