SQL 쿼리문 기본 문법 ✅
SELECT 속성명1, 속성명2, ... FROM 테이블명
ORDERY BY 기준속성1 ASC/DESC, 기준속성2 ASC/DESC, ... ;
SELECT 속성명1, 속성명2, ... , 집계함수(속성명) FROM 테이블명 GROUP BY 속성명;
SELECT 속성명1, 속성명2, ... FROM 테이블명 GROUP BY 속성명 HAVING 조건;
SELECT 속성명1, 속성명2, ... FROM 테이블명 WHERE 속성명 IN(값1, 값2, ...);
SELECT 속성명1, 속성명2, ... FROM 테이블1 JOIN 테이블2
ON 테이블1.속성명 = 테이블2.속성명 ;
SELECT 속성명1, 속성명2, ... FROM 테이블1 LEFT JOIN 테이블2
ON 테이블1.속성명 = 테이블2.속성명 ;
SELECT 속성명1, 속성명2, ... FROM 테이블1 RIGHT JOIN 테이블2
ON 테이블1.속성명 = 테이블2.속성명 ;
SQL 쿼리문 실습하면서 알게된 문법 🧐
DATE_FORMAT("2023-11-03 21:20:32", "%Y-%m-%d")
SELECT IF(조건문, '참일때 값', '거짓일때 값') AS 새로운 컬럼 별칭;
CASE WHEN 속성='값1' THEN '원하는값1'
WHEN 속성='값2' THEN '원하는값2' ... END AS 새로운 컬럼 별칭;
IFNULL(속성명, '대체할 값')
💯 실전 프로그래머스 mysql 문제 풀어보기 ( LV. 1 ~ 4 ) 💯
Q : 자동차 대여 기록에서 장기/단기 대여 구분하기 ( LV. 1 )
DATE_FORMAT
과 DATEDIFF
를 알고 있어야 풀 수 있는 문제였다.DATEDIFF
로 날짜 차이를 계산해줬을때 시작하는 날짜는 포함이 안되므로 출력해서 나온 값에 "+1" 을 해줘야 된다는 점이다.Q : 조건에 부합하는 중고거래 상태 조회하기 ( LV. 2 )
CASE 반복문
을 알고 있어야 풀 수 있는 문제였다. 그 외 특별하게 어려운점은 없었다. Q : 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 ( LV. 3 )
CONCAT
을 알고 있어야 풀 수 있는 문제였다. CONCAT
은 문자열들을 연결해주는 문법이라고 생각하면 된다.Q : 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 ( LV. 3 )
Q : 오프라인/온라인 판매 데이터 통합하기 ( LV. 4 )
UNION ALL
을 사용한다.UNION ALL
을 사용하려면 2개의 테이블의 열의 개수가 같아야 하는데,IFNULL
을 오프라인 판매 테이블의 열로 추가해준 뒤 UNION ALL
을 해줬더니 답이 나왔다.오늘의 느낀점 👀