Database/Mysql

[MySQL][SQL] 2. DML

noahkim_ 2026. 3. 4. 00:30

0. Null

  • 값이 없음 (0, 빈 문자열 ❌)
  • ✅ Null과 연산하면 결과도 Null 임

 

표) Null 표현

더보기
표현 결과
NULL = 1 NULL
10 / NULL NULL
NULL AND TRUE NULL
NULL OR TRUE TRUE
NOT NULL NULL

 

표) Null 함수

더보기
SELECT IFNULL(salary, 0) FROM emp; 
SELECT COALESCE(col1, col2, 0) FROM table1;
SELECT salary / NULLIF(bonus, 0);
SELECT * FROM emp WHERE salary IS NULL; # ⚠️ = NULL 사용불가
SELECT * FROM emp WHERE salary IS NOT NULL;

 

함수 설명 특징
IFNULL(a,b) NULL이면 b 반환 2개 값
COALESCE(a,b,c) NULL 아닌 첫 값 반환 여러 값
NULLIF(a,b) 같으면 NULL 비교용
IS NULL NULL 여부 확인 조건
ISNULL(a) NULL이면 1 함수

 

1. DML

  • 테이블에 저장된 데이터를 조회, 생성, 수정, 삭제하는 명령어

 

종류

구분 정의 기본 문법 특징
SELECT 데이터 조회 SELECT 컬럼 FROM 테이블 조건, 정렬, 그룹, 페이징 가능
INSERT 데이터 삽입 INSERT INTO 테이블 VALUES() 새 행 추가
UPDATE 데이터 수정 UPDATE 테이블 SET 컬럼=값 WHERE 조건 ⚠️ 조건 없으면 전체 수정
DELETE 데이터 삭제 DELETE FROM 테이블 WHERE 조건 ⚠️ 조건 없으면 전체 삭제

 

select) 컬럼 키워드

더보기
항목 설명 예시
전체 조회 모든 컬럼 조회 SELECT * FROM emp;
특정 컬럼 지정 컬럼 조회 SELECT name, salary FROM emp;
별칭 컬럼 이름 변경 SELECT salary AS pay FROM emp;
연산 산술 계산 가능 SELECT salary*12 FROM emp;
CASE 조건 분기
CASE WHEN salary>5000 THEN 'HIGH' END
NULL 처리 NULL 대체 IFNULL(salary,0)

 

select) 테이블 키워드

더보기
항목 설명 예시
기본 조회 테이블 지정 FROM emp
DUAL 계산 전용 (MySQL 생략 가능) SELECT 1+1;

 

select) 조건식 키워드

더보기
구분 키워드 예시
비교 =, >, <, <= salary > 3000
논리 AND, OR, NOT A AND B
목록 IN
dept IN ('HR','IT')
범위 BETWEEN
salary BETWEEN 3000 AND 5000
패턴 LIKE name LIKE 'A%'
NULL 확인 IS NULL col IS NULL

 

select) like 와일드카드

더보기
와일드카드 의미 예시 설명
% 0개 이상의 문자열 LIKE 'A%' A로 시작
_ 정확히 1개의 문자 LIKE 'A_' A + 한 글자

 

 

select) 그룹화 키워드

더보기
항목 설명 예시
그룹 GROUP BY
GROUP BY dept
집계 COUNT, SUM, AVG COUNT(*)
그룹 조건 HAVING
HAVING COUNT(*)>3

 

select) 정렬 키워드

더보기
옵션 설명 예시
ASC 오름차순 (기본)
ORDER BY salary ASC
DESC 내림차순
ORDER BY salary DESC

 

select) 페이징 키워드

더보기
문법 설명 예시
LIMIT n 상위 n개 LIMIT 10
LIMIT n OFFSET m m개 건너뛰고 n개
LIMIT 10 OFFSET 20

 

insert) usage

더보기
구분 설명 예시
전체 컬럼 삽입 모든 컬럼 순서대로 입력
INSERT INTO emp VALUES (1,'Kim',3000);
일부 컬럼 삽입 컬럼 지정
INSERT INTO emp(name,salary) VALUES ('Kim',3000);
여러 행 삽입 한 번에 여러 데이터
INSERT INTO emp VALUES (1,'A',1000),(2,'B',2000);
SELECT 결과 삽입 조회 결과를 삽입
INSERT INTO emp2 SELECT * FROM emp;
AUTO_INCREMENT 자동 증가 컬럼 ID 생략 가능

 

 

update) usage

더보기
구분 설명 예시
단일 컬럼 수정 한 컬럼 변경
UPDATE emp SET salary=4000 WHERE id=1;
다중 컬럼 수정 여러 컬럼 변경
UPDATE emp SET salary=4000, dept='HR' WHERE id=1;
전체 수정 WHERE 생략 ⚠️ UPDATE emp SET salary=0;
연산 가능 기존 값 기반 수정 SET salary=salary*1.1

 

 

delete) usage

더보기
구분 설명 예시
조건 삭제 특정 행 삭제 DELETE FROM emp WHERE id=1;
전체 삭제 WHERE 생략 ⚠️ DELETE FROM emp;
부분 삭제 조건식 활용
DELETE FROM emp WHERE salary<2000;

 

 

검색 순서

  • from where group by → having → select → order by → keep (or skip)