IN, ANY(SOME), ALL, EXIST

실습/데이터베이스 2010. 11. 2. 16:42

어떤 질의들은 DB에서 어떤 값들을 검색한 후에 비교 조건으로 이용된다.
이런 질의들은 중첩 질의를 이용해 표현 할 수 있는데 중첩 질의의 결과는 한개의 스칼라값,  한개의 애트리뷰트로 이루어진 릴레이션, 또는 여러개의 애트리뷰트로 이루어진 릴레이션으로 반환 될 수 있다.


- 단일 값인 경우
 스칼라 값으로 취급하여 연산가능


- 중첩 질의 반환 값이  한개의 애트리뷰트로 이루어진 릴레이션인 경우
 IN, ANY(SOME), ALL, EXISTS

  IN                       한 애트리뷰트가 값들의 집합에 '속하는'가?  

 value-1 [NOT] IN (subquery-1)
=> value-1은  subquery01에 있는 값인가


  ANY(SOME)       어떤(적어도 하나) 값에 대한 비교          
 value-1 { = | > | < | >= | <= | <> } { SOME | ANY } (subquery-1)
=> value-1 은 subquery-1 의 어떤(적어도 하나의) 값과 같은가, 또는 값보다 큰가.


  ALL                    모든 값에 대한 비교
  value-1 { = | > | < | >= | <= | <> } { ALL } (subquery-1)
=> value-1 은 subquery-1 의 모든 값과 같은가, 값보다 큰가..


  EXISTS              내부질의(subquery)의 값이 어떤 것이든 내부질의가 결과값만 반환하면(행만존재하면) 참
 [NOT] EXISTS (subquery-1)
=> subquery-1의 결과 값이 존재하는가
  EXISTS는 비교구문이 아니기 때문에 IN, ANY(SOME), ALL과 달리 EXISTS 앞에 subquery-1의 결과값과 비교하는 값인 value-1 이 없다.


- 반환 값이 여러 애트리 뷰트로 이루어진 릴레이션이 경우
 EXISTS

 
참고
 비교연산자( = , <>, <=, <, >=, >) 는 ANY, ALL와 결합해 사용할 수 있다.
- ANY= -> IN  ,   <>ALL -> NOT IN



:

Recyclebin (삭제된 table 복구)

실습/데이터베이스 2010. 10. 4. 20:37

Oracle 10g에서 Flashback Table이라는 기능이 추가 되었다.

이것은 Drop Table를 통해서 원하지 않던 테이블을 날려 버렸을 경우에 'BIN$' 이런식의 이상한 이름의 테이블이 생기는데 drop이 불가능하다.


이것이 "Recycle bin" 새롭게 생긴 기능이다.

drop 시킨 table은 'show recyclebin' 명령으로 확인 할 수 있다.
SQL> show recyclebin

recyclebin을 비우고 싶다면
SQL> PURGE RECYCLEBIN;



완전히 삭제됨     

 recyclebin의 테이블을 다시 살리고 싶다면
SQL>FLASHBACK TABLE PICTURES TO BEFORE DROP:
        FLASHBAK COMPLETE:
:

Table 목록보기, attribute 보기

실습/데이터베이스 2010. 10. 4. 20:00

1. SQL> select * from tab;
계정안에 생성된 table의 목록을 확인 할수 있다.

2. SQL> describe 테이블명;
   SQL> desc 테이블명;
  이름                  널?            유형
--------------------------------------------------------
EMPNO                               NUMBER(4)

attribute명,  빈 셀 허용여부,    제약조건

제약조건
문자형 : CHAR(자릿수), VARCHAR2(자릿수)
숫자형 : number(자릿수, (자릿수)) (최대문자열, (소수점 자리))
날짜형 : data
: