오류 해결 및 mySQL

📅 TIL #65



🎯 Achievement Goals


  • mySQL workbench 설치 오류 해결
  • mySQL JOIN을 이해할 수 있다.





👉 SQL 설치 오류 해결


어제 mySQL 설치하고 비밀번호 설정까지는 문제가 없었지만 workbench 설치 후 실행이 안되어서 정말 애먹었다. 역시나 오류를 해결하고 나니 정말 별 것도 아니였던 부분에서 오류가 났던 것이였다.

오류의 원인은 내 ubunto 버젼은 20.04인데 workbench 다운 받을 때 가장 상단에 있는 20.10버전을 다운받아서 그런 것이였다…. 하………..

이걸 깨닫기까지 정말 많은 삽질과… 나의 시간들… 하지만 난 깨달았다.. 버전은 정말정말 중요하다는 것을..


mysql77


위 사진처럼 데이터베이스 구조를 볼 수 있었을때는 정말 정말 이맛에 오류를 해결하는 것인가.. 했다.. ㅜㅜ

다음날 보니 스터디 분중에 나와 똑같은 오류를 겪고 있는 분이 있어서 바로 알려드렸다 ㅜㅜ 저와 같은 고통은 겪지 마시길….

오류를 해결하고 나니 오늘 과제는 잘 마무리할 수 있었다!! 👍👍👍

👉 mySQL JOIN


수많은 mySQL 문법중에 JOIN만 기록하는 이유는 나머지 문법들은 솔직히 어려운게 없었다. 가장 애먹었었던 JOIN만 기록해두려고 한다.

나는 JOIN은 다리를 놔주는 역할? 연결고리? 느낌으로 해석을 하고 문제를 풀었다.


스프린트 스키마


문제를 풀기 위해 먼저 위에 구조에 맡게 데이터베이스를 만들어 주었다. 오늘 가장 시간이 오래 걸렸었던 두 문제가 있었다. 그 두 문제를 기록하려고 한다.

1번 category의 name이 soccer인 content의 title, body, created_at을 찾기위한 SQL을 작성.

// 보여주고 싶은 부분을 셀렉한다.
SELECT content.title, body, created_at
// 테이블 간 다리를 놔줄껀데 어디서 부터 시작할껀지?
FROM content
// join을 통해 content와 content_category의 공통된 부분을 찾는다.
INNER JOIN content_category
ON content.id = content_category.contentId
INNER JOIN category
// join을 통해 content_category와 category의 다리를 놔준다.
ON content_category.categoryId = category.id
// 조건문을 써준다.
WHERE category.name = 'soccer';


사실 처음 JOIN을 썼을 때는 정말 시간을 많이 투자했다. 그런데 1~2문제 풀더니 바로 감을 잡아서 그 다음 더 어려운 문제들은 술술 풀 수 있었다.



2번 category의 name이 soccer인 content의 title, body, created_at, user의 name을 찾기위한 SQL을 작성.

// 테이플에 보여주고 싶은 부분을 셀렉한다.
SELECT content.title, content.body, content.created_at, user.name 
FROM user
INNER JOIN content
ON content.userId = user.id 
INNER JOIN content_category 
ON content.id = content_category.contentId 
INNER JOIN category
ON content_category.categoryId = category.id 
WHERE category.name = 'soccer'


두 번째문제는 첫번째 문제와 거의 유사하다. 단지 다리를 한 번 더 놔준 것 뿐이다. JOIN에 대해 완벽히 이해하고 나니 문제를 해결하는데에 있어서는 정말 재밌었다!!





🙌 느낀점


오늘 삽질의 연속이였던 mySQL workbench 문제도 해결하고, mySQL JOIN에 대해 완벽히 이해하고 문제도 다 풀 수 있어서 정말 기분이 좋았다!

그리고 오늘 프로젝트 같이 하게 될 분들이랑 구글밋으로 모여서 잠시 이야기를 나눴는데, 이야기를 나눈 것만으로도 너무 즐거웠고 더 구체적으로 구상도 짜고 싶고, 어서 프로젝트 협업이라는 것을 해보고 싶다!!





👊 내일의 TIW(today I Will)

데이터베이스