본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

MySQL CREATE OR REPLACE VIEW — 뷰 수정·조회·DML 완전 정리

by 왕진 2026. 7. 1.
반응형

 

 

MySQL 실습 정리

CREATE OR REPLACE VIEW

기존 뷰가 있으면 새 SELECT 정의로 교체하고 조회/DML 가능성을 확인한다.

1 핵심 개념

기존 뷰가 있으면 새 SELECT 정의로 교체하고 조회/DML 가능성을 확인한다. 뷰는 복잡한 SELECT를 재사용하게 해 주고, 테이블스페이스는 저장 위치를 분리해 관리할 수 있게 해 준다.

뷰는 실제 데이터를 복사하는 테이블이 아니므로 원본 테이블 구조와 권한, 조인 여부에 따라 수정 가능성이 달라진다. 테이블스페이스는 물리 저장 관리와 관련되므로 실습 환경과 운영 환경을 구분해서 다루어야 한다.

VIEW는 조회 정의, TABLESPACE는 저장 위치, WITH CHECK OPTION은 뷰를 통한 변경 제한으로 구분해서 기억한다.
2 원본 예제 코드
USE sqlDB; CREATE OR REPLACE VIEW v_usertbl AS SELECT userid, name, addr FROM usertbl; DESCRIBE v_usertbl; SHOW CREATE VIEW v_usertbl; UPDATE v_usertbl SET addr = '부산' WHERE userid = 'JKW'; INSERT INTO v_usertbl(userid, name, addr) VALUES('KBM', '김병만', '충북');
3 용어 카드
VIEWSELECT 문을 이름으로 저장한 가상 테이블
CREATE OR REPLACE기존 객체가 있으면 새 정의로 교체하는 문법
DESCRIBE뷰나 테이블의 컬럼 구조를 확인하는 명령
SHOW CREATE VIEW뷰 정의 SQL을 확인하는 명령
WITH CHECK OPTION뷰 조건을 만족하는 변경만 허용하는 옵션
TABLESPACE테이블 데이터를 저장할 물리 저장 공간 단위
DATAFILE테이블스페이스가 사용하는 실제 데이터 파일
CHECK TABLE테이블이나 뷰 상태를 검사하는 명령

 

반응형

 

4 실행 흐름
1
원본 객체 확인뷰라면 원본 SELECT, 테이블스페이스라면 데이터베이스와 파일 이름을 확인한다.
2
객체 생성CREATE VIEW 또는 CREATE TABLESPACE 문을 실행한다.
3
정의 확인DESCRIBE, SHOW CREATE VIEW, SHOW TABLE STATUS로 결과를 확인한다.
4
변경 테스트UPDATE, INSERT, ALTER TABLESPACE 같은 변경이 가능한지 실험한다.
5
오류 해석뷰 조건 위반, 조인 뷰 수정 불가, 원본 테이블 삭제 후 오류를 구분한다.
5 VIEW 관리 기준
작업 의미 확인 명령
CREATE VIEW 새 뷰를 만든다 SHOW FULL TABLES
CREATE OR REPLACE VIEW 있으면 교체, 없으면 생성 SHOW CREATE VIEW
DESCRIBE v_name 뷰 컬럼 구조 확인 DESCRIBE v_usertbl
UPDATE view 가능한 단순 뷰에서 원본 수정 원본 테이블 SELECT
CHECK TABLE view 뷰 상태 검사 CHECK TABLE v_userbuytbl
6 WITH CHECK OPTION 기준

WITH CHECK OPTION은 뷰의 WHERE 조건을 벗어나는 INSERT나 UPDATE를 막는다. 예를 들어 height >= 177 조건을 가진 뷰라면 height가 155인 행은 뷰를 통해 넣을 수 없다.

입력값 뷰 조건 결과
height 180 height >= 177 통과 가능
height 177 height >= 177 통과 가능
height 155 height >= 177 거부
height NULL height >= 177 조건 불만족
7 TABLESPACE 기준
문법 역할 주의
CREATE TABLESPACE 저장 공간 단위 생성 파일명 중복 주의
ADD DATAFILE 테이블스페이스 파일 지정 경로와 권한 확인
TABLESPACE ts_a 테이블 생성 시 저장 위치 지정 테이블스페이스 존재 필요
ALTER TABLE ... TABLESPACE 기존 테이블 이동 대용량이면 시간 소요
SHOW TABLE STATUS 테이블 상태 확인 저장 정보 비교
8 수정 가능성 판단
뷰 형태 수정 가능성 이유
단일 테이블 단순 컬럼 뷰 상대적으로 가능 원본 행과 대응이 명확하다.
조인 뷰 제한적 또는 불가 어느 테이블에 값을 넣을지 애매하다.
집계 뷰 대체로 불가 GROUP BY 결과는 원본 행 하나와 대응되지 않는다.
CHECK OPTION 뷰 조건 안에서만 가능 뷰 WHERE 조건을 벗어나면 거부된다.
9 검산 쿼리
DESCRIBE v_usertbl; SHOW CREATE VIEW v_usertbl; SELECT * FROM v_usertbl; CHECK TABLE v_userbuytbl; SHOW TABLE STATUS FROM compressDB;

