ORA
0/26 완료

[1번]다음 요건에 맞게 my_departments 테이블을 생성하시오. - dept_id: NUMBER(4), 기본 키 - dept_name: VARCHAR2(30), NOT NULL - location: VARCHAR2(50), 기본값 Seoul

결과 예시

Table created.

💡 키포인트

PRIMARY KEY, NOT NULL, DEFAULT를 열 수준에서 정의한다. 생성 순서 주의 (my_departments를 먼저 생성해야 my_employees에서 FK 참조 가능).

[2번]다음 요건에 맞게 my_employees 테이블을 생성하시오. (my_departments보다 나중에 생성) - emp_id: NUMBER(6), 기본 키 - first_name: VARCHAR2(20) - last_name: VARCHAR2(25), NOT NULL - email: VARCHAR2(25), UNIQUE, NOT NULL - hire_date: DATE, 기본값 SYSDATE - salary: NUMBER(8,2), CHECK(salary > 0) - dept_id: NUMBER(4), my_departments(dept_id) 참조

결과 예시

Table created.

💡 키포인트

FK를 통해 참조되는 부모 테이블(my_departments)이 먼저 존재해야 한다. REFERENCES 단축 구문으로 FK를 열 수준에서 정의.

[3번]my_employees 테이블 생성 후 DESCRIBE 명령어로 구조를 확인하시오.

결과 예시

Name Null? Type ------------- -------- --------------- EMP_ID NOT NULL NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) HIRE_DATE DATE SALARY NUMBER(8,2) DEPT_ID NUMBER(4)

💡 키포인트

DESCRIBE(또는 DESC)는 테이블의 열 이름, NULL 허용 여부, 데이터 타입을 확인한다.

[4번]다음 조건으로 projects 테이블을 생성하시오. 모든 제약 조건에 명시적 이름을 부여하시오. - project_id: NUMBER(5), PK (proj_pk) - project_name: VARCHAR2(50), NOT NULL (proj_name_nn) - budget: NUMBER(12,2), CHECK(budget >= 0) (proj_budget_ck) - status: VARCHAR2(20), CHECK(IN PLANNING/ACTIVE/CLOSED) (proj_status_ck) - start_date: DATE, 기본값 SYSDATE

결과 예시

Table created.

💡 키포인트

CONSTRAINT 이름 제약_이름 TYPE 형식으로 명시적 이름을 부여하면 오류 발생 시 어떤 제약 조건인지 쉽게 식별할 수 있다.

[5번]CREATE TABLE AS SELECT로 dept80_copy 테이블을 생성하시오. 부서 80 사원의 employee_id, last_name, salary, hire_date만 복사하고, 생성 후 행 수를 확인하시오.

결과 예시

Table created. COUNT(*) -------- 34

💡 키포인트

CREATE TABLE AS SELECT는 구조와 데이터를 동시에 복사한다. PRIMARY KEY/UNIQUE/FK/CHECK는 복사되지 않으며 NOT NULL만 복사된다.

[6번]EMPLOYEES 테이블과 동일한 구조이지만 데이터는 없는 빈 테이블 empty_emp를 생성하시오.

결과 예시

Table created. COUNT(*): 0 (데이터 없음) -- EMPLOYEES와 동일한 구조, NOT NULL 이외의 제약 조건은 복사되지 않음

💡 키포인트

WHERE 1=2는 항상 거짓이므로 행이 선택되지 않는다. 구조(열 정의)만 복사되고 데이터 없는 빈 테이블이 생성된다. 백업 테이블 구조 생성 시 자주 사용하는 패턴.