정보처리기사 실기
[기본형 실습 과제 1] 2차시_데이터베이스 입력 본문

(1) 제공되는 문제에서 요구하는 데이터베이스를 확인합니다.
회원테이블 명세서(tbl_member)
| 순서 | 컬럼ID | 컬럼명 | 형태 | 길이 | NULL | 비고 |
| 1 | pk_number | 회원코드 | VARCHAR | 5 | NOT | PRIMARY KEY |
| 2 | name | 회원이름 | VARCHAR | 20 | NOT | |
| 3 | grade | 회원등급 | VARCHAR | 255 |
회원테이블 제공 데이터
| 코드 | 이름 | 등급 |
| M0001 | 홍길동 | 의적 |
| M0002 | 심청 | 효녀 |
| M0003 | 세종 | 대왕 |
| M0004 | 이순신 | 장군 |
| M0005 | 장영실 | 과학자 |
일정테이블 명세서(tbl_schedule)
| 순서 | 컬럼ID | 컬럼명 | 형태 | 길이 | NULL | 비고 |
| 1 | pk_schedule | 일정코드 | NUMBER | 5 | NOT | PRIMARY KEY |
| 2 | do_date | 일정일자 | DATE | NOT | ||
| 3 | do_memo | 일정메모 | VARCHAR | 10 | NOT | |
| 4 | fk_member | 회원코드 | VARCHAR | 5 | NOT | FOREIGN KEY |
일정테이블 제공 데이터
| 코드 | 일자 | 메모 | 회원코드 |
| 1 | 20250101 | 탐관오리 찾기 | M0001 |
| 2 | 20250201 | 아버지 돌보기 | M0002 |
| 3 | 20250301 | 한글 창제 | M0003 |
| 4 | 20250401 | 거북선으로 국가 수호 | M0004 |
(2) 환경구축에서 만들어놓았던 'db.sql' 파일을 활용하겠습니다

(3) 만약 Disconnected 상태라면 빈화면에서 우클릭을 한 후 [Connect]를 클릭합니다

짜잔 Connected 가 되었습니다

(4) 문제에서 요구하는대로 SQL문을 작성합니다.

/* 1. 관련 테이블 초기화 */
DROP TABLE tbl_schedule;
DROP TABLE tbl_member;
/* 2. 회원 테이블 생성 (tbl_member) */
CREATE TABLE tbl_member (
pk_member VARCHAR2(5) NOT NULL PRIMARY KEY,
name VARCHAR2(20) NOT NULL,
grade VARCHAR2(20)
);
/* 3. 일정 테이블 생성 (tbl_schedule) */
CREATE TABLE tbl_schedule (
pk_schedule NUMBER(5) NOT NULL PRIMARY KEY,
do_date DATE NOT NULL,
do_memo VARCHAR2(255) NOT NULL,
fk_member VARCHAR2(5) NOT NULL,
/* 외래키 설정 */
CONSTRAINT fk_member
FOREIGN KEY (fk_member)
REFERENCES tbl_member(pk_member)
);
/* 4. 회원 테이블 데이터 입력 */
INSERT INTO tbl_member VALUES ('M0001', '홍길동', '의적');
INSERT INTO tbl_member VALUES ('M0002', '심청', '효녀');
INSERT INTO tbl_member VALUES ('M0003', '세종', '대왕');
INSERT INTO tbl_member VALUES ('M0004', '이순신', '장군');
INSERT INTO tbl_member VALUES ('M0005', '장영실', '과학자');
/* 5. 일정 테이블 데이터 입력 */
INSERT INTO tbl_schedule VALUES (1,'20250101', '탐관오리 찾기', 'M0001');
INSERT INTO tbl_schedule VALUES (2,'20250201', '아버지 돌보기', 'M0002');
INSERT INTO tbl_schedule VALUES (3,'20250301', '한글 창제', 'M0003');
INSERT INTO tbl_schedule VALUES (4,'20250401', '거북선 국가 수호', 'M0004');
/* 6. 저장 (auto commit이 켜져있는 상태에서 COMMIT 문장 실행시키면 오류나서 주석처리) */
--COMMIT
/* 7. 테이블 출력 */
SELECT * FROM tbl_member;
SELECT * FROM tbl_schedule;
더보기
📌 문법 정리
1. CREATE TABLE
CREATE TABLE 테이블명 (컬럼명 자료형 [제약조건]);
2. DROP TABLE
DROP TABLE 테이블명;
3. INSERT
INSERT INTO 테이블명 VALUES (값1, 값2, 값3);
4. SELECT
SELECT * FROM 테이블명;
5. PRIMARY KEY
컬럼명 자료형 PRIMARY KEY
6. FOREIGN KEY
FOREIGN KEY (컬럼명)
REFERENCES 테이블명(컬럼명)
(5) SQL문을 실행하려면 명령어 위에서 우클릭을 한 후, [Execute All] 을 누르면 전체 실행이 됩니다.

선택 영역 실행은 다음과 같이 드래그 한 후 [Execute Selected Text]를 누릅니다


- 문제에서 제시된 대로 tbl_schedule 테이블의 do_memo 컬럼을 VARCHAR2(10)으로 설정할 경우,
제공된 한글 데이터를 길게 입력 시 길이 초과 오류가 발생할 수 있습니다. (했습니다....) - 이는 오라클의 VARCHAR2 타입이 기본적으로 바이트(byte) 기준으로 길이를 제한하기 때문이며,
한글은 1글자가 2~3바이트를 차지하여 실제 저장 시 제한을 초과하게 됩니다. - 따라서 실습에서는 오류 방지를 위해 VARCHAR2(255)로 확장하거나,
VARCHAR2(10 CHAR)와 같이 문자 기준으로 설정하는 방법을 사용할 수 있습니다. (->VARCHAR2(255) 로 확장)
- 또한 현재 실습 환경은 Auto Commit 모드이므로 별도의 COMMIT 문이 필요하지 않으며,
일부 실행 환경에서는 COMMIT 사용 시 오류가 발생할 수 있으므로 주의가 필요합니다.
'외부평가 기본형 실무문제 1번' 카테고리의 다른 글
| [기본형 실습 과제 1] 5차시_최종 테스트 (0) | 2026.04.27 |
|---|---|
| [기본형 실습 과제 1] 4차시_페이지별 기능 구현 (0) | 2026.04.27 |
| [기본형 실습 과제 1] 3차시_ 화면구현 (1) | 2026.04.27 |
| [기본형 실습 과제 1] 0차시_환경 구축 (1) | 2026.04.13 |
