TIL 24.

Sol Karsian·2025년 3월 14일

오늘은 SQL에서 자주 사용하는 데이터베이스 객체인 VIEW, SEQUENCE, INDEX와 함께, 데이터 제어 언어(DCL)까지 정리했습니다. 실무에서 자주 사용되는 객체들을 손에 익히는 시간!

👁 VIEW (가상 테이블)
✔ 정의
SELECT문의 결과를 저장하는 논리적 가상 테이블

실제 데이터를 저장하지 않고 참조만 함

✔ 목적
복잡한 쿼리를 단순화

보안성 향상 (민감 데이터 차단)

✔ 생성 문법
sql
복사
편집
CREATE [OR REPLACE][FORCE | NOFORCE] VIEW 뷰이름 [컬럼 별칭]
AS SELECT문
[WITH CHECK OPTION][WITH READ ONLY];
WITH READ ONLY: DML 차단

WITH CHECK OPTION: 지정 컬럼 외 수정 금지

✔ 주의사항
ALTER 불가

대부분 조회 전용

DML 가능하나 컬럼 누락 시 NULL 입력될 수 있음

🔢 SEQUENCE (순차 번호 생성기)
✔ 정의
PK 같은 고유번호를 자동 생성

NEXTVAL, CURRVAL 사용

✔ 생성 문법
sql
복사
편집
CREATE SEQUENCE 시퀀스명
START WITH 1
INCREMENT BY 1
MAXVALUE 10000
CYCLE
CACHE 20;
NEXTVAL: 다음 번호

CURRVAL: 현재 번호 (NEXTVAL 호출 후 사용 가능)

✔ 변경 문법 (START WITH 제외 가능)
sql
복사
편집
ALTER SEQUENCE 시퀀스명 INCREMENT BY 5;
🧭 INDEX (색인)
✔ 정의
SELECT 성능 향상을 위한 객체

PK, FK, UNIQUE 제약 시 자동 생성됨

✔ 생성 문법
sql
복사
편집
CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명 (컬럼명[, 컬럼명]);
✔ 장단점

장점 단점
조회 속도 향상 INSERT/UPDATE 성능 저하
시스템 부하 감소 추가 공간 필요
✔ 삭제 문법
sql
복사
편집
DROP INDEX 인덱스명;
🔐 DCL (Data Control Language)
✔ 정의
사용자 권한 관리 (GRANT / REVOKE)

🔑 권한 종류
📌 시스템 권한 (DB 전반)

권한 설명
CREATE SESSION DB 접속 허용
CREATE TABLE 테이블 생성 가능
CREATE VIEW 뷰 생성 가능
CREATE SEQUENCE 시퀀스 생성 가능
📌 객체 권한 (특정 객체 대상)

권한 설명
SELECT, INSERT, UPDATE, DELETE 테이블 DML
REFERENCES 외래 키 허용
ALTER 구조 수정
EXECUTE 프로시저 실행
👤 사용자 계정 생성 & 권한 부여
sql
복사
편집
ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;
CREATE USER kh IDENTIFIED BY kh1234;

GRANT CREATE SESSION TO kh;
GRANT CREATE TABLE TO kh;
ALTER USER kh DEFAULT TABLESPACE SYSTEM QUOTA UNLIMITED ON SYSTEM;

GRANT CONNECT, RESOURCE TO kh;
🔧 객체 권한 부여 및 회수
sql
복사
편집
-- 부여
GRANT SELECT, INSERT ON EMPLOYEE TO kh;

-- 회수
REVOKE INSERT ON EMPLOYEE FROM kh;
🧰 기타 팁
ROWID: 각 행의 물리적 주소 (조회 최적화에 사용)

PL/SQL: 오라클의 절차적 SQL 확장 언어

권한은 보안과 직결되므로 신중한 관리 필수

✅ 오늘의 핵심 요약

개념 역할
VIEW 복잡한 SELECT 결과를 저장한 가상 테이블
SEQUENCE 자동 증가 번호 생성기
INDEX SELECT 성능 최적화
DCL 권한 제어 (GRANT / REVOKE)

profile
개발자 희망자 입니다.

0개의 댓글