Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

정보처리기사 실기

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

외부평가 기본형 실무문제 1번

[기본형 실습 과제 1] 2차시_데이터베이스 입력

윤서입니다롱 2026. 4. 21. 11:36

(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 사용 시 오류가 발생할 수 있으므로 주의가 필요합니다.