- 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;
- 실행 결과 :
-
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;
- 실행 결과 :
-
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;
- 실행 결과 :
-
-
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 '김%';
- 실행 결과 :
-
-
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;
- 실행 결과 :
-
3-6) BACK_NO가 없는 사람들 중에서 성이 김씨인 사람들만 조회하는 SQL문을 작성하고 그 결과를 출력하라.
- SQL문 :
SELECT * FROM PLAYER WHERE BACK_NO IS NULL AND PLAYER_NAME LIKE '김%';
- 실행 결과 :
-
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;
- 실행 결과 :
-
-