1. 과목유형 테이블(TB_CLASS_TYPE)에 아래와 같은 데이터를 입력하시오.

INSERT
  INTO TB_CLASS_TYPE
(
  CLASS_TYPE_NO
 ,CLASS_TYPE_NAME
 )
 VALUES
  ('01','전공필수');

INSERT
  INTO TB_CLASS_TYPE
(
  CLASS_TYPE_NO
 ,CLASS_TYPE_NAME
 )
 VALUES
  ('02','전공선택');
  
INSERT
  INTO TB_CLASS_TYPE
(
  CLASS_TYPE_NO
 ,CLASS_TYPE_NAME
 )
 VALUES
  ('03','교양필수');  

INSERT
  INTO TB_CLASS_TYPE
(
  CLASS_TYPE_NO
 ,CLASS_TYPE_NAME
 )
 VALUES
  ('04','교양선택');
  
INSERT
  INTO TB_CLASS_TYPE
(
  CLASS_TYPE_NO
 ,CLASS_TYPE_NAME
 )
 VALUES
  ('05','논문지도');

 

2. 춘 기술대학교 학생들의 정보가 포함되어 있는 학생일반정보 테이블을 만들고자 한다. 아래 내용을 참고하여 적절한 SQL 문을 작성하시오. (서브쿼리를 이용하시오)

CREATE TABLE TB_SIMPLE_STUDENT (
  STUDENT_NO VARCHAR2(10),
  STUDENT_NAME VARCHAR2(40),
  STUDENT_ADDRESS VARCHAR2(200)
);

INSERT
    INTO TB_SIMPLE_STUDENT
(
  STUDENT_NO
, STUDENT_NAME
, STUDENT_ADDRESS
)

(SELECT 
        STUDENT_NO
      , STUDENT_NAME
      , STUDENT_ADDRESS
   FROM  TB_STUDENT
   );

 

3. 국어국문학과 학생들의 정보만이 포함되어 있는 학과정보 테이블을 만들고자 한다. 아래 내용을 참고하여 적절한 SQL 문을 작성하시오. (힌트 : 방법은 다양함, 소신껏 작성하시오)

CREATE TABLE TB_KOR (
   STUDENT_NO VARCHAR2(10),
  STUDENT_NAME VARCHAR2(40),
  STUDENT_BIRTH VARCHAR2(10),
  PROFESSOR_NAME VARCHAR2(30)
  );
  
INSERT 
  INTO TB_KOR
( STUDENT_NO
, STUDENT_NAME
, STUDENT_BIRTH
, PROFESSOR_NAME
)
(SELECT
        STUDENT_NO
      , STUDENT_NAME
      , TO_CHAR(TO_DATE(SUBSTR(STUDENT_SSN,1,6), 'RRMMDD'), 'YYYY')
      , PROFESSOR_NAME
      FROM TB_STUDENT S
      LEFT JOIN TB_PROFESSOR P ON (S.COACH_PROFESSOR_NO = P.PROFESSOR_NO)
      JOIN TB_DEPARTMENT D ON (S.DEPARTMENT_NO = D.DEPARTMENT_NO)
      WHERE D.DEPARTMENT_NAME = '국어국문학과'
      );
      
      
      --------------------------------------------
      CREATE TABLE TB_국어국문학과
AS 
SELECT STUDENT_NO 학번
     , STUDENT_NAME 학생이름
     , 19||SUBSTR(STUDENT_SSN,1,2) 출생년도
     , PROFESSOR_NAME 교수이름
  FROM TB_STUDENT S
     , TB_PROFESSOR P
     , TB_DEPARTMENT D
 WHERE S.COACH_PROFESSOR_NO = P.PROFESSOR_NO(+)
   AND S.DEPARTMENT_NO = D.DEPARTMENT_NO
   AND DEPARTMENT_NAME = '국어국문학과';

 

4. 현 학과들의 정원을 10% 증가시키게 되었다. 이에 사용한 SQL 문을 작성하시오. (단, 반올림을 사용하여 소수점 자릿수는 생기지 않도록 한다)

UPDATE TB_DEPARTMENT
  SET CAPACITY = ROUND(CAPACITY * 1.1, 0);

 

5. 학번 A413042 인 박건우 학생의 주소가 "서울시 종로구 숭인동 181-21 "로 변경되었다고 한다. 주소지를 정정하기 위해 사용한 SQL 문을 작성하시오.

UPDATE TB_SIMPLE_STUDENT
  SET STUDENT_ADDRESS = '서울시 종로구 숭인동 181-21'
 WHERE STUDENT_NO = 'A413042';

 

6. 주민등록번호 보호법에 따라 학생정보 테이블에서 주민번호 뒷자리를 저장하지 않기로 결정하였다. 이 내용을 반영한 적절한 SQL 문장을 작성하시오. (예. 830530-2124663 ==> 830530 )

UPDATE TB_STUDENT
 SET STUDENT_SSN = SUBSTR(STUDENT_SSN,1,6);

 

7. 의학과 김명훈 학생은 2005 년 1 학기에 자신이 수강한 '피부생리학' 점수가 잘못되었다는 것을 발견하고는 정정을 요청하였다. 담당 교수의 확인 받은 결과 해당 과목의 학점을 3.5 로 변경키로 결정되었다. 적절한 SQL 문을 작성하시오.

UPDATE TB_GRADE
 SET POINT = '3.5'
 WHERE TERM_NO = '200501'
 AND STUDENT_NO = (SELECT 
                         STUDENT_NO
                     FROM TB_STUDENT S
                     JOIN TB_DEPARTMENT D ON (S.DEPARTMENT_NO = D.DEPARTMENT_NO)
                     WHERE S.STUDENT_NAME = '김명훈'
                     AND D.DEPARTMENT_NAME = '의학과'
                     );
                     
                     ++
   AND CLASS_NO = (SELECT CLASS_NO
                     FROM TB_CLASS
                    WHERE CLASS_NAME = '피부생리학');

 

8. 성적 테이블(TB_GRADE) 에서 휴학생들의 성적항목을 제거하시오

DELETE FROM TB_GRADE
WHERE STUDENT_NO IN (SELECT 
                            STUDENT_NO 
                       FROM TB_STUDENT
                       WHERE ABSENCE_YN = 'Y'
                       );
--483개 행 이(가) 삭제

'LECTURE > Oracle 과제' 카테고리의 다른 글

[춘대학시스템 워크북] DDL 문제 풀이  (0) 2023.01.18

+ Recent posts