오라클 데이터 타입 조회 - olakeul deiteo taib johoe

01 OBJECT 조회

SELECT *

FROM ALL_OBJECTS

WHERE OBJECT_NAME LIKE 'OBJECT명'

02 TABLE 조회

SELECT *

FROM ALL_TABLES

WHERE TABLE_NAME LIKE 'TABLE명'

03 SYNONYM 조회

SELECT *

FROM ALL_SYNONYMS

WHERE SYNONYM_NAME = 'SYNONYM명'

04 TABLE의 INDEX 정보

SELECT * 

FROM ALL_IND_COLUMNS

WHERE TABLE_NAME = 'TABLE명'

05 TABLE의 COLUMN 정보

SELECT * 

FROM ALL_TAB_COLUMNS

WHERE TABLE_NAME = 'TABLE명'

06 TABLE COMMENT 정보

SELECT * 

FROM ALL_TAB_COMMENTS

WHERE TABLE_NAME = '명'

07 COLUMN COMMENT 정보

SELECT *

FROM ALL_COL_COMMENTS

WHERE TABLE_NAME = 'TABLE명'

오라클의 데이터타입

  1. VARCHAR2(size)

    • 가변길이 문자 데이터 최대값: 4000 byte

      size 범위내에서 실제 데이터의 크기만큼만 저장공간을 사용한다.

      예) 이름, 주소, 과목명, 상품명, 뉴스제목 [ 길이들이 매번 달라질 수 있다 ]

  2. CHAR(size)

    • 고정길이 문자 데이터 : 2000 byte

      size크기만큼의 저장공간을 무조건 사용한다.

      예) 주민번호, 학번, 수강과목코드,

  3. LONG

    • 가변길이 대용량 문자 데이터, 최대값 : 2GB
    • 현재는 잘 사용되지 않음
    • 테이블당 하나 밖에 사용할 수 없다.
    • 제약조건을 정의할 수 없다.
    • order by 나 group by에 포함시킬 수 없다.
  4. CLOB ( Character Large OBject)

    • 가변길이 대용량 문자 데이터, 최대값: 4GB

      예) 블로그의 본문, 신문기사, 논문

  5. NUMBER(p, s)

    • 가변길이 숫자 데이터
    • p : 십진수의 총 갯수 , s : 소숫점이하 자릿수 ( 0 이면 정수 , 0이아니면 전부 실수)
  6. DATE

    • 날짜 및 시간 데이터

      예) 입사일 , 가입일, 주문날짜, 이체날짜, 신청날짜 ...

  7. TIMESTAMP

    • 날짜 및 시간 데이터, 소수점 이하 초까지 포함한다.
  8. BLOB (Binary Large OBject )

    • 가변길이 대용량 이진 데이터 , 최대값: 4GB

      예) 그림, 영상, 게임파일

  9. ROWID

    • 테이블에서 행의 고유주소를 나타내는 64진수 숫자데이터

    • 예)

        select rowid, department_id, department_name, manager_id, location_id
        from departments;
      
        rowid                   department_id                    department_name
        -------------------------------------------------------------------------
        AAAEAWAAEAAAACtAAA      10                               Administration
        AAAEAWAAEAAAACtAAB      20                               Marketing
        AAAEAWAAEAAAACtAAC      30                               Purchasing
    • 로우아이디의 구성

      -오브젝트번호(6자리) + 파일번호(3자리) + 블록번호(6자리) + 데이터번호(3자리)

      AAAEAW AAE AAAACt AAA

      AAAEAb AAE AAAADN AAA

      • 오브젝트번호

        해당 데이터가 속해있는 Eㅔ이터베이스 객체(테이블)의 번호

        데이터베이스 객체마다 고유하다.

      • 파일번호

        해당 데이터가 위치하고 있는 테이블스페이스 파일번호 (어느책인지)

      • 블록번호

        -파일내부의 블록번호 (어느챕터인지)

      • 데이터번호

        데이터가 저장되어있는 데이터 디렉토리 슬롯번호

테이블 생성하기

