topic★★★★★난이도 · 약 30분
DML — INSERT · UPDATE · DELETE · SELECT
데이터의 조작을 담당하는 4개 명령. WHERE 절을 빠뜨리면 사고가 난다.
#SQL#DML#SELECT#실기핵심
왜 배우는가
SELECT 구문의 실행 순서(FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY)를 묻는 문제가 매회 출제된다.
sql
-- INSERT: 신규 행 추가
INSERT INTO 학생 (학번, 이름, 점수)
VALUES ('202301', '홍길동', 85);
-- UPDATE: 기존 행 수정
UPDATE 학생
SET 점수 = 점수 + 5
WHERE 학과 = '컴공';
-- DELETE: 조건 행 삭제
DELETE FROM 학생
WHERE 점수 < 60;주의 — UPDATE/DELETE에서 WHERE 절을 빠뜨리면 전체 행이 대상이 된다. 실무에서는 먼저 SELECT로 조건을 확인한 뒤 UPDATE/DELETE를 실행하는 것이 안전.
sql
SELECT [DISTINCT | ALL] 컬럼 [AS 별칭]
FROM 테이블
WHERE 조건
GROUP BY 그룹컬럼
HAVING 그룹조건
ORDER BY 정렬컬럼 [ASC | DESC];SQL 작성 순서와 실행 순서는 다르다. 작성: SELECT→FROM→WHERE→GROUP→HAVING→ORDER. 실행: FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY. 이 차이 때문에 SELECT에서 정의한 별칭을 WHERE 절에서 쓸 수 없다.
SQL Injection 방지: 입력값을 문자열로 이어 붙이지 말고 바인딩 파라미터(PreparedStatement)를 사용하자.
실기 드릴 2문항
database실기 드릴 · SQL 작성
`학생` 테이블에서 학과가 '컴공'이고 점수가 80점 이상인 학생의 이름과 점수를 조회하되, 점수 내림차순으로 정렬하는 SQL을 작성하시오.
edit실기 드릴 · 단답형
SQL의 실행 순서에서 WHERE 다음에 실행되는 절은?