[Database/Oracle] 4. 데이터베이스의 데이터 타입, 정렬, 중복 제거 함수

minj-j·2022년 10월 11일
0

Oracle

목록 보기
4/13
post-thumbnail

DataType(데이터 타입)

1. 숫자

  • 38byte로, 명시적 길이제한을 하지 않으면 데이터베이스 내 공간이 낭비된다.

정수형
Number(x) = 정수형 데이터 타입으로 괄호 안의 x는 자리수 이다.

실수형
Number(x,y) = x는 소수점 제외 자리수, y는 소수점 이하 자리수 이다.

2. 문자열

고정형
char(x)
ex) char(10) : 10자리 x-x-x-?-?-?-?-?-?-? x 뒤의 ?의 스토리지는 남아있고 데이터를 넣어서 변경이 가능하므로 업데이트가 자주 발생하는 값에 유리하다.

가변형
varchar2(x)
ex) varchar2(10) : 10자리 x-x-x-?-?-?-?-?-?-? x 뒤의 ?는 제거되어 → x-x-x가 되어 스토리지를 유용하게 관리 가능하다.

3. 날짜(Date)

  • date타입 8byte이다.

rr : 지금은 2022년이기 때문에 rr에 0-49를 입력하면 현 세기 / 50-99까지는 전 세기년도를 나타낸다.
yy : 어떤 숫자를 입력해도 전부 현 세기년도를 나타낸다.

EX) RR/MM/DD 48/12/01 → 2048/12/01

EX) RR/MM/DD 89/12/01 → 1989/12/01

EX) YY/MM/DD 48/12/01 → 2048/12/01

4. 멀티미디어 정보

RAW

4-1. 대량 문자열

CLOB

4-2. 사진, 음악, 그림

BLOB

정렬

정렬 작업은 가급적 회피하는 것이 좋다(성능이 떨어지기 때문이다.)
유니코드 상 영문 < 한글 이라 한글이 영문보다 더 크고 null은 제일 큰 값으로 정렬된다.

order by

  • order by는 모든 조건식을 넣어준 후 가장 마지막에 위치한다.
select * from [테이블 명] where...order by [컬럼명(별칭) [(asc)|desc)];

asc = 오름차 순 / desc = 내림차순

  • 부서 별로 정렬하되, 같은 부서는 급여가 많은 순서대로 정렬하여 추출하라
select deptno, ename, sal from emp where sal is not null order by 1,3 desc;

1, 3은 select로 추출한 컬럼 순서이다. deptno가 1에 있고 sal 세번째에 있음

distinct

중복을 제거하는 함수이다.

  • 업무의 종류를 추출하라
select job from emp;

이렇게 추출하면 업무의 종류가 중복되어 출력될 수 있다. 이때 쓸 수 있는 것이 distinct

select distinct job from emp;

이러면 중복없이 업무의 종류만을 추출할 수 있다.

profile
minj-j`s Development diary!

0개의 댓글