SQL 2주차 강의는
SELECT
FROM
WHERE
GROUP BY
ORDER BY
순으로 SQL 문의 기본 구조가 만들어진다는 내용으로 마무리됐다.
하나하나 새롭게 알아가는 재미가 있으면서도 저 명령어가 무슨 기능이었지!? 하는 순간들이 있다.
MYSQL SERVER를 만들어서 DBEAVER로 연습해보고 있었는데,
오늘은 켰더니 연결이 끊어졌다고 나와서 윈도우 서비스에서 찾다가 키느라 애먹었다.
다음 주에는 퀘스트들을 클리어하는데 좀 더 속도를 올려볼 생각이다.
10번 퀘스트 정답을 안보고 답을 찾아보려했으나 어려웠다... ㅠ
select e.name, d.name from employees e
inner join departments d on e.department_id = d.id;
INNER JOIN : 두 테이블을 공통 컬럼으로 연결 (겹치는 부분만 결과에 포함)
ON : 두 테이블을 어떤 기준으로 연결할지 지정하는 역할 (즉, JOIN의 연결 조건을 적는 곳)
select d.name from departments d
left join employees e on d.id = e.department_id
where e.id is null;
LEFT JOIN : 두 테이블을 왼쪽 테이블 기준으로 모두 포함하고, 오른쪽 테이블에 매칭되는 게 없으면 NULL로 채워줌
IS (NOT) NULL : 어떤 컬럼의 값이 NULL인지 아닌지를 확인하는 조건문
LEFT JOIN이 어떤식으로 작동하는지 이해가 잘 안 된다. 좀 더 공부해봐야겠다.
퀘스트에 나오는 표를 항상 SQL 편집기를 이용해서 만들어놓고 작업하는데, table departments not found 라고 빨간 밑줄에 표시되어있다. show tables; 로 확인해봐도 제대로 만들어져있는데, 이거 때문에 SQL문들이 제대로 작동을 안 하는 듯 하다.
다시 다 만들어도 안되는데 원인을 모르겠다. 한번 더 시도해보고 안되면 여쭤보는 것으로...