-
쿼리 작성시 기본DATABASE/MySql & MariaDB 2024. 1. 30. 10:53
조회 쿼리를 작성 할때 기본!
1. 조회 될 데이터의 기준 테이블을 정한다.
1) 주문일 기준 주문정보 데이터 = order 테이블
2) 주문정보 중 주문한 상품의 정보
SELECT * FROM order O # 조회할 데이터 기준 테이블 LEFT JOIN order_item OI # 기준 테이블과 묶어서 볼 테이블 ON(OI.order_idx = O.order_idx) # 가져올 기준
2. 필요한 데이터 필드만 조회한다. (전체조회 - * 사용 X)
* (아스트로)보다는 필요한 필드만 조회하는 것이 빠름. (속도 개선)
SELECT O.order_idx, O.reg_date, O.total_price, # 조회할 필드 OI.order_item, OI.item_name # 조회할 필드 FROM order O # 조회할 데이터 기준 테이블 LEFT JOIN order_item OI # 기준 테이블과 묶어서 볼 테이블 ON(OI.order_idx = O.order_idx) # 가져올 기준
3. SQL함수는 조회시 쓰는것 보다 마지막에 읽어오는 SELECT시에 사용한다.
1) 조건절 또는 서브 쿼리에 넣게 되는경우 조회 해오는 전체 데이터에 함수가 적용됨.
2) 서브쿼리, 조건절 이후 마지막에 정렬해주는 SELECT문 에서만 사용시 필요한 데이터들에만 함수 적용. (속도 개선)
SELECT DATE_FORMAT(O.reg_date,'%Y-%m-%d') as reg_date, # 가공한 날짜 O.order_idx, O.total_price, # 조회할 필드 OI.order_item, OI.item_name # 조회할 필드 FROM order O # 조회할 데이터 기준 테이블 LEFT JOIN order_item OI # 기준 테이블과 묶어서 볼 테이블 ON(OI.order_idx = O.order_idx) # 가져올 기준
4. 되도록이면 BETWEEN 보다는 크기비교 연산자를 사용한다.
1) BETWEEN연산자 보다 비교 연산을 사용하는게 성능면에서 좋고, 속도도 빠르다. (속도, 성능 개선)
SELECT DATE_FORMAT(O.reg_date,'%Y-%m-%d') as reg_date, # 가공한 날짜 O.order_idx, O.total_price, # 조회할 필드 OI.order_item, OI.item_name # 조회할 필드 FROM order O # 조회할 데이터 기준 테이블 LEFT JOIN order_item OI # 기준 테이블과 묶어서 볼 테이블 ON(OI.order_idx = O.order_idx) # 가져올 기준 WHERE O.reg_date >= '2023-09-21 00:00:00' # 조건 AND O.reg_date <= '2023-09-22 23:59:59' # 조건
'DATABASE > MySql & MariaDB' 카테고리의 다른 글
DB 슬로우쿼리 잡기 (0) 2022.05.09 DB엔진 (0) 2020.07.28 쿼리문 연습 (0) 2020.07.25