데이터베이스 생성
CREATE DATABASE 데이터베이스_이름;
데이터베이스 사용
USE 데이터베이스_이름;
데이터베이스 정보확인
DESCRIBE 테이블이름;
💡 SELECT 실행순서
1. FROM 2. WHERE 3. GROUP BY 4. HAVING 5. SELECT 6. ORDER BY
// NULL을 찾을 때. IS와 함께 사용함
SELECT *
FROM 테이블_이름
WHERE 특성_1 IS NULL
// NULL값을 제외한 데이터만 얻고싶다면
SELECT *
FROM 테이블_이름
WHERE 특성_1 IS NOT NULL
// 내림차순 (DESC를 제외하면 오름차순이 된다(기본형))
SELECT *
FROM 테이블_이름
ORDER BY 특성_1 DESC
SELECT DISTINCT 특성_1
FROM 테이블_이름
- COUNT() : 행의 개수를 세어줌
- AVG() : 행 안에 있는 값의 평균을 내어줌
- MIN() : 행 안에 있는 값의 최솟값을 반환해줌
- MAX() : 행 안에 있는 값의 최댓값을 반환해줌
- SUM() : 행 안에 있는 값의 합을 내어줌
SELECT date,
ROUND(AVG(price), 2) AS avg_price
FROM visit
GROUP BY date
HAVING COUNG(*) > 3
ORDER BY date;
💡 HAVING절과 WHERE의 차이?
데이터를 필터링한다는 측면에서 바라보면다면 둘은 비슷할 수 있다. 그러나 둘은 분명한 차이가 존재한다.
그러나 둘의 차이는 분명하다.
WHERE절은 행들이 그룹화 되기 전, 하나의 행을 필터링하는 데 사용한다. 그렇기에 WHERE절이 GROUP BY절 전에 적혀있는 것을 확인할 수 있다.
반면 HAVING절은 행들이 그룹지어진 후의 행들을 필터링하는데 사용된다. 쿼리문을 살펴보면 HAVING절은 GROUP BY절 뒤에 적혀있다.
SELECT CustomerId, AVG(Total)
FROM invoices
GROUP BY CustomerId
HAVING AVG(Total) > 6.00