오라클 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자격증

추천학원 http://www.itmoya.com

Posted by genesmer
,