• 3주차 과제 - DML, WHERE
  • 실습 환경 : Oracle
  • 해결 날짜 : 2021-03-19

  • 과제

    • 3-1) [예제1-2]를 변형하여 PLAYER 테이블에 몸무게가 200kg 이상인 4명의 데이터를 INSERT 하는 SQL문을 4개 작성하고 실행 후, 5절의 SELECT 문을 활용하여 4명의 선수 정보 모두를 출력하라.

      • SQL문 :
      INSERT INTO PLAYER
      VALUES('2017001','김남호','K07','NAMHO, KIM','Tree','2017','MF','1','Korea','98/10/04','1','180','200');
      
      INSERT INTO PLAYER
      VALUES('2017002','류건열','K07','GEONYEOL, RYU','Towel','2017','FW','2','Korea','98/03/12','1','170','250');
      
      INSERT INTO PLAYER
      VALUES('2017003','박지우','K07','JIWOO, PARK','Jyu','2017','DF','3','Korea','98/06/26','1','181','230');
      
      INSERT INTO PLAYER
      VALUES('2014001','김정상','K07','JEONGSANG, KIM','Normal','2019','FW','7','Korea','96/03/10','1','200','300');
      
      SELECT * FROM PLAYER WHERE WEIGHT >= 200;
      
      • 실행 결과 :

      image image

    • 3-2) 문제 1에서 생성한 몸무게가 200kg 이상인 열 4개를 가지고, [예제2-1]을 변형하여 4명의 NICKNAME을 “TB”로 UPDATE 하는 SQL문을 작성하고 실행 후, 4명의 결과를 과제 3-1의 SELECT 문으로 출력하라.

      • SQL문 :
      UPDATE PLAYER
      SET NICKNAME = 'TB' WHERE WEIGHT >= 200;
      
      SELECT * FROM PLAYER WHERE WEIGHT >= 200;
      
      • 실행 결과 :

      image

    • 3-3) [예제5-7]과 [예제5-8]을 변형하여 선수의 정보를 조회하는 한글 질의문과 SQL문을 작성하고 실행 후, 그 결과를 출력하라. (단   3개 이상, 산술연산자 3개 이상 사용하세요.) [2점]
      • 한글 질의문 : PLAYER TABLE에서 선수의 정보를 불러오되, 몸무게가 200KG 이상인 선수만 출력하여라. (단   3개 이상, 산술연산자 3개 이상 사용하세요.)
      • SQL문 :
      SELECT PLAYER_NAME || ' 선수의 키는 ' || HEIGHT || 'cm이고, 몸무게는 ' || WEIGHT || 'kg이므로 BMI 지수는 ' || ROUND(WEIGHT/((HEIGHT/100)*(HEIGHT/100)),2) || '입니다.' FROM PLAYER WHERE WEIGHT >= 200;
      
      • 실행 결과 :

      image

    • 3-4) [예제2-]와 [예제3-]을 참고하여 3개 이상 Column을 IN, LIKE을 이용하여 검색하는 한글 질의문과 SQL문을 작성하고 그 결과를 출력하라.[2점]

      • 한글 질의문 : PLAYER TABLE에서 PLAYER_NAME, TEAM_ID, POSITION을 선택해 가져오되, TEAM_ID가 K03이면서 POSITION이 DF이거나, TEAM_ID가 K10이면서 POSITION이 DF인 선수들 중 김씨 성을 가진 선수들을 출력하시오. (단, IN, LIKE을 이용하시오.)

      • SQL문 :

      SELECT PLAYER_NAME, TEAM_ID, POSITION
      FROM PLAYER WHERE (TEAM_ID, POSITION) IN(('K03','DF'),('K10','DF')) AND PLAYER_NAME LIKE '김%';
      
      • 실행 결과 :

      image

    • 3-5) [예제6]과 [예제7]을 참고하여 AND, NOT, IS NULL을 포함하는 한글 질의문과 SQL문을 작성하고 그 결과를 출력하라.[2점]

      • 한글 질의문 : PLAYER TABLE에서 K03 소속이고, 포지션이 DF, 영문 이름이 NULL이 아니고, 몸무게가 70에서 100 사이인 선수들의 정보를 불러와 출력하시오. (단, AND, NOT, IS NULL을 포함하시오.)
      • SQL문 :
      SELECT PLAYER_NAME AS 이름, E_PLAYER_NAME AS 영문이름 , TEAM_ID AS 소속팀, POSITION AS 포지션, WEIGHT AS 몸무게
      FROM PLAYER
      WHERE TEAM_ID = 'K03'
      AND POSITION = 'DF'
      AND E_PLAYER_NAME IS NOT NULL
      AND WEIGHT BETWEEN 70 AND 100;
      
      • 실행 결과 :

      image

    • 3-6) BACK_NO가 없는 사람들 중에서 성이 김씨인 사람들만 조회하는 SQL문을 작성하고 그 결과를 출력하라.

      • SQL문 :
      SELECT * FROM PLAYER
      WHERE BACK_NO IS NULL AND PLAYER_NAME LIKE '김%';
      
      • 실행 결과 :

      image

    • 3-7. [예제5]와 p.121에 있는 IS NULL 과 ROWNUM 을 사용하여 2개의 행을 조회하는 한글 질의문과 SQL문을 작성하고 출력하라.

      • 한글 질의문 : PLAYER TABLE에서 최대 두 건의 행을 가져오고 NICKNAME이 NULL인 선수들의 정보를 가져와 출력하시오. (단, IS NULL 과 ROWNUM 을 사용하시오.)

      • SQL문 :

      SELECT PLAYER_NAME AS 이름, POSITION AS 포지션, NICKNAME AS 별명
      FROM PLAYER
      WHERE ROWNUM <= 2 AND NICKNAME IS NULL;
      
      • 실행 결과 :

      image