SQL 제약 및 테이블 관리: 실습과 이론

Yunsung·2024년 12월 20일
post-thumbnail

1. 단일 조건(if 문)

if(조건, true-value, false-value) 구문을 사용하여 간단한 조건 분기를 처리합니다.

2. 다중 조건 처리(Case 문)

다중 조건을 처리하기 위해 CASE문을 사용하며, WHEN, THEN, ELSE를 활용하여 다양한 조건에 따른 결과를 반환합니다.

-- 예시: 급여 등급에 따른 자치회비 차별
SELECT
  사번,
  이름,
  급여,
  CASE
    WHEN 급여 >= 3000 THEN FLOOR(급여 * 0.1)
    WHEN 급여 >= 2000 THEN FLOOR(급여 * 0.05)
    ELSE FLOOR(급여 * 0.02)
  END AS 자치회비
FROM 직원

3. 제약 조건 위치에 따른 분류

  • 컬럼 레벨 제약: 특정 컬럼에 대한 제약을 지정할 수 있습니다.
  • 테이블 레벨 제약: 여러 컬럼에 걸쳐 제약을 지정할 수 있습니다.

4. 테이블 생성 시 컬럼 순서 정하기

테이블을 설계할 때, 필수 컬럼을 먼저 배치하고, 그 후 조건 대상 컬럼을 추가하는 방식으로 컬럼 순서를 정합니다.

5. 테이블 생성과 제약 지정

  • 컬럼 레벨 제약: 컬럼 정의 시 제약을 함께 설정하는 방식입니다.
CREATE TABLE member (
  User_id INT PRIMARY KEY AUTO_INCREMENT,
  User_name VARCHAR(30) NOT NULL,
  Age INT CHECK(age >= 19),
  Join_date TIMESTAMP DEFAULT NOW(),
  Nickname VARCHAR(30)
);

  • 자식 테이블 예시: 부모 테이블을 참조하는 자식 테이블을 생성합니다.
CREATE TABLE book_rental (
  Isbn VARCHAR(20) PRIMARY KEY,
  book_title VARCHAR(200) NOT NULL,
  rental_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  return_date TIMESTAMP,
  user_id INT,
  FOREIGN KEY (user_id) REFERENCES member(User_id)
);

6. 테이블 구조 변경

데이터베이스 테이블을 수정할 때는 컬럼 추가, 변경, 삭제 등을 고려해야 하며, 변경 전 데이터가 없는 경우와 있는 경우에 따라 다르게 처리됩니다.

-- 컬럼 추가 예시
ALTER TABLE member ADD COLUMN email VARCHAR(100);

-- 컬럼 삭제 예시
ALTER TABLE member DROP COLUMN nickname;

7. 제약 추가 및 변경

테이블 구조 변경 시 제약을 추가하거나, 기존 제약을 변경할 수 있습니다. 예를 들어, UNIQUE 제약을 추가하거나, CHECK 제약을 수정하는 방법을 다룹니다.

-- 제약 추가 예시
ALTER TABLE member ADD CONSTRAINT unique_email UNIQUE(email);
profile
풀스택 개발자로서의 도전을 하는 중입니다. 많은 응원 부탁드립니다!!😁

0개의 댓글