[20120830] 데이터타입(number, char, varchar2, Nchar, Nvarchar2, date), comment, describe, DML(insert, update, delete), rollback, commit
Oracle/기본문법 2012. 9. 10. 12:58- 데이터 타입의 종류
- 숫자타입: number (정수 및 실수 모두 포함)
표현범위: number(5) -> -99999 ~ 99999
number(3) -> -999 ~ 999
number(5,2) -> -999.99 ~ 999.99
number(6,3) -> -999.999 ~ 999.999
- 문자타입
①char: 고정형 문자타입
name char(10) -> name 컬럼에 입력되는 데이터의 크기는 무조건 10Byte로 들어온다. 단, 10Byte가 넘는 데이터는 입력이 불가함.
-> 한글의 경우 한글자당 2Byte 영문은 1Byte. (키보드에서 한키로 입력되는 숫자, 영어등은 1Byte. 없는 것은 2Byte)
ex: '이순신' -> 10바이트로 고정되서 들어옴
'김구' -> 10바이트로 고정되서 들어옴
'이에리사' -> 10바이트로 고정되서 들어옴
'박차고나온애가이뻐' -> 18바이트이므로 입력불가
②varchar2: 가변형 문자타입
name char(10) -> name 컬럼에 입력되는 데이터의 크기는 해당 데이터의 크기만큼 들어온다. 단, 10Byte가 넘는 데이터는 입력이 불가함.
ex: '이순신' -> 6바이트로 맞추어 들어옴
'김구' -> 4바이트로 맞추어 들어옴
'이에리사' -> 8바이트로 맞추어 들어옴
'박차고나온애가이뻐' -> 18바이트이므로 입력불가
③Nchar , Nvarchar2: 크기의 단위가 Byte가 아니라 글자수를 나타냄
name Nchar(10) -> name 컬럼에 입력되는 데이터의 크기가 유니코드등을 포함하여 글자수 최대 10글자까지 입력됨. 넘으면 당연히 입력 불가
ex: '이순신' -> 10개의 글자수로 고정되어 들어옴. -> 20Byte
'김구' -> 10개의 글자수로 고정되어 들어옴. -> 20Byte
'박차고나온애가이뻐' -> 10개의 글자수로 고정되어 들어옴. -> 20Byte
'John michael' -> 12개의 글자수(공백포함)이므로 입력불가.
name Nvarchar2(10) -> name 컬럼에 입력되는 데이터의 크기가 유니코드등을 포함하여 글자수 최대 10글자까지 입력됨.
넘으면 당연히 입력 불가
ex: '이순신' -> 3개의 글자수로 들어옴. -> 6Byte
'김구' -> 2개의 글자수로 들어옴. -> 4Byte
'박차고나온애가이뻐' -> 9개의 글자수로 들어옴. -> 18Byte
'John michael' -> 12개의 글자수(공백포함)이므로 입력불가.
- 날짜타입: date
date예문:
select sysdate, current_date from dual;
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),
to_char(current_date, 'yyyy-mm-dd hh24:mi:ss') from dual;
※ 컬럼명에 숫자가 들어온다 하더라도 가장 앞에 숫자 0이 들어올 수 있는 개연성이 있을 경우 number 형이 아닌 문자형으로 지정하여야 한다
※ 문자는 시작과 끝에 반드시 '을 사용해야 함. 사용하지 않을 경우 숫자로 인식함.
- table에 대한 comment 처리문
comment on table [table명] is '[주석내용]';
- table내 각 column에 대한 comment 처리문
comment on column [table명].[table내 주석처리할 column명] is '[주석내용]';
- 특정 테이블에 있는 각 컬럼에 대한 주석확인 처리문
select column_name, comments
from user_col_comments
where table_name = '[table명]';
- 특정 테이블의 컬럼명과 데이터 타입 조회 명령어
describe [table명];
혹은
desc [table명];
- 특정 테이블 데이터 조회
select * from [table명];
- 데이터 입력하기
insert into [table명] values([column1 데이터], [column2 데이터], ~~~~~~~, [마지막 column 데이터]);
※ insert 명령어로 입력한 데이터는 디스크에 기록되는 것이 아닌 메모리에 기록하는 것. commit으로 디스크에 기록함
- 데이터 변경하기
update [table명] set [변경할 컬럼명1] = [변경할 데이터], [변경할 컬럼명2] = [변경할 컬럼명2] + [변경할 데이터] where [변경대상인 컬럼행] = [변경대상의 컬럼 데이터];
※ where 구문이 없을 경우 모든 행의 해당 컬럼이 변경됨
※ 변경 데이터중, X = X + 200 으로 예를 들면 X컬럼에 있는 값과 200을 합산한 결과 데이터를 최종데이터로 치환한다는 의미임
※ update 명령어로 변경한 데이터는 디스크에 기록되는 것이 아닌 메모리에 기록하는 것. commit으로 디스크에 기록함
- 데이터 삭제하기
delete [table명] where [삭제할 컬럼행] = [삭제할 컬럼행에 있는 열 데이터];
※ delete 명령어로 삭제한 데이터는 디스크에서 삭제하는 것이 아닌 메모리에서 삭제하는 것. commit으로 디스크에서 삭제함.
- commit
메모리에 상주된 데이터를 디스크에 기록하는 명령어
ex: commit;
- rollback
메모리에 상주된 데이터를 삭제하는 명령어
ex: rollback;
'Oracle > 기본문법' 카테고리의 다른 글
WRITTEN BY