Oracle

ORACLE 공부 4일차 2020/07/24

햄찌개 2020. 8. 27. 20:24

01)자료형
2.숫자 자료형
    -숫자(정수 및 실수) 자료를 저장 
    -number 타입이 제공
    
(사용형식)
컬럼명 number([정밀도 | * [ ,스케일]])
    -정수와 실수 자료를 저장 
    -저장범위: 1.0 x E-130 ~~9.999.......x E125(9의 갯수가 38개)
    -정밀도 > 스케일 인 경우
        -정밀도는 전체 자리수 스케일은 소숫점 이하의 자리수
        -정밀도는1~38 사이의 수 
        -스케일은 ! -80~127 사이의 수로 표현
        - *sms\는 전체 허용 범위내에서는 사용자가 입력한 자료에 맞추어 기억공간을 확보
        ex) 
        칼럼명 number : --정수 실수 모두 저장
        컬럼명 number (정밀도 ,스케일) --실수
        컬럼명 number (정밀도 ) --정수
        컬럼명 number (*,스케일 ) --정수 실수 
        
예)
-------------------------------------------------------------
입력값             선언          기억되는 값
-------------------------------------------------------------
1,234,567.897  number      1,234,567.897
1,234,567.897  number(*,1) 1,234,567.9 -- 소숫점 2번째 자리에서 반올림된디.
1,234,567.897  number()     1,234,568 --number(*,0)과 같다  --java에서 int로 형변환 같은 느낌
1,234,567.897  number(9,2) 1,234,567.90
1,234,567.897  number(6)    오류    --number(6,0)과 같다 --기억공간 부족으로 오류
1,234,567.897  number(7,-2) 1,234,600      --  -로 음수인 경우 정수부분에서 반올림

정밀도 << 스케일 인 경우 
    -정밀도는 0가 아님 유효숫자의 갯수(소숫점 이하)
    -(스케일 - 정밀도) : 소숫점 이하에서 맨 앞에 존재해야할 0의 갯수
    
사용예)

---------------------------------------------------------------------
입력값                 선언                  기억되는값
---------------------------------------------------------------------
1.234                   number(4,5)              오류
1.23                     number(3,5)             오류
0.0123                  number(3,4)             0.0123
0.01234                number(4,5)              0.01234
0.001234               number(3,5)             0.00123 
---------------------------------------------------------------------




3. 날짜형
    -날짜자료(년 월 일 시 분 초 )를 저장한 데이터 타입
    -DATE, TIMESTAMP이 제공된다
1)DATE
    -기본 날짜형 
    -덧셈과 뺼셈의 대상
    -크기 지정 않함
    (사용형식)
   컬럼명 DATE 
   
   날짜 함수 중 SYSDATE : 시스템의 날짜 정보 반환
   
사용예);
CREATE TABLE TEMP05(
col1 date,
col2 date,
col3 date);

insert into temp05
    values('20191112',sysdate, sysdate -20);

select *from temp05;
select to_char(col1, 'yyyy-mm-dd hh24:mi:ss'),
        to_char(col2, 'yyyy-mm-dd hh24:mi:ss'),
        to_char(col3, 'yyyy-mm-dd hh24:mi:ss')
from temp05;
                

2)timestamp  
    -시간대 정보(timezone)와 10억분의 1초 단위의 시간정보 제공
    3가지 데이터 타입 제공
        -timestamp : timezone 정보가 없음
        -timestamp with timezone : timezone 정보가 포함
        -timestamp with loacl timezone : 서버가 위치한 타임존 정보 포함 
        
(사용형식)
컬럼명 timestamp

(사용예);

create table temp06(
col1 timestamp,
col2 timestamp with timezone,
col3 timestamp with loacl timezone);

insert into temp06 values(sysdate,sysdate,sysdate);

select * from temp06;
    


02)기타 자료형
    -이전 자료 저장을 위한 자료 타입
    -BLOB, RAW, LONG, BFILE
    
1)RAW
    -상대적으로 작은 양의 이진 자료를 저장 
    -인덱스 처리가 가능
    -데이터베이스에서는 해석이나 변화 작업은 수행하지 않음
    -최대 2000BYTE 까지 저장 가능
    
    (사용형식)
    컬럼명 RAW(크기)

CREATE TABLE TEMP07(
COL1 RAW(1000),
COL2 RAW(200));

INSERT INTO TEMP07
    VALUES(HEXTORAW('6ADC'),  HEXTORAW('FF'));
    
    SELECT * FROM TEMP07;


2020-07-24 
01) 기타자료형

1)BFILE
-이진 데이터 저장
-대상이 되는 이진 데이터를 데이터베이스 외부에 저장하고 
-경로 정보(DIRECTORY 객체)만 데이터베이스에 저장
-4GB 까지 처리 가능
(사용형식)
컬럼명 BFILE;
    -디렉토리 별칭은 30 BYTE, 파일명은 256 BYTE 까지 허용
        -디랙토리 별칭 : 디렉토리가 길면 별칭으로 만들어준다.

 


2)blob
-이진 데이터 저장
-대상이 되는 이진 데이터를 데이터베이스 내부에 저장
-4GB 까지 처리 가능

(사용형식)
컬럼명 blob;
예)
create table temp09(
col1 Blob
);


02)조회문(SELECT)
    -테이블 내의 자료를 조회할 때 사용
(사용형식)
SELECT  * | [DISTINCT] 컬럼명 |expr [AS] ["] 컬럼별칭 ["] ,
            컬럼명 |expr [AS] ["] 컬럼별칭 ["] ,
            ......
            컬럼명 |expr [AS] ["] 컬럼별칭 ["] 
            --컬럼별칭이 ORCLE에서 사용되어지거나 공백을 포함 하면 ""로 묶어주어야 한다.
 --DISTINCT : 중복된 자료를 제외시킨 결과
            --SELECT 절에 '*' 를 사용하면 해당 테이블에 있는 모든 컬럼 전체를 결과로 출려
  --WHERE 절이 생략되면 해당 테이블의 모든 행이 결과로 출력
             --'컬럼인덱스'는 SELECT 절에 사용된 컬럼의 순번(1부터 사용)
             --'[ASC|DESC]' 정렬방법 , ASC는 오름차순, DESC는 내림차순, default는 ASC이다.

FROM 테이블명 [별칭]
[WHERE 조건]
[GROUP BY 컬럼명 [, 컬럼명, ......]]
[HAVING 조건] --5개의 조건이 주어지면 HAVING
[ORDER BY 컬럼명|컬럼인덱스 [ACS|DESC],....]

SELECT 50*12345 AS "첫번째 컬럼", --공백이 있으면 ""
         50*12345 AS 두번째컬럼, --가장 많이 사용 
          50*12345 세번째컬럼,  -- AS 생략가능
          MEM_NAME AS 회원번호 -- 없어도 오류 안남  위에 3개가 회원 수만큼 찍힌다.
FROM MEMBER; --컬럼이 하나도 포함 않되면 시스템에서 주어준 DUAL을 쓰면된다.

1)WHERE 절 
    -조건을 기술하는 절 
    -일반조인이나 조인 조건을 기술하는 절
    -관계연산자 (<, >, =, >=, <=, != ) : 크기비교
                        --  !=대신에 <>도 가능
    -논리연산자 ( NOT, AND, OR) --우선순위 순서다
    -IN, SOME, ANY, ALL, EXISTS 사용가능