https://velog.io/@12aeun/SQL-mysql에서-날짜-시간-계산하기
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY)
SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND)
SELECT DATEDIFF('2021-12-31','2021-01-02');
>> 345
SELECT TIMEDIFF('2022-02-01 23:00:00','2022-01-30 00:00:00');
>> 71:00:00
SELECT PERIOD_DIFF('202202','202112');
>> 2
SELECT PERIOD_DIFF('202202','201212');
>> -10
SELECT PERIOD_DIFF('2202','1912');
>> 26
WHERE START_DATE >= '2022-09-01 00:00:00' AND START_DATE < '2022-10-01 00:00:00'
혹은 where MONTH(START_DATE) = 9
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)
unit - 반환 값 형식 (MONTH, YEAR, HOUR ...)
datetime_expr1 - 시작일 / datetime_expr2 - 종료일
SELECT TIMESTAMPDIFF(MONTH,'2021-02-01','2022-03-01');
>> 13
DATE_FORMAT
:SELECT DATE_FORMAT(now(), '%Y-%m-%d');
>> 2022-06-17
SELECT DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s');
>> 2023-05-13 07:30:56
1. COUNT(): 특정 열의 행 수를 반환합니다.
SELECT COUNT(*) FROM table_name;
2. SUM(): 특정 열의 합계를 반환합니다.
SELECT SUM(column_name) FROM table_name;
3. AVG(): 특정 열의 평균값을 반환합니다.
SELECT AVG(column_name) FROM table_name;
4. MIN(): 특정 열에서 최소값을 반환합니다.
SELECT MIN(column_name) FROM table_name;
5.MAX(): 특정 열에서 최대값을 반환합니다.
SELECT MAX(column_name) FROM table_name;
묶을 땐 where로, 묶은 결과에 조건처리를 할 때는 having
SELECT customer_id, SUM(order_total) AS total_amount
FROM orders
GROUP BY customer_id
HAVING total_amount >= 500
1. "a"로 시작하는 문자열을 찾기
SELECT * FROM my_table WHERE my_column LIKE 'a%';
2. "abc"를 포함하는 문자열을 찾기
SELECT * FROM my_table WHERE my_column LIKE '%abc%';
3. "a" 또는 "b"로 시작하는 문자열을 찾기
SELECT * FROM my_table WHERE my_column LIKE 'a%' OR my_column LIKE 'b%';
4. "_"(밑줄) 문자를 사용하여 특정 자리수의 문자를 찾기
SELECT * FROM my_table WHERE my_column LIKE '_a%';
5. "a" 또는 "b"로 시작하면서 세 번째 자리에 "c" 또는 "d"가 포함된 문자열
SELECT * FROM my_table WHERE my_column LIKE '[ab]c%';
SELECT
column1,
column2,
CASE
WHEN column3 = 'value1' THEN 'result1'
WHEN column3 = 'value2' THEN 'result2'
ELSE 'other'
END as result_column
FROM table_name;
SELECT first_name, last_name, hire_date
FROM employees
WHERE hire_date >= '1995-01-01'
ORDER BY hire_date DESC
LIMIT 5; #혹은LIMIT 4, 6; = 5번째~10번째 row
SELECT name, IFNULL(salary, 'Not specified') AS salary
FROM employees;
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요.
FLOOR(2.8)은 2를 반환, FLOOR(-2.8)은 -3을 반환
SELECT FLOOR(PRICE/10000)*10000 AS PRICE_GROUP, COUNT(*) AS PRODUCTS,
FROM PRODUCT,
GROUP BY PRICE_GROUP,
ORDER BY PRICE_GROUP
LEFT(PRODUCT_CODE, 2) -> 왼쪽부터 문자열 두개
DISTINCT는 SELECT 문에서 사용하는 키워드 중 하나로, 중복된 값을 제거하여 유일한 값들만을 반환