목록SQL과 DB (4)
wintertreey 님의 블로그
1대1아주 기본적인 관계. 설명 생략. 1대다관리자아파트A1, 2B3, 4 이럴때는 아파트 테이블에 관리자 id를 FK로 둔다. 다대1관리자아파트A, B1C, D2 이럴때는 관리자 테이블에 아파트 id를 FK로 둔다. 다대다관리자아파트A1, 2, 3B2, 3, 4 관리자 A의 입장에서 보면, 아파트 1,2,3을 관리.아파트 2의 입장에서 보면, 관리자 A, B가 담당. 이처럼 다대다관계가 될 때, 이 두 테이블의 연관관계를 담은 테이블을 만들게 된다. UK관리자아파트1A12A24A35B26B37B4 이 테이블에 필수적으로 들어가야 하는 사항은 관리자와 아파트간의 매핑사실을 담은 칼럼.편의성을 위해 auto increment를 담은 uk 칼럼정도를 만들 수 있다.그 외에 상황에 따라, 관리권한을 기간별로 ..
보통 데이터수를 셀때 count(*)로 데이터를 세는데 그러면 풀로 데이터를 스캐닝 하게 된다.속도나 효율성의 측면에서 이를 해결하고자 mysql에서 제공하는 기능.select * from DATA;select FOUND_ROWS();데이터 조회, 전체데이터수 100.직전 쿼리 수행결과에서 row수를 반환한다. FOUND_ROW()는 LIMIT을 따르기에select * from DATA LIMIT 10;select FOUND_ROWS();이 SQL은 10개의 데이터, 10을 반환한다. 만약 LIMIT도 걸고, 전체 ROW수를 찾고자 한다면 select SQL_CALC_FOUND_ROWS * from DATA limit 10;select FOUND_ROWS(); 10개의 데이터, 데이터전체수 100을..
COALESCE COALESCE(칼럼1, 칼럼2, ...) FROM TABLE;칼럼1이 NULL이 아니면 칼럼1반환, NULL이면 칼럼2반환.칼럼2이 NULL이 아니면 칼럼2반환, NULL이면 칼럼3반환..... WHERE TRUE와 if 조건WHERE true AND A.COL1 = #{col1} AND A.COL2 = #{col2} AND A.COL3 = (서브쿼리결과) 이처럼 if 조건을 사용하여 동적쿼리를 생성할 수 있다. true, 1=1과 같은 조건을 적어주는 이유.만약 if 구문의 조건에 아무것도 해당되지 않는다면, where 구문은 ..
다대다 관계일 때에는 그 사이에 테이블을 하나 더 만들어줘야한다. 하단에 첨부된 포스팅을 참고하자. https://yeees.tistory.com/184 항상 헷갈리는 관계형 데이터베이스 다대다 쉬운 예시 (고객 - 상품)DB를 공부할 때 다대다 관계가 제일 헷갈린다. 혼자 공부를 하면서 나중에 기억하기 쉽도록 초딩들도 이해가능한 예제를 만들어보았다. 개념적 모델링의 기본적인 ERD 작성을 위한 예시이다. 고yeees.tistory.com 이번에 해야할 프로젝트에서 만들 테이블에 대한 관계도를 고민해볼때 도움이 될 듯.