글
실전! 개발자를 위한 SQL & Tuning - 평가문제
아래 질문에 대하여 답하시오.
※ A4 2~3매 분량으로 작성하여 제출하세요. (단, Font 크기는 13으로 할 것)
1) 이민성 선수의 생일을 알아볼 수 있는 SQL문을 작성하시오.
(단, 테이블명은 PLAYER_T, 선수이름 컬럼명은 PLAYER_NAME, 생일 컬럼명은 BIRTH,
이민성 선수가 중복되어 있지 않습니다. 컬럼 BIRTH는 date 타입이며, 날짜포맷은 'YYYY/MM/DD'로 나타내시
오.)
Sol.)
SELECT
TO_CHAR(BIRTH,'YYYY/MM/DD')
FROM
PLAYER_T
WHERE
PLAYER_NAME = '이민성'
2) 장대일 선수의 소속을 '드래곤즈'로 변경하는 SQL문을 작성하시오.
(단, 테이블명은 PLAYER_T, 선수이름 컬럼명은 PLAYER_NAME, 팀아이디 컬럼명은 TEAM_ID, 드래곤즈팀 아이디
명
은 'K07'입니다.)
Sol.)
UPDATE
PLAYER_T
SET
TEAM_ID='K07'
WHERE PLAYER_NAME='장대일'
3) 다음 SQL문의 결과를 SQL을 수정하지 않고 특정한 날짜포맷으로 변경하는 방법을 두가지 이상 설명하시오.
SELECT sysdate from dual;
Sol)
1. 해당 유저의 session만 변경하는 방법 in UNIX
Ksh(.profile) :
$ NLS_DATE_FORMAT=YYYY-MM-DD:hh24:mi:ss;export NLS_DATE_FORMAT
Csh(.cshrc) :
setenv NLS_DATE_FORMAT YYYY-MM-DD:hh:mi:ss
2.In client
- orawin을 ORACLE_HOME으로 사용하는 사용자는
oracle.ini에 다음을 추가 또는 변경한다.
NLS_DATE_FORMAT=YYYY-MM-DD:hh:mi:ss
- orawin95 또는 ORANT를 ORACLE_HOME으로 사용하는 사용자는
regedit에 다음을 추가 또는 변경한다.
시작 -> 실행 -> regedit -> HKEY_LOCAL_MACHINE -> SOFTWARE ->
ORACLE ->
NLS_DATE_FORMAT YYYY-MM-DD:hh:mi:ss
3. session 단위 변경
SQL> alter session set NLS_DATE_FORMAT= 'YYYY-MM-DD:hh:mi:ss';
4) 블루윙스 팀의 선수목록을 나타내는 SQL문을 작성하시오. 나타내는 목록은 팀이름, 선수이름, 포지션, 백
넘
버이며, 선수명으로 내림차순 정렬하시오.
(단, 팀정보 테이블명은 TEAM_T이며, 팀아이디(TEAM_ID)과 팀이름(TEAM_NAME) 컬럼을 포함하고, 선수정보 테
이
블명은 PLAYER_T이며, 팀아이디 컬럼명(TEAM_ID)과
선수이름(PLAYER_NAME), 포지션(POSITION), 백넘버(BACK_NO) 컬럼을 포함함. 블루윙스의 팀아이디명은‘K02’
임. 자세한 것은 자료실을 참조하십시오.)
Sol)
SELECT
TEAM_NAME AS 팀이름, PLAYER_NAME AS 선수이름, POSITION AS 포지션, BACK_NO AS 백넘버
FROM
TEAM_T A, PLAYER_T B
WHERE
A.TEAM_ID = B.TEAM_ID AND TEAM_ID = 'K02'
ORDER BY 선수명
5) K-리그 경기중 8월의 경기장별 일정을 나타내는 SQL문을 작성하시오. 나타내는 목록은 경기일자, 경기장
명, 홈팀, 어웨이팀 순이며, 경기일자, 경기장명별로 오름차순 정렬하시오.
(단, 스케쥴정보 테이블명은 SCHEDULE_T이며, 홈팀(HOMETEAM_ID), 어웨이팀 (AWAYTEAM_ID), 경기일자
(SCHE_DATE), 경기장(STADIUM_ID) 등의 컬럼을 포함하며, 경기장정보 테이블명은 STADIUM_T이며, 경기장명
(STADIUM_NAME), 경기장 (STADIUM_ID) 등의 컬럼을 포함한다. 자세한 것은 자료실을 참조하십시오.)
Sol)
SELECT
a.SCHE_DATE AS 경기일자
, b.STADIUM_NAME AS 경기장명
, a.HOMETEAM_ID AS 홈팀
, a.AWAYTEAM_ID AS 어웨이팀
FROM SCHEDULE_T a, STADIUM_T b
WHERE a.STADIUM_ID = b.STADIUM_ID
ORDER BY 경기일자, 경기장명