Oracle 6강 - 데이터타입2

날짜타입
날짜타입 사용예)

CREATE TABLE TEMP07(
    COL1 TIMESTAMP,
    COL2 TIMESTAMP WITH TIME ZONE, -> 대륙명 / 도시명으로 출력됨.
    COL3 TIMESTAMP WITH LOCAL TIME ZONE); -> 서버가 위치한 시간대역이 출력됨.

DATE타입의 컬럼일 때, 문자열은 자동으로 날짜형식으로 바뀜.
but,반드시 날짜타입의 형식을 갖춰야함.(8자리 - 연, 월, 일)

  1. 기타자료형
  • 이진자료(BINARY DATA)를 저장하기 위한 데이터타입

  • RAW, LONG RAW, BLOB, BFILE 등이 제공됨(이 중 BLOB, BFILE만 사용, 나머지는 서비스 종료)

  • 이진자료는 오라클에 의해 해석되거나 변환되지 않음.

    1)RAW
    . 상대적으로 작은 단위의 2진 자료 저장
    . 인덱스 처리가 가능
    . 최대 2000 BYTE 처리 가능
    . 16진수 및 2진수 형태로 저장

    (사용형식)
    컬럼명 RAW(크기)

    HEXTORAW('2ADD') -> 16진수를 RAW타입(2진수)으로 바꿔서 저장해라. 2ADD = 0010 1010 1011 1011

    2)BFILE
    . 이진자료 저장방식
    . 대상의 자료는 데이터베이스 외부에 저장되고 데이터베이스에는 경로정보와 파일명만 저장
    . 최대 4GB까지 처리 가능
    (사용형식)
    컬럼명 BFILE;

사용예)

CREATE TABLE TEMP09(
              COL1 BFILE);
        

*사진자료 저장 순서
1. 자료 준비(절대경로 파악)
절대경로 : 'D:\A_TeachingMaterial\2.Oracle'
2. 디렉토리 객체 생성
CREATE DIRECTORY 디렉토리 이름 AS 경로명;
CREATE DIRECTORY TEST_DIR AS 'D:\A_TeachingMaterial\2.Oracle';
3. 데이터 삽입
INSERT INTO TEMP09
VALUES(BFILENAME'TEST_DIR','sample.jpg'));
SELECT
FROM TEMP09;

3)BLOB
. 이진데이터 처리 데이터 타입
. 원본자료(사진, 동영상 등)를 데이터베이스 내부에 저장
. 4GB까지 저장 가능
(사용형식)
컬럼명 BLOB;

사용예)

CREATE TABLE TEMP10(COL BLOB);
    

** 저장순서
1. 테이블 준비
2. 디렉토리 객체 생성
3. 데이터 삽입(직접 삽입할 수 없음, 익명블록(PL/SQL문)등 사용) - 호출 불가능, 한 번 쓰고 버림

:= : 자바에서 = 와 같음 -> 대입연산자

DECLARE : 선언영역

DECLARE
    L_DIR VARCHAR2(20):='TEST_DIR';
    L_FILE VARCHAR2(30):='sample.jpg';
    L_BFILE BFILE;
    L_BLOB BLOB;

BEGIN
 INSERT INTO TEMP10(COL) VALUES(EMPTY_BLOB())
  RETURN COL INTO L_BLOB; 


  L_BFILE:=BFILENAME(L_DIR, L_FILE);
  DBMS_LOB.FILEOPEN(L_BFILE, DBMS_LOB.FILE_READONLY); -- 파일을 열어서 확인
  DBMS_LOB.LOADFROMFILE(L_BLOB, L_BFILE, DBMS_LOB.GETLENGTH(L_BFILE));
  --파일을 열어서 로드시키고 BFILE의 길이만큼 잘라서 가져오기
  DBMS_LOB.FILECLOSE(L_BFILE);

  COMMIT;
 END;

-> 왜 여기서 DECLARE를 사용했을까??

  1. 데이터 검색 명령
  • SELECT 문 제공

    (사용형식)
    SELECT[*][DISTINCT]컬럼명 [AS]["]별칭["][,]
    컬럼명 [AS]["]별칭["][,]
    "
    컬럼명 [AS]["]별칭["]
    FROM 테이블명 [별칭][WHERE 조건]
    [GROUP BY 컬럼명[,컬럼명,...]][HAVING 조건] --- 조건절이 참이면 SELECT절이 실행되고 거짓이면 실행되지 않음.
    [ORDER BY 컬럼명|컬럼인덱스 [ASC|DESC],컬럼명|컬럼인덱스[ASC|DESC],...]];

    => 순서대로 써야함

    ** 객체 삭제
    DROP 객체종류 객체명;
    SELECT 문의 필수 절 : SELECT, FROM - 출력할 열을 결정해주는 역할

    모든 열을 출력할 필요가 없을 때 : 컬럼명 다음에 AS를 사용해서 별칭을 검색(AS는 필수적인 것은 아니다.)
    별칭 안에 특수문자가 있으면 반드시 쌍따옴표(")를 써야하고 공백은 허용 안 함.

    만약 공백이 있으면 ERROR 메세지가 뜸 : FROM 키워드가 안 보인다.

    ORDER BY : 정렬(오름차순[ASC], 내림차순[DESC] - 생략하면 기본값은 오름차순)

    집계함수는 외워야함.
    COUNT(행의 수), SUM(합계), AVG(평균), MAX, MIN, STDDEV(표준편차), VARIAN(분산)

    객체지향언어는 상속, 캡슐화(데이터 은닉), 다형성이 지원되어야 함.
    -- 컬럼명 앞에 DISTINCT가 붙을 수 있음(중복방지) - 중복되는 데이터를 하나로 취급해줌.

    테이블 삭제 시 유의사항 : 관계가 있을 때는 최하위 자식테이블부터 삭제해야함.

각 테이블명 뜻:
DATE : 날짜타입
PROD : 상품
QTY : 수량
CART : 매출
COST : 매입단가
PRICE : 매출단가
SALE : 할인판매단가

BUY_PROD : 상품코드
BUY_COST : 매입단가

CART_MEMBER : 회원
CART_NO : 장바구니 번호
CART_PROD : 상품코드

오늘의 소감 : 딱히 다를 건 없다.

좋은 웹페이지 즐겨찾기