본문 바로가기

Oracle/SQL

SQL CREATE 생성방법, 데이터타입 종류

create 로 생성할 수 있는 데이터 오브젝트는 

table, view, index, sequence , synonym  5가지 가 있다. 

table 생성 방법 

Create table 테이블명 
컬럼명1 데이터 타입(byte 수),
컬럼명2 데이터타입(byte 수),
컬럼명3 데이터타입 (byte 수 ) ,
.
.
.

) ; 

테이블명과 컬럼명 지정 시의 규칙 
1. 반드시 문자로 시작해야한다. 
2. 이름의 길이는 30자 이하여야한다.
3. 대문자 알파벳과 소문자 알파벳과 숫자를 포함 할 수 있다. 
4. 특수문자는 $,_ ,# 만 가능하다. 

예제 emp93 table 을 생성해라~

create table emp93 
(empno number (10),
ename varchar2(10), 
sal number(10,2),
hiredate date );

 

create table 테이블 명

  1. 테이블명과 컬럼명을 지정할 때는 문자로 시작해야 합니다.
  2. empno 옆에 number (10) 은 숫자형 데이터 유형이며 자리수는 10자리로 하겠다는 의미이다.
  3. ename 옆에 varchar2(10) 는 문자형 데이터 유형이며 자리수는 10자리로 하겠다는 의미이다.
    (영어철자 10개 허용하겠다)
  4. sal 옆에 number (10,2) 는 숫자 10자리를 허용하는데 그중 2자리는 소수점으로 입력하겠다.
  5. hiredate 옆에 date 는 날짜형 데이터 유형으로 날짜를 기원건 4712년, 1월1일부터 기원후 9999/12/31 일까지 입력 할 수 있다.

테이블 생성시 사용할 수 있는 주요 데이터 유형을 정리해보면 (오라클 매뉴얼) 

  1. CHAR  :        고정길이 문자데이터유형으로 최대길이는 2000 이다.
    -> 데이터를 입력한 후 남은 공간을 회수하지 않는다. 낭비적인 측면이 존재하기 때문에 특정한 경우일때 사용하는 데이터 유형이다. 
  2. VARCHAR2 :  가변길이 문자데이터유형으로 최대길이는 4000 이다.
    -> 데이터를 입력 한 후 남은공간을 회수한다. 따라서 문자형 데이터를 입력할때 이 유형을 가장 많이 입력한다. 
  3. LONG      : 가변길이 문자데이터 유형 으로 최대길이 2GB 의 데이터를 허용한다. 
  4. CLOB    : 문자데이터유형이고 최대 4GB 문자데이터 혀옹한다. 
  5. BLOB : 바이너리 데이터 유형이며 최대 4GB 바이너리데이터 허용한다.
  6. NUMBER : 숫자 데이터 유형 십진 숫자의 자리수는 최대 38 자리수 까지 
    소숫점이하 자리는 -84 ~127 까지 허용한다.
  7. DATA : 날짜 데이터 유형이며 거원전 4712 0101 부터 기원후 9999/ 1231 까지의 날짜를 허용한다. 

조금더 심도있게 CHAR 과 VARCHAR2 의 차이점을 살펴 보자면

서로 테이블마다 데이터 유형을 다르게 생성 해서 데이터를 출력 해보겠다. 

EMp700' deptno table is varchar2 .
dept700' deptno table is char. 

후에 

select * 
from emp700
where deptno ='10';

→ 쿼리 실행 된다.

select *
from dept700 
where deptno = '10';

→ 쿼리 실행 된다.
-> 사실 Dept700 의 Deptno 는 공백이 존재해서 공백까지 조건절로 넣어 검색 해 주어야하는데 
오라클에서 알아서 공백을 넣어주 출력한다. 

이렇게 조인없이 각자의 테이블에서는 데이터가 잘 출력이 되지만, 
서로 조인해서 데이터를 출력하게 되면 문제가 생긴다. 

select e.ename, d.loc
from dmp700 e , dept700 d
where e.deptno = d.deptno;

-> 이 쿼리문을 실행 시켜보면 테이블 또는 뷰가 존재하지 않는다고 뜬다. 

이유는 두 데이터 유형이 서로 다른 유형이기 때문이다. 

 

long 과 clob 은 아주 큰 텍스트 데이터를 입력할 때 사용하는 데이터 유형

long : 최대 2gb 까지 문자 데이터 저장

clob : 최대 4gb 까지 문자 데이터 저장

예제 long 데이터 유형을 사용하여 테이블 생성

create table resume
(ename varchar2(20), 
self_intro long );
insert into resume 
values ('김인호' ,' 어렸을때 부터 우리집은 가난했었고, 어머니는 짜장면이 싫다고 하셨어요. 야히야히야' );

→ 이런 문장은 텍스트 데이터 분석으로 많이 사용 한다.

→ 이 텍스트에는 긍정적 단어가 많은지 부정적 단어가 많은지 쿼리 하나로 확인이 가능하다. (감정분석)