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 한걸 복원 시킬 수 있다.
'DB' 카테고리의 다른 글
Oracle 기본 -3 GROUP BY, GROUP 함수 , HAVING (0) | 2018.05.13 |
---|---|
Oracle 기본 -1 desc,select,distinct,where,숫자함수 (0) | 2018.03.19 |