TIL : MySQL, JOIN, TRUNCATE

엉썬·2022년 3월 19일

TIL-roadmap-220305

NodeJS를 공부하다가

시작은 Node.js 교과서를 공부하면서부터 였다. 혼자 공부를 하다가 보니까 서버 쪽을 마주칠 일이 없다는 갈증을 해소하기 위해 공부를 시작했다. 그러다가 샛길로 또 빠져서 MySQL을 공부하게 되었다.
물론 집요하게 파들고 들어가지는 않았고 Yalco MySQL의 강의를 시청하면서 대략적인 문법과 작동 방식을 익혀 나갔다.

MySQL/ JOIN

MySQL에는 JOIN이라는 문법이 있는데 단순히 이해하기로는 다른 테이블의 컬럼과 컬럼을 결합시키는 작동이라고 했다. 그런데도 영 머리로 그려지지 않았다. 일단 강의를 듣는 와중이었으므로 그 정의에 대해서는 제쳐두고 강의를 수강하였다.
이후 좀 더 심화된 과정을 듣는데 이때에도 JOIN이 낯설게 다가왔다. 그제서야 인터넷에 검색을 해보았고, 도식으로 정리된 JOIN에 관한 설명을 찾을 수 있었다.

JOIN-도식

LEFT? RIGHT?

분명 LEFTRIGHT는 문자열에 관련된 명령어로 배웠는데 JOIN과 더불어 사용되는 경우가 있었다.
아무래도 JOIN과 더불어 사용하면 다른 작동을 하는 것이 분명한데 어떤 의미에서 LEFT와 RIGHT로 명령어를 명명했는지 이해가 가지 않았다.
[MySQL] Join 깔끔한 이해와 사용법은 그와 관련하여 정리한 글이다. 세상에. 교집합, 차집합, 합집합 개념을 다시 만날 줄이야.
결국 LEFT는 FROM이 쓰인 table을 기준으로 작동하고 RIGHT는 JOIN의 table을 기준으로 하는 말 같다.

MySQL/ TRUNCATE

한편 TRUNCATE역시 두 가지의 기능을 하는 듯 보였다.

  1. 숫자와 관련하여 자리수를 버릴 떄 사용
  2. 테이블과 관련하여 테이블을 초기화 할때

타동사 격식 [VN 주로 수동태로]
(아래나 위를 잘라서) 길이를 줄이다[짧게 하다]
-네이버 사전

TRUNCATE의 사전적 의미는 위와 같다. TRUNCATE는 MySQL뿐 만 아니라 종종 다른 언어나 라이브러리에서도 쓰이는 모습을 볼 수 있다. 사실 테이블과 관련한 네이밍은 왜 그렇게 했는지 잘 이해는 안된다.

TRUNCATE vs. DELETE

테이블의 삭제와 관련해서는 DELETE라는 명령어도 존재하는데 둘의 차이는 선택적으로 삭제 할 수 있느냐의 여부인 것 같다. 자세한 설명은 아래 블로그의 첨부글로 대신하다.


참고

https://kjk3071.tistory.com/entry/DB-MySQL-Truncate%EA%B3%BC-Delete
https://devjhs.tistory.com/87
https://pafy.tistory.com/31
https://yoo-hyeok.tistory.com/98

profile
하던 일부터 끝내자

0개의 댓글