반응형

Oracle 기본 -2 create,update,delete,drop




1.create

-- 테이블 만들기


create table 테이블명   

(

      1번째컬럼명 자료형(사이즈) 속성,

  2번째컬럼명 자료형(사이즈) 속성

);




오라클 자료형(datatype)


문자형

데이터유형

정의

 최대사이즈

CHAR

고정 길이 데이터 타입,나머지 공간이 공백으로 채워짐

2000byte

  NCHAR

고정 길이 유니코드 데이터 타입  

VARCHAR2

가변 길이 데이터 타입, 나머지 공간은 채우지 않음

4000byte

NVARCHAR2

가변길이 유니코드 데이터 타입

 LONG

가변길이 데이터 타입 

 2Gbyte

 CLOB

대용량 텍스트 데이터 타입 

 4Gbyte

 NCLOB

 대용량 텍스트 유니코드 데이터 타입




숫자형

 데이터유형

정의 

최대사이즈 

BINARY_FLOAT 

부동 소수형 데이터 타입, 32bit 부동소수

 4byte

BINARY_DOUBLE

 부동 소수형 데이터 타입, 64bit 부동소수

 8byte

 NUMBER(P,S)

P,S로 표현 숫자 데이터 타입, P(유효자리수):1~38  S(소수점 유효자리): -84~127

 22byte



날짜형

데이터 유형 

정의 

DATE

고정 길이 날짜 

 INTERVER_YEAR

 날짜(년도,월)형태의 기간 표현 데이터 타입()

INTERVER_DAY

날짜 및 시간(요일, 시, 분 초)형태의 기간 표현 데이터 타입 

 TIMESTAMP

밀리초(ms)까지 표현 데이터 타입 

 TIMESTAMP_WITH TIME ZONE

날짜 및 시간대 형태의 데이터 타입 

 TIMESTAMP_WITH LOCAL TIME ZONE

 저장시 데이터베이스 시간대를 준수, 조회시 조회하는 클라이언트 시간 표현 데이터 타입





이진형

데이터 유형 

정의 

최대사이즈 

 RAW

 가변 길이 이진 데이터 타입

 2Gbyte

 LONGRAW

4Gbyte 

 BLOB

대용량의 바이너리 데이터를 저장하기 위한 데이터 타입 

 BFILE

 대용량의 바이너리 데이터를 파일형태로 저장하기 위한 데이터 타입



ex)

memberinfo 라는 이름으로 ID,Password,가입날짜 를 기록할 table을 작성하시오


create table memberinfo(

 id varchar2(20) primary key, 

password varchar2(20) not null,

joindate date default sysdate  

); 


-- not null : 공백 입력 금지

-- primary key : 한테이블에서 오직 한개의 컬럼만 가질수 있는 속성,

-- default : 특별한 값이 없을때 기본값

-- sysdate : insert 할때의 날짜와 시간을 가져옴

-- default sysdate : 기본값으로 insert할때의 날짜와 시간으로 지정



2.insert

--테이블에 row 입력하기

두가지 방식이 존재하는데 

첫번째는 컬럼순서대로 넣고 싶을때 사용


insert into 테이블명 values(

'첫번째컬럼에들어갈리터럴',

'두번째컬럼에들어갈리터럴',

default);  -- 만약 그냥 기본값을 넣고 싶다면 작은 따옴표 안붙이고 default 만 입력해주면 됨




두번째 방법은 컬럼 순서를 바꿔서 넣고 싶을때 사용한다 또한 default 속성이 붙은 컬럼은 

자동으로 입력된다는 장점이 있다


insert into 테이블명(컬럼2,컬럼1) 

values('컬럼2에들어갈리터럴','컬럼1에들어갈리터럴');






3.update

-- 테이블의 row 특정 column literal수정하기

update 테이블 

set 컬럼 = '리터럴'

where 조건;



ex)


update memberinfo 

set id = 'csc'

where id = '아이디임';







4.delete

--테이블의 특정 row를 삭제하거나 모든 row를 삭제한다(컬럼은 남아있음)


delete 테이블명 

where 컬럼명 = '리터럴';


해당 테이블의 where 조건에 해당하는 row만 삭제한다




delete 테이블명;


해당 테이블의 모든 row를 삭제한다


ex)

delete memberinfo

where id = 'csc';


delete memberinfo;



5.drop

--테이블 전체를 삭제한다(컬럼포함)




drop table 테이블명;




그외 중요한 SQL 문들


commit; 

-- 완전저장, drop table 하거나 delete table 했다면 commit 하지 않는한

flashback 과 rollback으로 복원 가능하다 commit 했다면 불가능



rollback; 

-- 이전 커밋 시점으로 되돌린다,delete한걸 취소 시킬수 있다



flashback;

-- Table 뿐만 아니라 DATABASE전체를  과거의 특정 시점으로 되돌린다

drop table 한걸 복원 시킬 수 있다.


반응형

+ Recent posts