데이터베이스 속성 제약 조건 추가 및 변경 연습문제

문제 1

문제 설명

다음은 학생 정보를 저장하는 데이터베이스의 스키마입니다.

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    grade CHAR(1)
);

다음 요구사항에 맞게 데이터베이스의 속성 제약 조건을 추가하거나 변경해보세요.

요구사항

  1. 학생의 이름은 반드시 입력되어야 합니다.
  2. 학생의 나이는 10부터 20 사이의 값만 입력 가능합니다.
  3. 학생의 학년은 A, B, C 중 하나의 값만 입력 가능합니다.

문제 해결 방법

각 요구사항에 따라 데이터베이스의 속성 제약 조건을 추가 또는 변경해야 합니다. 아래는 각 요구사항을 해결하기 위한 SQL문입니다.

  1. 학생의 이름은 반드시 입력되어야 합니다.
ALTER TABLE students
MODIFY name VARCHAR(50) NOT NULL;

MODIFY 키워드를 사용하여 name 속성의 변경을 수행하고, NOT NULL 제약 조건을 추가합니다.

  1. 학생의 나이는 10부터 20 사이의 값만 입력 가능합니다.
ALTER TABLE students
ADD CONSTRAINT age_range CHECK (age >= 10 AND age <= 20);

ADD CONSTRAINT 키워드를 사용하여 새로운 제약 조건을 추가합니다. CHECK 제약 조건을 사용하여 age 속성의 범위를 지정합니다.

  1. 학생의 학년은 A, B, C 중 하나의 값만 입력 가능합니다.
ALTER TABLE students
ADD CONSTRAINT grade_values CHECK (grade in ('A', 'B', 'C'));

새로운 제약 조건을 추가하고, CHECK 제약 조건을 사용하여 grade 속성의 값이 ‘A’, ‘B’, ‘C’ 중 하나인지 확인합니다.

문제 2

문제 설명

다음은 사원 정보를 저장하는 데이터베이스의 스키마입니다.

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    department VARCHAR(50)
);

다음 요구사항에 맞게 데이터베이스의 속성 제약 조건을 추가하거나 변경해보세요.

요구사항

  1. 사원의 이름은 50자를 초과할 수 없습니다.
  2. 사원의 부서는 ‘영업’, ‘개발’, ‘인사’ 중에서만 선택 가능합니다.

문제 해결 방법

각 요구사항에 따라 데이터베이스의 속성 제약 조건을 추가 또는 변경해야 합니다. 아래는 각 요구사항을 해결하기 위한 SQL문입니다.

  1. 사원의 이름은 50자를 초과할 수 없습니다.
ALTER TABLE employees
MODIFY name VARCHAR(50);

MODIFY 키워드를 사용하여 name 속성의 크기를 50으로 변경합니다.

  1. 사원의 부서는 ‘영업’, ‘개발’, ‘인사’ 중에서만 선택 가능합니다.
ALTER TABLE employees
ADD CONSTRAINT department_values CHECK (department in ('영업', '개발', '인사'));

새로운 제약 조건을 추가하고, CHECK 제약 조건을 사용하여 department 속성의 값이 ‘영업’, ‘개발’, ‘인사’ 중 하나인지 확인합니다.

참고 자료