반응형
오라클의 데이터타입
-
VARCHAR2(size)
-
가변길이 문자 데이터 최대값: 4000 byte
size 범위내에서 실제 데이터의 크기만큼만 저장공간을 사용한다.
예) 이름, 주소, 과목명, 상품명, 뉴스제목 [ 길이들이 매번 달라질 수 있다 ]
-
-
CHAR(size)
-
고정길이 문자 데이터 : 2000 byte
size크기만큼의 저장공간을 무조건 사용한다.
예) 주민번호, 학번, 수강과목코드,
-
-
LONG
- 가변길이 대용량 문자 데이터, 최대값 : 2GB
- 현재는 잘 사용되지 않음
- 테이블당 하나 밖에 사용할 수 없다.
- 제약조건을 정의할 수 없다.
- order by 나 group by에 포함시킬 수 없다.
-
CLOB ( Character Large OBject)
-
가변길이 대용량 문자 데이터, 최대값: 4GB
예) 블로그의 본문, 신문기사, 논문
-
-
NUMBER(p, s)
- 가변길이 숫자 데이터
- p : 십진수의 총 갯수 , s : 소숫점이하 자릿수 ( 0 이면 정수 , 0이아니면 전부 실수)
-
DATE
-
날짜 및 시간 데이터
예) 입사일 , 가입일, 주문날짜, 이체날짜, 신청날짜 ...
-
-
TIMESTAMP
- 날짜 및 시간 데이터, 소수점 이하 초까지 포함한다.
-
BLOB (Binary Large OBject )
-
가변길이 대용량 이진 데이터 , 최대값: 4GB
예) 그림, 영상, 게임파일
-
-
ROWID
-
테이블에서 행의 고유주소를 나타내는 64진수 숫자데이터
-
예)
select rowid, department_id, department_name, manager_id, location_id from departments; rowid department_id department_name ------------------------------------------------------------------------- AAAEAWAAEAAAACtAAA 10 Administration AAAEAWAAEAAAACtAAB 20 Marketing AAAEAWAAEAAAACtAAC 30 Purchasing
-
로우아이디의 구성
-오브젝트번호(6자리) + 파일번호(3자리) + 블록번호(6자리) + 데이터번호(3자리)
AAAEAW AAE AAAACt AAA
AAAEAb AAE AAAADN AAA
-
오브젝트번호
해당 데이터가 속해있는 Eㅔ이터베이스 객체(테이블)의 번호
데이터베이스 객체마다 고유하다.
-
파일번호
해당 데이터가 위치하고 있는 테이블스페이스 파일번호 (어느책인지)
-
블록번호
-파일내부의 블록번호 (어느챕터인지)
-
데이터번호
데이터가 저장되어있는 데이터 디렉토리 슬롯번호
-
-
테이블 생성하기
CREATE TABLE 테이블명 (
컬럼명 데이터타입,
컬럼명 데이터타입(길이),
컬럼명 데이터타입(길이), DEFAULT 기본값,
컬럼명 데이터타입(길이) NOT NULL <----- NULL 값을 허용하지 않음
...
);
샘플 테이블 작성
연락처 정보를 저장하는 샘플테이블 작성하기
이름 필수값 VARCHAR2 50
전화번호 필수값 VARCHAR2 20
주소 옵션 VARCHAR2 200
이메일 옵션 VARCHAR2 256
팩스 옵션 VARCHAR2 20
등록일 DATE
CREATE TABLE CONTACTS (
name varchar2(50) not null,
tel varchar2(20) not null,
address varchar2(200),
email varchar2(256),
fax varchar2(20),
create_date date default sysdate
);
데이터 추가
INSERT INTO 명령어 사용
형식
*값이 저장될 컬럼명을 직접 나열하는 방식
*특정 컬럼명을 생략하는 것도 가능하다.
(생략된 컬럼에는 null이 자동으로 들어간다)
(생략된 컬럼중에서 DEFAULT 값이 설정되어 있는 컬럼은 기본값이 저장된다.)
insert into 테이블명 (컬럼명, 컬럼명, 컬럼명 )
values (값, 값, 값 )
예)
insert into contacts(name, tel, address, email, fax, create_date)
values('홍길동', '010-1111-111', '서울', 'hong@gmail.com', '02-1111-1111', sysdate);
insert into contacts(name, tel, fax, create_date)
values('홍길동', '010-1111-111', '02-1111-1111', sysdate);
insert into contacts(name, tel, fax)
values('홍길동', '010-1111-111', '02-1111-1111');
*컬럼명을 생략하는 방식
*무조건 VALUES에서 모든 컬럼에 들어갈 값을 명시해야 한다.
*NULL인 곳도 null이라고 명시해줘야한다.
*값의 순서와 컬럼의 순서가 동일해야 된다.
INSERT INTO 테이블명
VALUES(값, 값, 값)
예)
insert into contacts
values('홍길동', '010-1111-111', '서울', 'hong@gmail.com', null, sysdate);
데이터변경
update 명령어 사용
형식
update 테이블
set
컬럼명 = 값,
컬럼명 = 값,
컬럼명 = 값
[where 조건식]
* where 조건식이 없으면 모든 행에서 해당 컬럼의 값을 변경한다. (모두바뀌니까 할 일이 없을 것이다)
* where 조건식이 있으면 조건식을 만족하는 행에서만 해당 컬럼의 값을 변경한다.
예)
UPDATE contacts
SET
tel = '010-1234-5678',
address = '서울특별시 서대문구'
where name = '홍길동';
데이터삭제
DELETE FROM 명령어 사용
형식
DELETE FROM 테이블명
[WHERE 조건식]
* where 조건식이 없으면 테이블의 모든 행이 삭제된다.
* where 조건식이 있으면 조건식을 만족하는 행만 삭제한다.
트랜잭션 처리 명령어
- commit
- INSERT, UPDATE, DELETE 쿼리의 실행 결과를 데이터베이스에 영구적으로 반영시킨다
SELECT는 단순 조회니까 필요가 없음
- INSERT, UPDATE, DELETE 쿼리의 실행 결과를 데이터베이스에 영구적으로 반영시킨다
- rollback
- INSERT, UPDATE, DELETE 쿼리의 실행 결과에 대한 데이터베이스 반영을 취소시킨다.
Commit 을 rollback할수는 없다.
'데이터베이스' 카테고리의 다른 글
[DB] 인덱스란? (0) | 2021.09.05 |
---|---|
[Oracle] ORA-28002: the password will expire within 7 days (0) | 2020.12.19 |
[DB][Oracle] DBMS_LOB 함수 성능테스트 (0) | 2020.11.18 |
[SQL][Oracle] 조인이란? (0) | 2020.11.08 |
[SQL] [oracle] 오라클 내장함수 (0) | 2020.11.08 |