[SQLD] 슈퍼타입과 서브타입
슈퍼/서브타입 데이터 모델은 Extended ER모델이라고도 불린다.
슈퍼/서브타입 데이터 모델은 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!
MySQL에서 재귀쿼리를 사용해야한다면? with recursive문을 사용할 수 있다.
with recursive는 UNION ALL과 함께 사용하며 UNION ALL은 관련 포스팅인 Union all 사용법을 참조하면 된다.
동일한 컬럼을 가지고 있는 두 테이블은 JOIN과 ON절을 이용해서 합칠 수 있다.
하지만 동일한 컬럼을 가지고 있지 않은데 검색결과를 함께보고싶다면 고려해봐야할 것이 바로 union all을 사용해보자.