테이블 생성

create table p (

  pdtno number(3) not null,

  pdtname varchar2(25),

  qty number(6, 2),

  constraint pdtnopk primary key(pdtno)

);


create table pc (

  pdtno number(3) not null,

  constraint pdtnofk foreign key(pdtno) references p(pdtno)

);


이렇게 하면 pc(pdtno)가 p(pdtno)를 참조한다.

따라서 p 테이블의 레코드는 맘대로 삭제도 못 함.

그러나 pc 테이블을 다음과 같이 생성하면,


create table pc (

  pdtno number(3) not null,

  constraint pdtnofk foreign key(pdtno) references p(pdtno) on delete cascade

);


p 테이블의 레코드를 삭제하면 pc 테이블의 레코드가 연쇄적으로 삭제된다.


on delete cascade 이외에 on delete set null 라는 제약도 있다.

부모 레코드가 삭제되면 자식 레코드가 null이 된다.

테이블 정의

create table proj (

  task_id varchar2(3),

  based_on varchar2(3),

  task_in_charge varchar2(10)

);


데이터 삽입

insert into proj values('P01', '', 'KING');

insert into proj values('P02', 'P01', 'KOCHAR');

insert into proj values('P03', '', 'GREEN');

insert into proj values('P04', 'P03', 'SCOTT');


OUTER JOIN 쿼리 수행

SELECT p.task_id, p.based_on, d.task_in_charge

FROM proj p FULL OUTER JOIN proj d

ON (p.based_on = d.task_id);


SELECT p.task_id, p.based_on, d.task_in_charge

FROM proj p LEFT OUTER JOIN proj d

ON (p.based_on = d.task_id);


SELECT p.task_id, p.based_on, d.task_in_charge

FROM proj p RIGHT OUTER JOIN proj d

ON (p.based_on = d.task_id);


결과

TASK_IDBASED_ONTASK_IN_CHARGE
P02P01KING
(null)(null)KOCHAR
P04P03GREEN
(null)(null)SCOTT
P03(null)(null)
P01(null)(null)
 Record Count: 6; Execution Time: 4ms View Execution Plan  link
TASK_IDBASED_ONTASK_IN_CHARGE
P02P01KING
P04P03GREEN
P03(null)(null)
P01(null)(null)
 Record Count: 4; Execution Time: 4ms View Execution Plan  link
TASK_IDBASED_ONTASK_IN_CHARGE
P02P01KING
P04P03GREEN
(null)(null)KOCHAR
(null)(null)SCOTT
 Record Count: 4; Execution Time: 64ms View Execution Plan  link

http://sqlfiddle.com


다양한 데이터베이스를 제공한다.

