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 테이블 명
- 테이블명과 컬럼명을 지정할 때는 문자로 시작해야 합니다.
- empno 옆에 number (10) 은 숫자형 데이터 유형이며 자리수는 10자리로 하겠다는 의미이다.
- ename 옆에 varchar2(10) 는 문자형 데이터 유형이며 자리수는 10자리로 하겠다는 의미이다.
(영어철자 10개 허용하겠다) - sal 옆에 number (10,2) 는 숫자 10자리를 허용하는데 그중 2자리는 소수점으로 입력하겠다.
- hiredate 옆에 date 는 날짜형 데이터 유형으로 날짜를 기원건 4712년, 1월1일부터 기원후 9999/12/31 일까지 입력 할 수 있다.
테이블 생성시 사용할 수 있는 주요 데이터 유형을 정리해보면 (오라클 매뉴얼)
- CHAR : 고정길이 문자데이터유형으로 최대길이는 2000 이다.
-> 데이터를 입력한 후 남은 공간을 회수하지 않는다. 낭비적인 측면이 존재하기 때문에 특정한 경우일때 사용하는 데이터 유형이다. - VARCHAR2 : 가변길이 문자데이터유형으로 최대길이는 4000 이다.
-> 데이터를 입력 한 후 남은공간을 회수한다. 따라서 문자형 데이터를 입력할때 이 유형을 가장 많이 입력한다. - LONG : 가변길이 문자데이터 유형 으로 최대길이 2GB 의 데이터를 허용한다.
- CLOB : 문자데이터유형이고 최대 4GB 문자데이터 혀옹한다.
- BLOB : 바이너리 데이터 유형이며 최대 4GB 바이너리데이터 허용한다.
- NUMBER : 숫자 데이터 유형 십진 숫자의 자리수는 최대 38 자리수 까지
소숫점이하 자리는 -84 ~127 까지 허용한다. - 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 ('김인호' ,' 어렸을때 부터 우리집은 가난했었고, 어머니는 짜장면이 싫다고 하셨어요. 야히야히야' );
→ 이런 문장은 텍스트 데이터 분석으로 많이 사용 한다.
→ 이 텍스트에는 긍정적 단어가 많은지 부정적 단어가 많은지 쿼리 하나로 확인이 가능하다. (감정분석)
'Oracle > SQL' 카테고리의 다른 글
SQL VIEW 생성하기 (0) | 2021.12.03 |
---|---|
SQL TEMPORARY CREATE 생성방법 (임시테이블 ) (0) | 2021.12.03 |
SQL Create 로 만들 수 있는 데이터 베이스 오브젝트 (0) | 2021.12.03 |
* SQL 계층형 질의문 connect by 절 level 서열을 주어 데이터 출력 (0) | 2021.12.02 |
SQL 서브쿼리를 이용한 데이터 합치기 Merge (0) | 2021.12.02 |