LAST_INSERT_ID()는 MySQL 및 MariaDB에서 마지막으로 삽입된 AUTO_INCREMENT 값을 반환하는 함수입니다. 주로 INSERT 쿼리 이후에 사용하여, 방금 삽입된 행의 고유 ID를 가져올 때 활용됩니다.
SELECT LAST_INSERT_ID();
LAST_INSERT_ID()는 현재 세션에서만 유효합니다. 다른 세션에서 삽입된 데이터의 ID에는 영향을 받지 않습니다.AUTO_INCREMENT로 정의된 필드가 있는 테이블에서만 동작합니다.CREATE TABLE TestTable (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
);
-- 데이터 삽입
INSERT INTO TestTable (name) VALUES ('Alice');
INSERT INTO TestTable (name) VALUES ('Bob');
-- 마지막 삽입된 ID 가져오기
SELECT LAST_INSERT_ID();
위 쿼리를 실행하면 2가 반환됩니다. (Bob의 ID)
MAX()는 SQL에서 사용되는 집계 함수로, 특정 컬럼에서 가장 큰 값(최대값)을 반환합니다. 숫자, 날짜, 문자열과 같은 여러 데이터 유형에서 사용할 수 있으며, 데이터 집합의 최댓값을 구할 때 유용합니다.
즉, LAST_INSERT_ID는 AUTO_INCREMENT에서만 가능한 점과의 차이가 있습니다.
CREATE TABLE Scores (
id INT,
score INT
);
INSERT INTO Scores (id, score) VALUES
(1, 85),
(2, 90),
(3, 78);
-- 최대 점수 구하기
SELECT MAX(score) AS max_score FROM Scores;
결과 :
max_score
---------
90
MAX()는 집계 함수이므로, SELECT에서 단독으로 사용하거나 GROUP BY와 함께 사용해야 합니다.SELECT MAX(score) FROM Scores; -- O
SELECT MAX(score), id FROM Scores; -- X (GROUP BY가 필요)
MAX()는 NULL 값을 무시합니다. 만약 NULL도 처리해야 한다면, COALESCE() 같은 함수를 활용할 수 있습니다.