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 다음에 실행되는 절은?