ORACLE 12g 기준 및 실무 영역으로 작성한 글임을 알려드립니다.
저번 포스팅에서는 SQL의 기초 중에서도 아주 기초들을 배웠습니다. 하지만 실무영역에서 배운 내용들을 사용하기엔 2%가 부족합니다.
그래서 이번 포스팅에서는 그 2%를 채워볼 예정입니다.
다양한 조건으로 데이터 추출하기
저번 포스팅에서 우린 조건을 검색할 때 WHERE을 사용한다는 것을 배웠습니다. 하지만 모든 조건이 equal(=)은 아닙니다. 유사한 데이터를 찾아야 할 때나 사이의 있는 값들을 추출해야 할 경우들도 있습니다. 그럼 WHERE 절에서 쓸 수 있는 연산자들은 어떤 것들이 있을까요?
비교연산자라는 단어를 쓸 수도 있지만 익숙하지 않은 단어는 이해를 돕지 않습니다. 그러므로 예시로 설명하며, 실무에서 가장 많이 쓰이는 조건절을 살펴보겠습니다.
"우리학교 남학생 중 키가 167cm 이상 175cm 이하 학생들의 평균 나이는 어떻게 돼?"
SELECT AVG(나이)
FROM 학교
WHERE 성 = '남'
AND 키 BETWEEN 167 AND 175
BETWEEN 으로 우리는 어떤 값으로부터 어떤 값까지의 데이터를 조회해 볼 수 있습니다.
"우리학교 여학생 중 성이 최씨로 시작하는 학생들의 평균 성적이 궁금한데, 그 중에서 키가 165cm 이하는 알고싶지 않고, 3학년은 통계에서 빼줬으면 좋겠어."
SELECT AVG(성적)
FROM 학교
WHERE 성 LIKE '최%'
AND 키 <= 165
AND 학년 != 3
--AND 학년 <> 3
보이시나요? '~로', '~와 같이' 는 SQL에서 LIKE를 사용합니다.
그리고 165cm 이하는 알고싶지 않다고 하였으니 조건은 165cm 이상으로 해야하므로 '크거나 같다'의 의미인 <= 을 사용하였지요.
마지막으로 무언가는 빼고 싶다, 즉 데이터에서 해당 부분은 제외하고 조회 부분은 <> 혹은 != 로 표현합니다.
"직원번호가 20, 30, 50인 사람들만 보고싶은데, 해당 직원의 직급이 사원이거나 팀장이였으면 좋겠어."
SELECT *
FROM 회사
WHERE 직원번호 IN (20, 30, 70)
AND 직급 = '사원' OR 직급 = '팀장'
다수의 건들을 추출할 땐 'IN'을 사용합니다.
'또는' 일 때는 말씀 안드려도 아시겠지요? 바로 'OR'입니다.
사실 실무영역은 기본기만 탄탄해도 응용력만 있다면 충분하다고 생각합니다. 데이터 분석가로 선택을 하셨다면, 감히 이런 말씀을 드리고 싶습니다.
꼭 쿼리로 완벽한 시각화까지 만들 수 있는 역량이 필요한 것은 아닙니다. BI툴로도 충분히 쿼리의 한계를 극복할 수 있기 때문에 겁먹지 말고 선택한 길을 열심히 나아가시길 바랍니다.
다음 포스팅부터는 조금씩 심화 과정을 포스팅 하도록 하겠습니다.
'SQL의 모든 것 > SQL의 이론 및 기초' 카테고리의 다른 글
실무 ETL (2) | 2024.06.03 |
---|---|
오라클 SELECT~GROUP BY (2) | 2024.05.30 |
PL/pgSQL - SQL 프로시저 언어 (0) | 2024.01.26 |
SQL 수행 아키텍처(INSERT, SELECT, UPDATE) (2) | 2024.01.25 |