2022.12.05.MON

ronglong·2022년 12월 5일
0

코드스테이츠 Day33

< SQL 과제 >

  • SQL 쿼리문 마지막에 세미콜론 필수.
"select count(content.id) as 'ContentCount', user.name " +
"from user left join content " +
"on content.userId=user.id group by user.name;";
  • 명령어 대문자로 쓰기. (협업할 때 알아보기 쉽도록)
  • 쿼리문 줄바꿈 시 공백 필요 주의
  • left (outer) join, right (outer) join
  • (inner) join

<느낀 점>
오늘은 SQL 과제를 했다. 세미콜론 써야하는지 처음 알았음.
언제나 2% 부족한 사전 학습 자료,,⭐️

SQL에서는 join이 제일 까다로운 것 같은데, 하다가 너무 복잡해서 여러 방법을 검색 중에, from 이후에 사용하는 테이블 전부 쓰고, where 조건문으로 조건 다 때려박아서(?) 작성한 쿼리문을 봤고, 그것을 참고 삼아 sql문을 작성하여 실행했더니 통과됨 ㅎㅎ

"select content.title, content.body, content.created_at, user.name " +
          "from content, user, content_category, category " +
          "where user.id=content.userId and content.id=content_category.contentId " +
          "and content_category.categoryId=category.id and category.name='java';";
"select count(content.id) as 'ContentCount' from content, user " +
          "where content.userId=user.id and user.name='teawoongna';";

과제 제출 후에 이렇게 해도 되는지 질문했더니, 문제는 없지만 권장하지 않는 방법이라며 join을 이용하라고 하셔서 다시 작성해봤다. ㅎ

"select content.title, content.body, content.created_at, user.name " +
          "from content " +
          "join content_category on content.id=content_category.contentId " +
          "join category on content_category.categoryId=category.id " +
          "join user on content.userId=user.id " +
          "where category.name = 'java';";
"select count(content.id) as 'ContentCount' from content " +
          "join user on content.userId=user.id " +
          "where user.name='teawoongna';";

열심히 과제 시간 내내 과제 하다가, 결국 마지막 한 문제는 못 풀고 오후 세션에서 해설 들었다.
user.name이 NULL값을 포함한다는 내용이 문제에 제시되지 않아서, left join과 연관 짓지 못했던 것이었음. 다른 left join 문제는 다 풀었는데 아쉽..
그 문제가 바로 이 포스팅 맨 위에 쓴 쿼리문이었다.

마지막 문제 못 풀어서 속상해했더니, 공부할 때 참고하라고 친한 동기분이 보내주신 링크.
https://advenoh.tistory.com/23
감사합니다! :)

SQL문 작성할 때, 확실히 스키마를 그림으로 그려놓고 작성하니까 훨씬 명확하고 편했다.

오늘 아침도 데일리 코딩은 실패,, 어렵네,, 조만간 레퍼런스 봐야할 듯.

아, 그리고 git commit할 때는, 보안을 위해 작은 단위로 쪼개서 올리는 것이 좋다.
올리지 말아야할 파일까지 올리는 것을 방지하고, 수정 단위로 커밋 코멘트를 다르게 올려서 협업이 용이하도록 한다.
.gitignore 를 통해서 git에 올리지 않을 파일들을 따로 미리 정해두기도 한다.

0개의 댓글