오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원 오라클 OCP 오라클자격증 OCP자격증 데이터베이스 DB 데이터베이스관리자 DB관리자 오라클학원 OCP학원
SQL - DATATYPES
SQL은 대부분의 DATABASE management System에서 쓰는 언어다. 기본적으로 "하나나 여러개의 Table에서 이거 저거 조건을 만족하는 값을 찾아라" (우리 회사에서 7만불 이상 벌면서 토론토에 사는 인간을 찾아라) 뭐 이런데 쓰이는 거다. (찾기만 하는것이 아니고 쓰기도 한다) SQL도 여러 가지가 있으나, 하나 확실한건 나같은 머리 나쁜 사람도 쓰기 편하다는 것이다. 왜냐면 다른 언어같이 복잡한 loop이나 뭐 그런게 없어서 어찌하면 빨리 돌아갈까 하는 걱정을 안해도 되기 때문이다. (쫌 복잡해 지면 걱정 해야도긴 한다) 사실 어떤 DATABASE system 이냐에 따라 SQL이 좀 틀린데, 난 인기를 더해가는 오라클에서 쓰는 SQL을 공부하겠다. 하여간 잡소리는 그만 하고 쬐끔씩 배워 보자.
알다시피 DATABASE 란 DATA를 가지고 있는 테이블들의 모임이다. 그리고 그테이블 들은 행과 열의 모임이다. (Row, Column) 그리고 하나의 데이타는 제각기 그나름데로의 성격을 가지고 있다. 어떤 데이타는 숫자고 어떤 데이타는 Character다. 대부분 한 열은 같은 성질의 데이타를 가지고 있다. 오늘은 데이타 타입에 대해 알아볼까 한다.
CATEGORY Datatypes
---------------------------------------------------------------------------------------
Character CHAR, NCHAR, VARCHAR2, NVARCHAR2
Number NUMBER
Long and Raw LONG, LONG RAW, RAW
Date and Time DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE,
TIMESTAMP WITH LOCAL TIME ZONE, INTERNAL YEAR TO MONTH,
INTERVAL DAY TO SECONDS
Large object CLOB, NCLOB, BCLOB, BFILE
Row ID ROWID, UROWID
----------------------------------------------------------------------------------------
뭐 다 설명하긴 너무 길고 한꺼번에 이해하기도 헤깔리니까 대강 필요하다 싶은거만 하나씩 보자....
CHAR
Fixed-length alphanumeric string이다. 뭔소리냐, 길이가 정해져 있는 숫자와 문자란 말이다. 최소 1 byte 부터 최고 2000 bytes 까지 넣을수 있고 그리고 정해진 길이가 안되면 space로 알아서 채워진다. CHAR의 default size는 1이다.
VCHAR2
Variable-length alphanumeric string이다. 뭐 대강 감 잡았듯이 길이가 정해져 있지 않단 말이다. 4000 bytes 까지 가능하고 default size가 없어서 항상 size를 지정해 주어야 한다. 나머지는 CHAR 하고 별다른게 없다.
여기서 잠깐, 두개를 예들 통해 비교해 보자.
CHAR datatype: 'YO' = 'YO ' 두번쨰 데이타 뒤에있는 space가 무시된다.
VCHAR2 datatype: 'YO' < 'YO ' 두번째 데이타 뒤에있는 space가 인정되 사이즈가 더크다.
NUMBER (p,s)
NUMBER는 숫자로만 된 데이타다. 그옆에 있는 p 는 presicion의 약자고 s 는 scale의 약자다. (이게 없으면 최대값이 자동으로 지정된다. p는 데이타 전체 크기, 1부터 38까지고, s는 소숫점 이후 크기, -84부터 127까지다. 설명하면 너무 길고 복잡하니 예를 들어보자.
NUMBER (5,2) - 이 열에 들어갈수 있는 수는 -999.99 부터 999.99다. 소숫점 이후 최대숫자길이가 2, 전체 길이가 5. 그러무로 정수부분의 길이는 3이다. (5-2) 만약 이 열에는 정수만 들어 간다면 999가 최대값이고 -999가 최소값이 될것이다.
NUMBER (4,2) - 여기에 들어갈수 있는 최대최소의 수는 99.99 에서 -99.99지만 만약 소숫점 이하의 자릿수가 크면 주어진 싸이즈에 맞춰 반올림을 한다. 예를 들어 12.125 를 집어 넣으면 12.13 이라고 입력되는 것이다. 그런데 수가 너무 커 p값을 넘어가면 에러가 난다. 예를 들어 123.1을 넣으려 하면 이 열의 최대최소값의 범위를 벗어남으로 에러가 난다는 말이다. 기억나는가 바로 위 문단에서 말했던 p - s = 정수자릿수!!!!! 아님면 소숫점 이하 0의 갯수
말이 너무 많다. 예제나 보자.
Value Datatype StoredValue
-------------------------------------------------
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error
123456 NUMBER(6,2) Error
1234.9876 NUMBER(6) 1235
123456.1 NUMBER(6) 123456
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error
123456789 NUMBER(5,-4) 123460000
1234567890 NUMBER(5,-4) Error
12345.58 NUMBER(*, 1) 12345.6 - * 은 기본값 38이다
0.1 NUMBER(4,5) Error
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
0.099996 NUMBER(4,5) Error
------------------------------------------------------------
아하!!! 좀 머리가 깨끗해 진다. 역시 예제가 최고다!!!! 혹시 잘 이해가 안되신다면 p-s는 정수자릿수 아님 소숫점 이하 0의 갯수만 생각하면서 다시 한번 천천히 해보시길...
DATE
말그데로 날짜를 나타네는 데이타타입이다. 날짜에는 년도, 달, 날짜, 시간, 분 그리고 초가 포함된다. 오라클에서는 보통 순서가 DD-MON-YY 00:00:00이다.
예) 06-JAN-05 10:59:13 - 2005년 일월 6일 10시 59분 13초.
오라클 OCP 데이터베이스 DB DATABASE DB관리자 데이터베이스관리자 DB관리자 SQL 오라클자격증 OCP자격증
오라클 OCP 데이터베이스 DB DATABASE DB관리자 데이터베이스관리자 DB관리자 SQL 오라클자격증 OCP자격증
오라클 OCP 데이터베이스 DB DATABASE DB관리자 데이터베이스관리자 DB관리자 SQL 오라클자격증 OCP자격증
오라클 OCP 데이터베이스 DB DATABASE DB관리자 데이터베이스관리자 DB관리자 SQL 오라클자격증 OCP자격증