오라클 객체 종류
테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE),
프로시저(PROCEDUAL), 함수(FUNCTION), 트리거(TRIGGER), 동의어(SYNONYM), 사용자(USER)
테이블 생성하기
테이블이란?
행(row)과 열(CLOUMN)으로 구성되는 가장 기본적인 데이터베이스 객체
데이터 베이스 내에서 모든 데이터는 테이블을 통해서 저장된다.
테이블로 생성된 객체는 DROP 구문을 통해 제거할 수 있음
📃 CHAR : 고정 길이 문자열
최대 2000BYTE , 한글 유니코드 => 3BYTE
지정한 크기보다 작은 문자(열)가 입력되면 남는 공간은 공백으로 채움
-> ex) CHAR(10) 컬럼에 'ABC' 3BYTE 문자열만 저장해도 10BYTE 저장공간을 모두 사용.
📃 VARCHAR2 : 가변 길이 문자열
크기가 0인 값은 NULL로 인식
-> ex) VARCHAR2(10) 컬럼에 'ABC' 3BYTE 문자열만 저장하면 나머지 7BYTE를 반환함.
📃 NUMBER
- P : 표현할 수 있는 전체 숫자 자리 수 (1 ~ 38)
- S : 소수점 이하 자리 수 (-84 ~ 127)
📃 DATE
일자(세기/년/월/일) 및 시간(시/분/초) 정보 관리
기본적으로 화면에 년/월/일 정보만 표기
날짜 연산 및 비교 가능
📃 컬럼주석 : 테이블의 컬럼에 주석을 다는 구문
COMMENT ON COLUMN 테이블명.컬럼명 IS ‘주석 내용';
이는 데이터 무결성 보장을 주 목적으로 함
입력 데이터에 문제가 없는지에 대한 검사와 데이터의 수정/삭제 가능 여부 검사 등을 위해 사용
CREATE TABLE USER_USED_UK(
USER_NO NUMBER,
-- USER_ID VARCHAR2(20) UNIQUE, -- 컬럼레벨 제약조건 설정 (제약 조건명 미지정)
-- USER_ID VARCHAR2(20) CONSTRAINT USER_ID_U UNIQUE,
-- 제약 조건명 지정
USER_ID VARCHAR2(20),
USER_PWD VARCHAR2(30),
USER_NAME VARCHAR2(30),
GENDER VARCHAR2(10),
PHONE VARCHAR2(30),
EMAIL VARCHAR2(50),
-- 테이블 레벨 제약조건 설정 부분
-- UNIQUE(USER_ID) -- 테이블 레벨 제약조건 설정(제약조건명 미지정)
CONSTRAINT USER_ID_U UNIQUE(USER_ID) -- 제약조건명 지정
);
1) ON DELETE RESITRICTED(삭제 제한)
- FOREIGN KEY로 지정된 컬럼에서 사용되고 있는 값일 경우 제공하는 컬럼의 값은 삭제하지 못함
2) ON DELETE SET NULL : 부모키 삭제시 자식키를 NULL로 변경하는 옵션
3) ON DELETE CASCADE : 부모키 삭제시 자식키도 함께 삭제됨
- 부모키 삭제시 값을 사용하는 자식 테이블의 컬럼에 해당하는 행이 삭제 됨