꾸준하게 기록하기

📌 데이터 베이스 객체

데이터베이스 내에 존재하는 논리적인 저장 구조를 데이터베이스 객체라 한다. 

종류에는 테이블, 뷰, 인덱스 등이 있다.

 

📌 테이블 

데이터를 담고 있는 객체 

 

1. 테이블 생성 

CRETAE TABLE 테이블명(
	칼럼 칼럼데이터타입,
    NAME VARCHAR2(10) NOT NULL
);

 

📖 문자 데이터 타입

 

CHAR (크기) 고정길이 문자, 최대 2000byte, 디폴트 값은 1byte
VARCARCHAR2 (크기) 가변길이 문자, 최대 4000byte, 디폴트 값은 1byte
NCHAR (크기) 고정길이 유니코드 문자(다국어 입력 가능), 최대 2000byte, 디폴트 값은 1
NVARCARCHAR2 (크기) 가변길이 유니코드 문자(다국어 입력 가능), 최대 4000byte, 디폴트 값은 1
LONG 최대 2GB 크기의 가변길이 문자형, 잘 사용하지 않음

CHARVARCARCHAR2 타입은 실질적인 차이가 없다.

BUT, 공간 효율화를 위해 CHAR 보다는 VARCARCHAR2 를 사용하는 것이 좋다.

 

📖 숫자 데이터 타입

 

NUMBER [(p, [s])] 가변숫자, p(1~38, 디폴트 값은 38)와 s(-84~127, 디폴트 값은 0)는 십진수 기준, 최대 22byte
FLOAT[(p)] NUMBER의 하위 타입, p는 1~128, 디폴트 값은 128, 이진수 기준, 최대 22byte
BINARY_FLOAT 32비트 부동소수점 수, 최대 4byte
BINARY_DOUBLE 64비트 부동소수점 수, 최대 8byte

 

📌 제약조건

데이터 무결성(데이터의 정확성과 일관성을 유지)을 보장하기 위한 용도로 사용된다.

제약조건에는 NOT NULL, UNIQUE, 기본키, 외래키 등이 있다.

 

📖 NOT NULL

 칼럼에 반드시 값이 들어가야 한다.

칼럼명 데이터타입 NOT NULL

 

📖  UNIQUE

 칼럼에 들어가는 값이 유일해야 한다.

칼럼명 데이터타입 UNIQUE

 

📖 기본키 (Primary Key)

  테이블 당 1개의 기본키만 생성할 수 있다.

칼럼명 데이터타입 PRIMARY KEY

 

📖 외래키 (Foregin Key)

  테이블 간의 참조 데이터 무결성을 위한 제약조건

  제약사항 : 참조하는 테이블이 먼저 생성되어야 한다.  참조키가 참조 테이블의 기본키로 만들어져야 한다. 

 

 

2. 테이블 삭제 

DROP TABLE 테이블명

 

📌 

하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 한다. 마치 테이블처럼 사용할 수 있다.

 

1. 생성

CREATE OR REPLAVE VIEW 뷰명 AS

SELECT 문장;

 

2. 삭제

DROP VIEW 뷰명

 

📌 인덱스 

테이블에 있는 데이터를 빨리 찾기 위한 용도

 

1. 생성

CREATE  [UNIQUE] INDEX 인덱스명

ON 테이블명(칼럼1, ... );

 

  UNIQUE 를 붙이면 중복 값을 허용하지 않는다는 것이다.

 

 EX. TB_EMP 테이블의 EMPNO 칼럼에 인덱스 생성

 CREATE  UNIQUE INDEX TB_EMP_IX01

 ON TB_EMP(EMPNO);

 

2. 삭제

DROP INDEX 인덱스명

 

📌 시퀀스 (sequence)

자동 순번을 반환한다. 유일한 숫자를 구할 때 시퀀스를 사용하면 편리하다.

 

1. 생성

CREATE SEQUENCE 시퀀스명
INCREMENT BY 증가값
START WHIT 시작값
MINVALUE 최소값
MAXVALUE 최댓값
NOCYCLE | CYCLE
NOCACHE | CACHE;

 

INCREMENT BY 증가값 : 0이 아닌 정수. 양수이면 증가, 음수이면 감소. 디폴트값은 1

NOCYCLE : 디폴트 값으로 최대나 최소값에 도달하면 생성 중지

CYCLE: 증가는 최대값에 도달하면 다시 최소값부터 시작

NOCACHE : 디폴트로 메모리에 시퀀스값을 미리 할당해 놓지 않는다. 디폴트값은 20

CACHE : 메모리에 시퀀스 값을 미리 할당해 놓고, 속도가 빠르며, 동시 사용자가 많을 경우 유리

 

EX. 아래 시퀀스는 1부터 시작해서 1씩 증가하며 최소값은 1 최대값은 1000까지 순번이 자동 생성된다.

CREATE SEQUENCE emp_seq
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALUE 1000
NOCYCLE
NOCACHE;

 

2. 삭제

DROP SEQUENCE 시퀀스명

 

📌 파티션 테이블

테이블에 있는 특정 칼럼 값을 기준으로 데이터를 분할해서 저장해 놓는 것이다.

많은 데이터를 가지고 있는 테이블의 경우 데이터 조회 시 성능을 위해 사용한다.

 

100만건의 데이터에서 특정월에 판매된 특정상품을 검색하려는 경우

파티션이 없으면 100만건 데이터를 다 조회해서 조건에 맞는 데이터를 찾고

파티션이 있는 경우 특정월의 데이터만 조회해서 조건에 맞는 데이터를 찾는다.

 

728x90

'Database' 카테고리의 다른 글

[MySQL] MySQL 8.0 설치  (1) 2023.01.09
CASE WHEN  (0) 2022.12.07
SQL 알아보기  (0) 2022.12.07
[oracle] null 처리하기 (NVL, NVL2 함수)  (0) 2022.11.30
서브쿼리(SubQuery)  (0) 2021.09.08
profile

꾸준하게 기록하기

@:_:

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!