[MySQL/MariaDB] 함수(function) vs 프로시저(Procedure) 차이
이번에 진행중인 프로젝트는 프로시저보다 함수가 더 많이 사용되었다. 지난번 담당했던 프로젝트는 오직 프로시저만 썼었다. 둘의 차이가 뭘까? 언뜻 생각해봤을땐 return유무정도인데 깊이있게 알고싶어졌다.
이번에 진행중인 프로젝트는 프로시저보다 함수가 더 많이 사용되었다. 지난번 담당했던 프로젝트는 오직 프로시저만 썼었다. 둘의 차이가 뭘까? 언뜻 생각해봤을땐 return유무정도인데 깊이있게 알고싶어졌다.
종종 들었던 Redis, 이번 레거시프로젝트 소스코드분석중 RedisTemplate을 만나면서 그 개념을 함께 정리해보고자한다.
슈퍼/서브타입 데이터 모델은 Extended ER모델이라고도 불린다.
SQL을 더 잘 다루고싶어서 공부하다가 하는 김에 결과가 남는 자격증을 도전하게되었다.
테이블 반정규화 과정에는 3가지가 있다.
DB를 여러 가지 쓰는 경우 현재 어느 DB에 접속되어있는지 서버 런할때 로그로 알 수 있으면 좋겠다고 생각했는데 팀장님이 그 방법을 알려주셨다.
바로 local.properties에 message.query를 이용하면 된다.
SQL에서도 변수를 사용할 수 있다! 알고는 있었지만 잘 사용한 적이 없는데 이번에 select로 가져온 값을 서브쿼리에서 사용하고 싶어서 찾아보다가 변수를 사용하게 되었다.
이밖에도 row갯수를 셀때에도 단독으로 많이 사용한다.
회차별로 예약할 수 있는 영화 프로그램을 만들어야 한다고 생각해보자.
여기서 회차는 요일별로 동일하다. 즉, 이번주 월요일에 총 3회차 영화상영이, 화요일에는 2회차 영화상영이 있었다면 다음주 월요일도 총 3회차, 화요일에는 2회차 영화상영이 예정되어 있는 것이다.
사용자가 선택한 날짜의 회차별로 이미 예약된 내역정보뿐만 아니라 예약 가능한 좌석수를 가져오는 쿼리를 만들어야한다.
예약시간표를 만들고싶었다.
예악가능한 시간대는 10시와 13시, 15시가 총 3가지이고 예약상태가 예약승인, 예약취소 총 3가지가 있다.
예약이 한 번도 없거나, 예약취소가 된 경우 예약이 가능하며 예약승인인 경우 예약이 불가능하다.
이때 특정 날짜를 달력에서 선택했을때 시간대별로 예약가능한지 불가능한지를 알고싶었다.
NoSQL이란 무엇일까?
SQL문을 아예 안쓴다는 말일까?
Nope!