짱 좋다.

  • 함수
    • NVL(exp1, exp2)
      • exp1이 NULL이면 exp2 리턴, exp1이 NULL이 아니면 exp1 리턴
      • exp1과 exp2는 반드시 같은 타입
    • NVL2(exp1, exp2, exp3)
      • exp1이 NULL이면 exp2 리턴, exp1이 NULL이 아니면 exp3 리턴
      • exp2와 exp3는 반드시 같은 타입
    • NULLIF(exp1, exp2)
      • exp1과 exp2가 동일하면 널 값을 리턴, 아니면 exp1 리턴
    • SYSDATE
      • 시스템의 현재 날짜와 시간을 리턴
      • CHECK 제약의 조건으로 사용할 수 없다
    • SUBSTR(str, 위치, 문자수)
      • str의 위치에서 문자수만큼 문자열 추출
      • SQL> SELECT SUBSTR('PARKJUNHYUN', 2, 3) FROM DUAL;
        ARK
    • TO_DATE(문자형 데이터, [날짜형 변환형식])
      • 날짜형 데이터 리턴
      • 기본 형식은 'YY/MM/DD'
      • 날짜형 변환형식
        • 형식요소의 구분은 -, /, ., ;, :, "text" 가능
        • 날짜형 변환형식
          •  구분

            형식요소

            내용

            범위 

             날짜

             YY, RR

             연도(숫자 2자리 표기) 예: 11
             YYYY, RRRR 연도(숫자 4자리 표기) 예: 2011
             YEAR 연도(문자 표기)

             예: TWENTY ELEVEN

             MM 월(숫자) 1~12
             MON 3문자 단축형 월

             JAN~DEC 혹은 '월'

             MONTH 월(문자)

             JANUARY~DECEMBER

             DD 일(숫자)

             1~31(달에 따라)

             DAY 요일

             일요일~토요일

             D 그 주의 몇 번째 날 1~7
             DDD 그 해의 몇 번째 날 1~366(해에 따라)

             시간

             HH, HH12

             시각

             1~12
             HH24 시각 0~23
             MI 분 0~59
             SS 초 0~59
             SSSS

             자정이후 초 단위 시간

             0~86399

             AM, A.M., PM, P.M.

              

             기타

             CC 세기 예: 20
             Q 4분기 1~4
             W 그 달의 주 1~5
             WW 그 해의 주 1~52

          • http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#g195443
          • YY/YYYY, RR/RRRR은 Y2K와 관련있는 연도의 형식요소로 아래와 같이 날짜형으로 변환할 문자형 데이터 범위에 따라 세기를 변환한다
            •  문자형 데이터 범위

              YY

              RR

              0~49

              현재 세기

              현재 세기

              50~99

              현재 세기

              이전 세기

            • 아래와 같이 문자형 데이터를 TO_DATE() 함수에 변환형식('YYMMDD', 'RRMMDD')을 적용하여 날짜형 데이터로 변환하고, 이 날짜형 데이터를 출력형식('YYYY-MM-DD', 'RRRR-MM-DD')를 적용하면 서로 결과가 다르게 나타나는 것을 알 수 있다. 
              •  문자형 데이터

                변환형식 

                날짜형 데이터 

                출력형식 

                 출력결과

                 '970505'

                'YYMMDD' 

                97/05/05 

                'YYYY-MM-DD'

                2097-05-05 

                 'RRMMDD'

                97/05/05 

                'RRRR-MM-DD'

                1997-05-05

                 '110215'

                 'YYMMDD'

                11/02/15 

                'YYYY-MM-DD' 

                 2011-02-15

                 'RRMMDD'

                11/02/15 

                'RRRR-MM-DD'

                 2011-02-15


    • TO_CHAR(날짜형 데이터, [날짜형 변환형식])
      • VARCHAR2 리턴
      • 형식요소의 구분은 -, /, :, 공백 가능
      • 날짜형 변환형식
        • TO_DATE() 참조
        • Format Model Modifiers
          • FM(Fill Mode)
            • 변환 결과 앞뒤로 0 또는 공백 제거
          • FX(Format eXact)
            • 입력되는 문자형 데이터와 변환형식이 정확히 일치하지 않으면 에러
    • TO_CHAR(숫자형 데이터, [숫자형 변환형식])
      • 숫자형 변환형식
        • 형식요소 

          내용 

          예 

          자릿수 지정 

                 '9999' 

          0으로 채움 

                 '0999' 

          소숫점 추가 

               '999.99' 

          천단위마다 컴마(,) 추가 

              '9999,99' 

          화폐단위 표시 

          '$99,999.99' 

          국가별 화폐단위 표시 

          'L99,999.99'

          EEEE 

          지수형태로 표시 

          '9.99EEEE'

          S

          부포표시 

           'S9999.99' 

          공백으로 채움 

           

    • TO_NUMBER(문자형 데이터, 숫자형 변환형식)
      • 숫자형 데이터 리턴
      • 숫자형 변환형식
        • TO_CHAR() 참조


http://blog.naver.com/dxeing?Redirect=Log&logNo=90133992860

Windows XP에 SATA 드라이버가 포함되어 있지 않아서 발생하는 문제이다.

SATA 드라이버를 Windows XP 이미지에 포함시킨 후 설치해야 한다.

NLITE 라는 프로그램을 통해서 작업이 가능하다.


참고 사이트:

http://goodjobrabin.tistory.com/1709

http://goodjobrabin.tistory.com/1226

아래 포스팅 참고

http://blog.naver.com/kurishin?Redirect=Log&logNo=60052208482

 

Hex Editor

http://mh-nexus.de/en/hxd/

참고

http://anster.egloos.com/2183261

http://www.badayak.com/1496

http://pacs.tistory.com/49

http://blog.naver.com/PostView.nhn?blogId=chomolanma&logNo=20093254339

http://blog.naver.com/fntlove?Redirect=Log&logNo=110130634456

+ Recent posts