2023.10.4 ~ 10.20 / DB - 7. DDL

DAN·2023년 11월 2일
0

개발자과정/DB

목록 보기
7/8

10/4 ~ 10/20
Oracle 데이터베이스 복습기록

7. DDL

7.1 DDL이란?

-테이블 같은 데이터 저장소 객체를 만들거나 수정한다.

7.2 테이블 생성하기

-CREATE : 새로운 객체(OBJECT)를 생성할 때 사용하는 명령어

CREATE TABLE : 테이블 생성
CREATE USER : 사용자 계정 생성
CREATE SEQUENCE : 시퀸스 생성
CREATE VIEW : 뷰 생성

(1)자료형
-VARCHAR2(n) : 문자형 값을 n 바이트까지 입력받을 수 있는 가변형 문자열
-CHAR(n) : 문자형 값을 n 바이트까지 입력받을 수 있는 고정형 문자열
-NUMBER(n, m) : 숫자형 값을 n자리만큼 입력받고 m자리만큼 소수를 입력
-DATE : 날짜값을 입력 / TIMESTAMP를 사용하기도 함

(2) 테이블 생성 문법

CREATE TABLE QUIZ_TABLE (
	Q_ID NUMBER(3, 0) NOT NULL,
    Q_CONTENT VARCHAR2(200) NOT NULL,
    Q_ANSWER VARCHAR2(100),
    REG_DATE DATE DEFAULT SYSDATE
)

※이름 규칙 주의사항
1. 대소문자 구분없음
2. 중복되는 테이블명 안됨
3. 테이블 내에서 컬럼명 중복 안됨
4. 문자로 시작하며 예약어는 사용불가

7.3 제약조건

-테이블에 입력가능한 데이터를 조건으로 제약하는 것

PRIMARY KEY(PK) : NOT NULL + UNIQUE

-식별자 규칙을 물리적 모델링한 것
-특정 컬럼을 식별자로 만들면 자동으로 NOT NULL + UNIQUE 성질을 가짐

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 PRIMARY KEY(컬럼);

UNIQUE KEY(UK) : UNIQUE

-PRIMARY KEY와 다르게 NULL 값을 입력할 수 있으며, 중복은 불가능하다

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 UNIQUE(컬럼);

NOT NULL

-NULL값이 들어오지 않게 함

CHECK

-특정 컬럼에 데이터를 입력할 때 지정한 데이터만 입력할 수 있도록 함

ALTER TABLE TB_CUST ADD CONSTRAINT CK_DEL_YN CHECK(DEL_YN IN ('Y', 'N'));

TB_CUST 테이블의 CK_DEL_YN 컬럼에 'Y'혹은 'N'만을 입력할 수 있도록 제약을 거는 코드

FOREIGN KEY(FK) = 외래키

-테이블끼리 연결되어 있는 관계를 물리적 모델링한 것

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명
FOREIGN KEY(참조받을 컬럼) REFERENCE 참조할 테이블(참조할 컬럼)

7.4 테이블 수정하기

ADD

-테이블에 컬럼을 추가

ALTER TABLE 테이블명 ADD 컬럼형 자료형[DEFALUT][NOT NULL];

DROP

-테이블에서 컬럼을 삭제

ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

MODIFY

-테이블에서 컬럼 속성을 변경

ALTER TABLE 테이블명 MODIFY (컬럼명 자료형 [DEFAULT][NOT NULL]);

RENAME

-테이블에서 컬럼의 이름을 변경

ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 바꿀컬럼명

7.5 테이블 / 제약조건 삭제하기

(1) DROP

DROP TABLE 테이블명 [CASCADE CONSTRAINT]

-테이블을 영구 삭제한다. / CASCADE CONSTRAINT 옵션을 추가한다면 관련된 관계선도 모두 삭제한다

(2) TRUNCATE

-테이블의 모든 데이터를 삭제한다.

TRUNCATE TABLE 테이블명 

(3) DELETE, DROP, TRUNCATE 의 차이구분

-DELETE : 데이터 삭제 > COMMIT 후 DELETE한 데이터 영구 삭제
-TRUNCATE : 테이블의 데이터 영구 삭제 / 테이블은 유지
-DROP : 모든 데이터 영구 삭제 / 테이블도 삭제

7.6 시퀀스와 뷰

시퀸스란? : 순차적인을 의미하며, 자동으로 증가하는 값을 만들어주는 기능

-PK의 컬럼에 유일한 일련번호를 만들 때 사용

CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1
START WITH 1

-시퀸스 삭제하기(DROP)

DROP SEQUENCE TEST_SEQ

뷰란?

-일종의 "가상테이블"을 의미

-뷰 생성하기

CREATE VIEW 뷰 이름 AS

-뷰 사용원리 : 테이블처럼 FROM 뒤에 뷰 이름을 입력하여 사용한다 / 단, 실제로 뷰에 데이터가 존재하는 것이 아니다

인라인 뷰(INLINE VIEW)

-서브쿼리 기술 중 하나로 FROM 절에 쿼리를 작성하여 가상의 테이블처럼 사용하는 방식

뷰를 사용하는 이유

(1) 자주 사용하는 쿼리를 저장하고 이용할 수 있어 편리하고, 연산이 간편해진다
(2) 원하는 데이터만 보여줄 수 있게 해 보안목적으로 사용할 수 있다

-뷰 삭제하기

DROP VIEW 뷰이름

0개의 댓글