어느덧 IT’s Your Life 프로그램을 시작한 지 3개월이 되었고, 이제 데이터베이스(DB) 파트를 공부하기 시작했다.
참고로 커리큘럼은 KB 국민은행에서 신입 개발자가 갖춰야 할 기술 스택을 멀티캠퍼스와 직접 컨택하여 선정한다고 한다.
나는 5기 수강생으로서 이번 DB 파트에서 MySQL과 MongoDB를 배우게 된다.
교육은 전공자와 비전공자로 나뉘어 진행되며, 전공자인 나는 실습 위주의 설명과 개념 파트에서 면접 대비에 도움이 될 부분을 짚어준다.
사실 이런 교육과정의 가장 큰 장점은 공부 의지가 있는 사람들과 함께 동기부여를 받을 수 있다는 것이다.
가물가물해진 SQL 문법들이었기에 KB 교육 과정 내에서 두 가지 활동을 시작했다.
“SQL 문법은 익숙하세요?”
“그럼 우리 1일 1코테 풀기 챌린지나 할까요?”
본격적으로 DB 파트에 들어가니 쿼리문 작성이 가물가물하다는 생각이 들었다. 그래서 이런저런 대화를 하다가 자연스럽게 이런 챌린지를 만들어 버렸다.
둘이서 챌린지를 한다고 하니 금세 사람이 모였다. 단 하루 만에 6인 규모 챌린지가 되었다.
(해당 챌린지 notion 템플릿 필요하면 알려주시라...)
바로 오늘 푼 문제. 다른 사람들의 풀이를 보고 피드백 받을 수 있다는게 참 좋은 것 같다.
마침 서적 스터디에서 클린코드 읽기도 끝났기에 다음책을 선정해야했다.
도메인 설계 관련 책인 Object 와 짧지만 실용적이라고 하는 SQL 튜닝 책을 고민했는데 스터디원의 강렬한 어필에 영업당해 SQL튜닝 책을 읽기로 결정했다.
select * from emp where ename = 'scott';
대소문자를 구분하지 않고 검색한다.
select * from emp where hiredate >= '2000-01-01';
특정 날짜 이후에 입사한 직원을 검색한다.
select * from emp where sal >= 3000;
select * from emp where gender = 'M';
급여가 3000 이상인 직원이나 남성 직원을 검색한다.
select * from emp where ename LIKE 's%';
select * from emp where ename like '%a';
's'로 시작하거나 'a'로 끝나는 이름을 검색한다.
select * from emp where sal between 800 and 3000;
급여가 800에서 3000 사이인 직원을 검색한다.
select * from emp where empno in (8000, 8001, 8005);
특정 사원 번호를 가진 직원들을 검색한다.
select deptno, ename from emp order by deptno, ename;
부서 번호와 이름으로 정렬한다.
select deptno, avg(sal) from emp group by deptno;
부서별 평균 급여를 계산한다.
select deptno, count(ename) from emp
where deptno is not null
group by deptno
having COUNT(ename) >= 5;
직원 수가 5명 이상인 부서를 검색한다.
select ename,
case deptno
when 10 then '총무부'
when 20 then '마케팅부'
when 30 then '개발부'
when 40 then '홍보부'
else '부서모름'
end dname
from emp;
부서 번호에 따라 부서 이름을 출력한다.
이러한 개념들과 예시 코드를 통해 데이터베이스의 기본 구조와 SQL 쿼리 작성 방법에 대해 깊이 있게 이해할 수 있었다. 앞으로 실제 프로젝트에 적용하며 더 많은 경험을 쌓아갈 계획이다!
응원합니다~! >,<