날짜 함수
adddate, subdate, addtime, subtime
SELECT
ADDDATE('2024-09-13', INTERVAL 28 DAY),
ADDDATE('2024-09-13', INTERVAL 2 MONTH),
SUBDATE('2024-09-13', INTERVAL 28 DAY),
SUBDATE('2024-09-13', INTERVAL 2 MONTH),
ADDTIME('2024-09-13 23:59:50', '0:1:0'),
SUBTIME('2024-09-14 00:00:50', '0:1:0');
실행 결과

datediff
SELECT
DATEDIFF(NOW(), '2025-02-12');
year, month, dayofweek
SELECT
YEAR(CURDATE()), MONTH(CURDATE()), DAYOFWEEK(CURDATE());
date_format
SELECT
DATE_FORMAT('2024-09-13', '%Y%m');
last_day
SELECT
LAST_DAY('2023-2-1'),
LAST_DAY('2024-2-10');
세션변수
연결된 상태까지만 유지되는 변수
SET @num1 := 100;
SET @num2 := 200;
SELECT @num1+@num2;
SELECT @num1 := @num1 + 100;
SELECT @num1;
JOIN
inner join
SELECT
m.mbr_id,
m.mbr_grd,
cc.comm_nm,
m.mbr_name,
m.mbr_email
FROM
members m INNER JOIN comm_code cc
ON m.mbr_grd = cc.comm_cd;
outer join
-- 두 SELECT 문의 결과는 같다.
SELECT
m.mbr_id,
m.mbr_name,
m.mbr_email,
mll.login_no,
mll.login_ip
FROM
members m LEFT JOIN members_login_log mll
ON m.mbr_id = mll.login_id
WHERE mll.login_no IS NULL;
SELECT
m.mbr_id,
m.mbr_name,
m.mbr_email,
mll.login_no,
mll.login_ip
FROM
members_login_log mll RIGHT JOIN members m
ON m.mbr_id = mll.login_id
WHERE mll.login_no IS NULL;
self join
SELECT
cco1.comm_cd,
cco1.comm_cd_nm,
cco2.comm_cd,
cco2.comm_cd_nm
FROM
comm_code_one cco1 JOIN comm_code_one cco2
ON cco1.comm_cd = cco2.up_comm_cd;
'DB > MySql' 카테고리의 다른 글
| 09.20 정규화, 서브쿼리 (0) | 2024.09.20 |
|---|---|
| 09.12 집계 함수, group by, having, 윈도우 함수, 내장 함수, 제어 흐름 (0) | 2024.09.12 |
| 08.29 DML select, insert, update, delete문 (0) | 2024.09.09 |
| 08.28 DDL create, drop, grant, revoke 문 (0) | 2024.09.09 |