-
[혼자 공부하는 SQL] 5장. 테이블과 뷰DB 2024. 4. 27. 04:09728x90
제약조건의 기본 개념과 종류
제약조건(constraint) : 데이터의 무결성을 지키기 위해 제한하는 조건
MySQL에서 제공하는 대표적인 제약조건
- PRIMARY KEY 제약조건
- FOREIGN KEY 제약조건
- UNIQUE 제약조건
- CHECK 제약조건
- DEFAULT 정의
- NULL 값 허용
기본 키 제약조건
기본 키(primary key) : 데이터를 구분할 수 있는 식별자
기본 키로 지정하면 클러스터형 인덱스가 자동으로 생성된다.
테이블은 기본 키를 1개만 가질 수 있다. 따라서 테이블의 특성을 가장 잘 반영하는 열을 선택하는 것이 좋다.
mem_id CHAR(8) NOT NULL PRIMARY KEY
외래 키(foreign key) 제약조건
두 테이블의 관계를 연결해주고, 그 결과 데이터의 무결성을 보장해주는 역할
외래 키가 설정된 열은 다른 테이블의 기본 키와 연결된다.
FOREIGN KEY(mem_id) REFERENCES 기준_테이블(열_이름)
💡 기본 키 - 외래 키로 맺어진 후에는 기준 테이블의 열 이름이 변경되거나 삭제되지 않는다. 열 이름이 변경되면 참조 테이블의 데이터에 문제가 발생하기 때문이다.
⇒ 기준 테이블의 열을 수정하거나 삭제할 때 ON UPDATE CASCADE, ON DELETE CASCADE문을 사용한다.
기타 제약조건
고유 키(unique) 제약조건
‘중복되지 않는 유일한 값’을 입력해야 한다.
- NULL 값 허용
- 고유 키 여러 개를 설정 가능
email CHAR(30) NULL UNIQUE
체크(check) 제약조건
입력되는 데이터를 점검하는 기능
예를 들어, 평균 키에 마이너스 값이 입력되지 않도록 한다.
height TINYINT UNSIGNED NULL CHECK (height >= 100) ****-- 100이상의 값만 입력
기본 값(defalut) 정의
값을 입력하지 않았을 때 자동으로 입력될 값을 미리 지정해 놓는 방법
height TINYINT UNSIGNED NULL DEFAULT 160 ****-- 기본값 160
널 값 허용
NULL : NULL 값 허용하는 열
NOT NULL : NULL값 허용하지 않는 열
가상의 테이블 뷰
뷰를 사용하면 사용자에게 테이블의 필요한 내용만 보이도록 할 수 있다.
- 뷰는 테이블처럼 데이터를 가지고 있지 않다.
- 뷰는 SELECT문으로 만들어져 있기 때문에 뷰에 접근하는 순간 SELECT가 실행되고 그 결과가 화면에 출력되는 방식이다.
- 단순 뷰와 복합 뷰로 나뉜다.
- 단순 뷰 : 하나의 테이블과 연관된 뷰
- 복합 뷰 : 2개 이상의 테이블과 연관된 뷰
뷰 생성
CREATE VIEW 뷰_이름 AS SELECT 문
뷰를 사용하는 이유
- 보안에 도움이 된다.
- 뷰를 사용하여 사용자마다 테이블에 접근하는 권한에 차별을 둬서 관리하면 보안성이 높아진다.
- 복잡한 SQL을 단순하게 만들 수 있다.
- 복잡한 SQL을 뷰로 생성해두고 사용자가 해당 뷰에 접근하도록 하면 편리하다.
뷰의 실제 작동
뷰의 실제 생성, 수정, 삭제
뷰를 생성할 때 뷰의 열 이름을 테이블과 다르게 지정할 수 있으며, 띄어쓰기나 한글도 가능합니다.
뷰의 생성은 CREATE VIEW, 수정은 ALTER VIEW, 삭제는 DROP VIEW 를 사용합니다.
단순 뷰 : 하나의 테이블로 만든 뷰
복합 뷰 : 두 개 이상의 테이블로 만들 뷰, 주로 두 테이블을 조인한 결과를 뷰로 만들 때 사용, 읽기 전용728x90'DB' 카테고리의 다른 글
[데이터베이스개론] Ch1. 데이터베이스 기본 개념 (0) 2024.07.15 [혼자 공부하는 SQL] 6장. 인덱스, 복합 인덱스 (0) 2024.05.07 [혼자 공부하는 SQL] 4장. SQL 고급 문법 (0) 2024.04.17 [혼자 공부하는 SQL] 3장. SQL 기분 문법 (0) 2024.04.04 [혼자 공부하는 SQL] 2장. 실전용 SQL 미리 맛보기 (0) 2024.04.04