CREATE TABLE 테이블명 (
    컬럼명 데이터타입,
    컬럼명 데이터타입(길이),
    컬럼명 데이터타입(길이),     DEFAULT 기본값,
    컬럼명 데이터타입(길이)      NOT NULL        <----- NULL 값을 허용하지 않음
    ...
);

샘플 테이블 작성
            연락처 정보를 저장하는 샘플테이블 작성하기
                        이름                필수값            VARCHAR2            50
                        전화번호            필수값            VARCHAR2            20
                        주소                옵션                VARCHAR2            200
                        이메일            옵션                VARCHAR2            256
                        팩스                옵션                VARCHAR2            20
                        등록일                                DATE
            CREATE TABLE CONTACTS (
                        name            varchar2(50) not null,
                        tel                varchar2(20) not null,
                        address        varchar2(200),
                        email            varchar2(256),
                        fax                varchar2(20),
                        create_date    date            default sysdate
            );

데이터 추가

INSERT INTO 명령어 사용
형식    
        *값이 저장될 컬럼명을 직접 나열하는 방식
        *특정 컬럼명을 생략하는 것도 가능하다. 
        (생략된 컬럼에는 null이 자동으로 들어간다)
        (생략된 컬럼중에서 DEFAULT 값이 설정되어 있는 컬럼은 기본값이 저장된다.)

        insert into 테이블명    (컬럼명, 컬럼명, 컬럼명    )
        values                         (값,        값,        값            )
        예)

insert into contacts(name, tel, address, email, fax, create_date)
        values('홍길동', '010-1111-111', '서울', '', '02-1111-1111', sysdate);

        insert into contacts(name, tel, fax, create_date)
        values('홍길동', '010-1111-111', '02-1111-1111', sysdate);

        insert into contacts(name, tel, fax)
        values('홍길동', '010-1111-111', '02-1111-1111');


*컬럼명을 생략하는 방식 
        *무조건 VALUES에서 모든 컬럼에 들어갈 값을 명시해야 한다.
        *NULL인 곳도 null이라고 명시해줘야한다. 
        *값의 순서와 컬럼의 순서가 동일해야 된다.
        INSERT INTO 테이블명
        VALUES(값, 값, 값)

        예)
        insert into contacts
        values('홍길동', '010-1111-111', '서울', '', null, sysdate);

데이터변경

update 명령어 사용
형식    
        update 테이블
        set
                    컬럼명 = 값,
                    컬럼명 = 값,
                    컬럼명 = 값
                    [where 조건식]
                    * where 조건식이 없으면 모든 행에서 해당 컬럼의 값을 변경한다. (모두바뀌니까 할 일이 없을 것이다)
                    * where 조건식이 있으면  조건식을 만족하는 행에서만 해당 컬럼의 값을 변경한다. 
                    예)
                            UPDATE contacts
                            SET
                                    tel = '010-1234-5678',
                                    address = '서울특별시 서대문구'
                            where name = '홍길동';

데이터삭제

DELETE FROM 명령어 사용
형식 
            DELETE FROM 테이블명
            [WHERE 조건식]
            * where 조건식이 없으면 테이블의 모든 행이 삭제된다.
            * where 조건식이 있으면 조건식을 만족하는 행만 삭제한다.

문자열 연결하기.jpg

문자열 연결하기.jpg

A new tool for teams & individuals that blends everyday work apps into one.

www.notion.so

오라클 데이터 타입 조회 - olakeul deiteo taib johoe

트랜젝션 처리 명령어.jpg

트랜젝션 처리 명령어.jpg

A new tool for teams & individuals that blends everyday work apps into one.

www.notion.so

오라클 데이터 타입 조회 - olakeul deiteo taib johoe

트랜잭션 처리 명령어

  • commit
    • INSERT, UPDATE, DELETE 쿼리의 실행 결과를 데이터베이스에 영구적으로 반영시킨다
      SELECT는 단순 조회니까 필요가 없음
  • rollback
    • INSERT, UPDATE, DELETE 쿼리의 실행 결과에 대한 데이터베이스 반영을 취소시킨다.

Commit 을 rollback할수는 없다.