뷰는 정의와 조회 결과를 함께 확인한다. 테이블스페이스는 생성 여부뿐 아니라 테이블이 어느 저장 공간에 배치되었는지까지 확인해야 실습이 완성된다.

10 자주 하는 실수
실수 증상 해결
뷰 교체 후 정의 미확인 예전 SELECT라고 착각 SHOW CREATE VIEW 확인
CHECK OPTION 조건 밖 INSERT 입력 실패 WHERE 조건을 만족하는 값 사용
조인 뷰에 무리한 INSERT 수정 불가 오류 원본 테이블에 직접 INSERT
원본 테이블 삭제 후 뷰 조회 뷰 조회 실패 CHECK TABLE로 상태 확인
테이블스페이스 파일명 충돌 생성 실패 고유한 DATAFILE 이름 사용
11 실무 메모

CREATE OR REPLACE VIEW는 편리하지만 기존 뷰 정의를 덮어쓴다. 운영 환경에서는 교체 전 SHOW CREATE VIEW 결과를 백업해 두는 것이 안전하다.

테이블스페이스는 저장소 관리와 관련된 기능이므로 학습 환경에서 동작을 확인하고, 실제 운영에서는 스토리지 정책과 백업 정책을 함께 검토해야 한다.

12 결과 판정표
결과 정상 해석 다음 확인
DESCRIBE에 컬럼 3개 표시 뷰가 의도한 컬럼으로 만들어짐 SELECT 결과 확인
SHOW CREATE VIEW가 새 SELECT 표시 OR REPLACE 적용됨 권한과 의존성 확인
CHECK OPTION INSERT 실패 조건 위반 차단 입력값 수정
CHECK TABLE 오류 원본 객체 문제 가능 원본 테이블 존재 확인
TABLESPACE 이동 성공 저장 위치 변경됨 SHOW TABLE STATUS 확인
13 최종 체크리스트
체크 통과 기준
기존 title 유지 HTML title을 바꾸지 않았다.
원본 코드 포함 md의 핵심 SQL을 본문에 반영했다.
정의 확인 DESCRIBE 또는 SHOW CREATE 명령을 안내했다.
오류 해석 수정 불가, 조건 위반, 원본 삭제 오류를 구분했다.
실습 정리 검산 쿼리와 판정 기준을 함께 제공했다.
14 한 줄 복습
상황 문법 핵심
뷰를 덮어쓰기 CREATE OR REPLACE VIEW 기존 정의가 교체된다.
뷰 조건 강제 WITH CHECK OPTION WHERE 조건 밖 변경을 막는다.
뷰 정의 확인 SHOW CREATE VIEW 저장된 SELECT를 본다.
테이블 저장 위치 지정 TABLESPACE ts_a 물리 저장 공간을 분리한다.
뷰 상태 검사 CHECK TABLE 원본 객체 문제를 확인한다.
15 실습 전후 비교
작업 전 작업 후 확인 포인트
반복 SELECT VIEW로 이름 부여 원본 SELECT와 결과 비교
기존 뷰 정의 OR REPLACE로 교체 SHOW CREATE VIEW 확인
조건 없는 변경 CHECK OPTION으로 제한 조건 밖 INSERT 실패 확인
기본 저장 위치 TABLESPACE 지정 SHOW TABLE STATUS 확인
원본 테이블 의존 원본 삭제 시 뷰 오류 CHECK TABLE로 상태 확인
16 마무리 판단

뷰와 테이블스페이스 실습은 생성 명령만으로 끝내지 않는다. 정의 확인 명령과 실패 케이스를 함께 실행해야 이후에 같은 오류를 빠르게 해석할 수 있다.

CREATE, 확인, 변경 테스트, 실패 해석을 한 세트로 보면 VIEW 관련 문법이 훨씬 안정적으로 정리된다.

핵심 요약

주제CREATE OR REPLACE VIEW
핵심기존 뷰가 있으면 새 SELECT 정의로 교체하고 조회/DML 가능성을 확인한다.
VIEWSELECT 정의를 저장하지만 원본 테이블 의존성이 있다.
CHECK OPTION뷰 조건을 벗어나는 변경을 막는다.
TABLESPACE테이블 저장 위치를 물리적으로 분리해 관리한다.

Tags

#MySQL #VIEW #TABLESPACE #WITH CHECK OPTION #SQL #DB
티스토리 태그 입력용
MySQL, VIEW, TABLESPACE, WITH CHECK OPTION, CREATE OR REPLACE VIEW, SQL, 데이터베이스, DB
반응형

댓글